Class: JsonApiClient::Schema
- Inherits:
-
Object
- Object
- JsonApiClient::Schema
- Defined in:
- lib/json_api_client/schema.rb
Defined Under Namespace
Modules: Types Classes: Property, TypeFactory
Class Method Summary collapse
Instance Method Summary collapse
-
#add(name, options) ⇒ void
Add a property to the schema.
- #each_property(&block) ⇒ Object (also: #each)
-
#find(property_name) ⇒ Property?
(also: #[])
Look up a property by name.
-
#initialize ⇒ Schema
constructor
A new instance of Schema.
-
#size ⇒ Fixnum
(also: #length)
How many properties are defined.
Constructor Details
#initialize ⇒ Schema
Returns a new instance of Schema.
108 109 110 |
# File 'lib/json_api_client/schema.rb', line 108 def initialize @properties = {} end |
Class Method Details
.register(type_hash) ⇒ Object
149 150 151 |
# File 'lib/json_api_client/schema.rb', line 149 def register(type_hash) TypeFactory.register(type_hash) end |
Instance Method Details
#add(name, options) ⇒ void
This method returns an undefined value.
Add a property to the schema
119 120 121 |
# File 'lib/json_api_client/schema.rb', line 119 def add(name, ) @properties[name.to_sym] = Property.new(name.to_sym, [:type], [:default]) end |
#each_property(&block) ⇒ Object Also known as: each
132 133 134 |
# File 'lib/json_api_client/schema.rb', line 132 def each_property(&block) @properties.values.each(&block) end |
#find(property_name) ⇒ Property? Also known as: []
Look up a property by name
142 143 144 |
# File 'lib/json_api_client/schema.rb', line 142 def find(property_name) @properties[property_name.to_sym] end |
#size ⇒ Fixnum Also known as: length
How many properties are defined
126 127 128 |
# File 'lib/json_api_client/schema.rb', line 126 def size @properties.size end |