Module: Exposure::Building::ClassMethods

Defined in:
lib/exposure/behaviors/building.rb

Instance Method Summary collapse

Instance Method Details

#build(name, options = {}, &block) ⇒ Object



9
10
11
12
# File 'lib/exposure/behaviors/building.rb', line 9

def build(name, options = {}, &block)
  options[:with] ||= block
  self.const_get(:Builders)[name] = options[:with]
end

#build_default_builder(member, nesting) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/exposure/behaviors/building.rb', line 20

def build_default_builder(member, nesting)
  if nesting.any?
    builders = self::const_set(:DefaultBuilders, {
      self.resource_name.intern  => proc { [:build, params[resource_name] ] },
    })
  else
    self::const_set(:DefaultBuilders, {
      self.resource_name.intern  => proc { [:new, params[resource_name] ] },
    })
  end
end

#build_default_builders!Object



14
15
16
17
18
# File 'lib/exposure/behaviors/building.rb', line 14

def build_default_builders!
  nesting = @_exposed_resource_options[:nested] || []
  nesting = nesting.clone
  build_default_builder(self.resources_name, nesting)
end