Sha256: 4a01deec0686dbc35b50da4358acf98e24ef2cb85b86a9b9e36c8a426cb72ad9

Contents?: true

Size: 891 Bytes

Versions: 1

Compression:

Stored size: 891 Bytes

Contents

module Ruroku
  class Base
    include Virtus

    attr_accessor :api

    def initialize(api, attributes = {})
      self.api = api

      super attributes
    end

    # Public: Define resource id key.
    # It's used to represent the resource when talking to API. (It might be
    # the name of the app for App object, the email for Collaborator object,
    # and so on.)
    #
    # Examples
    #
    #   class App < Base
    #     attr_accessor :name
    #
    #     resource_id :name
    #   end
    def self.resource_id(id_key = nil)
      if id_key
        @_resource_id = id_key
      else
        @_resource_id
      end
    end

    # Public: Get the value of resource id.
    def resource_id
      send self.class.resource_id
    end

    def inspect
      if resource_id
        "<#{self.class} #{resource_id}>"
      else
        "<#{self.class}>"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruroku-0.0.3 lib/ruroku/base.rb