Sha256: b7d3a7962d87917a01bc80a047c486e6447afc2d1d1fec4661cf9583675ece38
Contents?: true
Size: 922 Bytes
Versions: 1
Compression:
Stored size: 922 Bytes
Contents
require 'active_support/core_ext/string' module ApipieBindings class Resource attr_reader :name 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 def call(action, params={}, headers={}, options={}) @api.call(@name, action, params, headers, options) end def apidoc @api.apidoc[:docs][:resources][@name] end def actions apidoc[:methods].map { |a| action(a[:name].to_sym) } end def has_action?(name) apidoc[:methods].any? { |action| action[:name].to_sym == name } end def action(name) ApipieBindings::Action.new(@name, name, @api) end def singular_name @name.to_s.singularize end def to_s "<Resource :#{@name}>" end def inspect to_s end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
apipie-bindings-0.0.1 | lib/apipie_bindings/resource.rb |