class ApiSpec::APIObject
Attributes
nested_adder_name[RW]
nested_class[RW]
nested_name[RW]
Public Class Methods
init(base)
click to toggle source
# File lib/api_spec/lib/api_spec/generator.rb, line 34 def self.init(base) base.send(:attr_accessor, *base::JSON_NAMES.keys) base.send(:attr_accessor, base.nested_name) if base.nested_name base.send(:define_method, base.nested_adder_name) do |name, &block| obj = nested_class.new(name) block.call(obj) send(nested_name) << obj end if base.nested_adder_name end
new(name)
click to toggle source
# File lib/api_spec/lib/api_spec/generator.rb, line 15 def initialize(name) @name = name send("#{nested_name}=".to_sym, []) if nested_name end
Public Instance Methods
nested_class()
click to toggle source
# File lib/api_spec/lib/api_spec/generator.rb, line 11 def nested_class self.class.nested_class end
nested_name()
click to toggle source
# File lib/api_spec/lib/api_spec/generator.rb, line 7 def nested_name self.class.nested_name end
to_hash()
click to toggle source
# File lib/api_spec/lib/api_spec/generator.rb, line 20 def to_hash pairs = self.class::JSON_NAMES.map do |name, json_name| [json_name, send(name)] end hash = Hash[pairs] if nested_name hash[nested_name.to_s] = send(nested_name).map { |obj| obj.to_hash } end hash end