class Modgen::API::Resource
Attributes
name[R]
Public Class Methods
new(name, values)
click to toggle source
# File lib/modgen/discovery/resource.rb, line 7 def initialize(name, values) @name = name @values = values @methods = [] build_resources end
Public Instance Methods
methods()
click to toggle source
# File lib/modgen/discovery/resource.rb, line 15 def methods @methods end
Private Instance Methods
build_methods(value)
click to toggle source
# File lib/modgen/discovery/resource.rb, line 40 def build_methods(value) value.each do |key, value| method = Modgen::API::Method.new(key, value) @methods << key.to_sym metaclass = class << self; self; end metaclass.send(:define_method, key) { |params={}| method.send(:call, params) } end end
build_resource(name, values)
click to toggle source
# File lib/modgen/discovery/resource.rb, line 31 def build_resource(name, values) resource = Modgen::API::Resource.new(name, values) @methods << name.to_sym metaclass = class << self; self; end metaclass.send(:define_method, name) { resource } end
build_resources()
click to toggle source
# File lib/modgen/discovery/resource.rb, line 21 def build_resources @values.each do |key, value| if key == 'methods' build_methods(value) else build_resource(key, value) end end end