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