Class: ActiveResource::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/active_resource/schema.rb

Overview

:nodoc:

Constant Summary collapse

KNOWN_ATTRIBUTE_TYPES =

attributes can be known to be one of these types. They are easy to cast to/from.

%w( string integer float )

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSchema

The internals of an Active Resource Schema are very simple - unlike an Active Record TableDefinition (on which it is based). It provides a set of convenience methods for people to define their schema using the syntax:

schema do
  string :foo
  integer :bar
end

The schema stores the name and type of each attribute. That is then
read out by the schema method to populate the actual
Resource's schema


25
26
27
# File 'lib/active_resource/schema.rb', line 25

def initialize
  @attrs = {}
end

Instance Attribute Details

#attrsObject

An array of attribute definitions, representing the attributes that have been defined.



11
12
13
# File 'lib/active_resource/schema.rb', line 11

def attrs
  @attrs
end

Instance Method Details

#attribute(name, type, options = {}) ⇒ Object

Raises:

  • (ArgumentError)


29
30
31
32
33
34
35
36
37
38
# File 'lib/active_resource/schema.rb', line 29

def attribute(name, type, options = {})
  raise ArgumentError, "Unknown Attribute type: #{type.inspect} for key: #{name.inspect}" unless type.nil? || Schema::KNOWN_ATTRIBUTE_TYPES.include?(type.to_s)

  the_type = type.to_s
  # TODO: add defaults
  #the_attr = [type.to_s]
  #the_attr << options[:default] if options.has_key? :default
  @attrs[name.to_s] = the_type
  self
end