class Mooset::Endpoints::Endpoint

Public Class Methods

create(name, opts = {}) click to toggle source
# File lib/mooset/endpoints/endpoint.rb, line 30
def self.create(name, opts = {})
  descendants[name].new(opts)
end
descendants() click to toggle source
# File lib/mooset/endpoints/endpoint.rb, line 18
def self.descendants
  @descendants ||= {}
end
inherited(klass) click to toggle source
Calls superclass method
# File lib/mooset/endpoints/endpoint.rb, line 11
def self.inherited(klass)
  super

  name = underscore(klass.name.split('::').last)
  descendants[name.to_sym] = klass
end
resource(name, &block) click to toggle source
# File lib/mooset/endpoints/endpoint.rb, line 38
def self.resource(name, &block)
  resources << name

  define_method(name) do
    r = instance_variable_get("@#{name}")
    if r.nil?
      r = instance_eval(&block)
      instance_variable_set("@#{name}", r)
    end
    r
  end

end
resources() click to toggle source
# File lib/mooset/endpoints/endpoint.rb, line 34
def self.resources
  @resources ||= []
end
underscore(camel_cased_word) click to toggle source
# File lib/mooset/endpoints/endpoint.rb, line 22
def self.underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
end