Sha256: ba3b2930f89a46051055d8b95317d86b8e2a881c6ebc53355beb4b2eeafb1f85

Contents?: true

Size: 789 Bytes

Versions: 1

Compression:

Stored size: 789 Bytes

Contents

require 'active_support/rescuable'
require 'rack/response'
require 'active_support/json'

module JSONAPIonify::Api
  class Resource
    extend JSONAPIonify::Autoload
    autoload_all

    extend Definitions
    extend ClassMethods

    include ErrorHandling
    include Builders
    include Defaults

    def self.inherited(subclass)
      super(subclass)
      subclass.class_eval do
        context(:api, readonly: true) { api }
        context(:resource, readonly: true) { self }
      end
    end

    def self.example_instance(id=1)
      OpenStruct.new.tap do |instance|
        instance.send "#{id_attribute}=", (id).to_s
        attributes.select(&:read?).each do |attribute|
          instance.send "#{attribute.name}=", attribute.example
        end
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jsonapionify-0.0.1.pre lib/jsonapionify/api/resource.rb