class ApipieBindings::Resource

Attributes

name[R]

Public Class Methods

new(name, api) click to toggle source
# File lib/apipie_bindings/resource.rb, line 7
def initialize(name, api)
  raise NameError.new("Resource '#{name}' does not exist in the API") unless api.apidoc[:docs][:resources].key?(name)
  @name = name
  @api = api
end

Public Instance Methods

action(name) click to toggle source

Get ApipieBindings::Action

@param name [Symbol] action name @return [ApipieBindings::Action]

# File lib/apipie_bindings/resource.rb, line 50
def action(name)
  ApipieBindings::Action.new(@name, name, @api)
end
actions() click to toggle source

Get list of all actions for a resource

@return [Array<ApipieBindings::Action>]

# File lib/apipie_bindings/resource.rb, line 34
def actions
  apidoc[:methods].map { |a| action(a[:name].to_sym) }
end
apidoc() click to toggle source

Get API documentation for a resource

@return [Hash]

# File lib/apipie_bindings/resource.rb, line 27
def apidoc
  @api.apidoc[:docs][:resources][@name]
end
call(action, params={}, headers={}, options={}) click to toggle source

Execute an action on a resource

@param action [Symbol] @param params [Hash] @param headers [Hash] @param options [Hash] @return [Hash]

# File lib/apipie_bindings/resource.rb, line 20
def call(action, params={}, headers={}, options={})
  @api.call(@name, action, params, headers, options)
end
has_action?(name) click to toggle source

Determine if resource has a particular action

@param name [Symbol] name of action to check @return [Bool]

# File lib/apipie_bindings/resource.rb, line 42
def has_action?(name)
  apidoc[:methods].any? { |action| action[:name].to_sym == name }
end
inspect() click to toggle source

Get string representation

@return [String] ApipieBindings::Resource as a string @note same as #to_s method

# File lib/apipie_bindings/resource.rb, line 72
def inspect
  to_s
end
singular_name() click to toggle source

Get simiple string representation

@return [String] ApipieBindings::Resource as a string

# File lib/apipie_bindings/resource.rb, line 57
def singular_name
  ApipieBindings::Inflector.singularize(@name.to_s)
end
to_s() click to toggle source

Get string representation

@return [String] ApipieBindings::Resource as a string

# File lib/apipie_bindings/resource.rb, line 64
def to_s
  "<Resource :#{@name}>"
end