Sha256: 83e3199506c9eac3f9b401791477623efd71f5becd72daf05565e0f4759a266b

Contents?: true

Size: 839 Bytes

Versions: 11

Compression:

Stored size: 839 Bytes

Contents

module RestfulResource
  module Associations
    def has_many(nested_resource_type)
      klass = nested_resource_type.to_s.singularize.camelize.safe_constantize
      klass = OpenStruct if (klass.nil? || (klass.superclass != RestfulResource))

      self.send(:define_method, nested_resource_type) do
        @inner_object.send(nested_resource_type).map { |obj| klass.new(obj) }
      end
    end

    def has_one(nested_resource_type)
      klass = nested_resource_type.to_s.camelize.safe_constantize
      klass = OpenStruct if (klass.nil? || klass.superclass != RestfulResource)

      self.send(:define_method, nested_resource_type) do
        nested_resource = @inner_object.send(nested_resource_type)
        return nil if nested_resource.nil?
        klass.new(@inner_object.send(nested_resource_type))
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
restful_resource-0.8.10 lib/restful_resource/associations.rb
restful_resource-0.8.9 lib/restful_resource/associations.rb
restful_resource-0.8.8 lib/restful_resource/associations.rb
restful_resource-0.8.7 lib/restful_resource/associations.rb
restful_resource-0.8.6 lib/restful_resource/associations.rb
restful_resource-0.8.5 lib/restful_resource/associations.rb
restful_resource-0.8.4 lib/restful_resource/associations.rb
restful_resource-0.8.3 lib/restful_resource/associations.rb
restful_resource-0.8.2 lib/restful_resource/associations.rb
restful_resource-0.8.1 lib/restful_resource/associations.rb
restful_resource-0.8.0 lib/restful_resource/associations.rb