Skip to content

Commit

Permalink
Add basic requires
Browse files Browse the repository at this point in the history
  • Loading branch information
slevenick committed Oct 16, 2018
1 parent 1993bf5 commit ec00543
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
12 changes: 12 additions & 0 deletions provider/inspec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,17 @@ def resource_ref? (property)
def typed_array? (property)
return property.is_a?(::Api::Type::Array)
end

def nested_object? (property)
return property.is_a?(::Api::Type::NestedObject)
end

def generate_requires(properties, requires = [])
nested_props = properties.select{ |type| nested_object?(type) }
requires.concat(properties.reject{ |type| primitive?(type) || resource_ref?(type) || nested_object?(type) }.collect(&:requires))
requires.concat(nested_props.map{|nested_prop| generate_requires(nested_prop.properties) } )
requires.concat(nested_props.map{|nested_prop| nested_prop.property_file })
requires
end
end
end
11 changes: 11 additions & 0 deletions templates/inspec/singular_resource.erb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@
<%= lines(autogen_notice :ruby) -%>
<%
require 'google/string_utils'

inside_indent = 8

requires = generate_requires(object.all_user_properties)
requires << 'inspec/resource'
requires << 'google/hash_utils'
-%>
<%= lines(emit_requires(requires)) -%>

# A provider to manage <%= @api.name -%> resources.
<%= lines(indent(
emit_rubocop(binding, :class,
Expand Down

0 comments on commit ec00543

Please sign in to comment.