Class: Frodo::EntitySet
- Inherits:
-
Object
- Object
- Frodo::EntitySet
- Includes:
- Enumerable
- Defined in:
- lib/frodo/entity_set.rb
Overview
This class represents a set of entities within an Frodo service. It is instantiated whenever an Frodo::Service is asked for an EntitySet via the Frodo::Service#[] method call. It also provides Enumerable behavior so that you can interact with the entities within a set in a very comfortable way.
This class also implements a query interface for finding certain entities based on query criteria or limiting the result set returned by the set. This functionality is implemented through transparent proxy objects.
Instance Attribute Summary collapse
-
#container ⇒ Object
readonly
The EntitySet’s container name.
-
#name ⇒ Object
readonly
The name of the EntitySet.
-
#namespace ⇒ Object
readonly
The Frodo::Service’s namespace.
-
#service_name ⇒ Object
readonly
The Frodo::Service’s identifiable name.
-
#type ⇒ Object
readonly
The Entity type for the EntitySet.
Instance Method Summary collapse
-
#entity_options ⇒ Hash
private
Options used for instantiating a new Frodo::Entity for this set.
- #entity_primary_key ⇒ Object
-
#initialize(options = {}) ⇒ Frodo::EntitySet
constructor
Sets up the EntitySet to permit querying for the resources in the set.
-
#new_entity(properties = {}) ⇒ Frodo::Entity
Create a new Entity for this set with the given properties.
-
#query(options = {}) ⇒ Frodo::Query
Returns a query targetted at the current EntitySet.
-
#service ⇒ Frodo::Service
private
The Frodo::Service this EntitySet is associated with.
Constructor Details
#initialize(options = {}) ⇒ Frodo::EntitySet
Sets up the EntitySet to permit querying for the resources in the set.
28 29 30 31 32 33 34 |
# File 'lib/frodo/entity_set.rb', line 28 def initialize( = {}) @name = [:name] @type = [:type] @namespace = [:namespace] @service_name = [:service_name] @container = [:container] end |
Instance Attribute Details
#container ⇒ Object (readonly)
The EntitySet’s container name
22 23 24 |
# File 'lib/frodo/entity_set.rb', line 22 def container @container end |
#name ⇒ Object (readonly)
The name of the EntitySet
14 15 16 |
# File 'lib/frodo/entity_set.rb', line 14 def name @name end |
#namespace ⇒ Object (readonly)
The Frodo::Service’s namespace
18 19 20 |
# File 'lib/frodo/entity_set.rb', line 18 def namespace @namespace end |
#service_name ⇒ Object (readonly)
The Frodo::Service’s identifiable name
20 21 22 |
# File 'lib/frodo/entity_set.rb', line 20 def service_name @service_name end |
#type ⇒ Object (readonly)
The Entity type for the EntitySet
16 17 18 |
# File 'lib/frodo/entity_set.rb', line 16 def type @type end |
Instance Method Details
#entity_options ⇒ Hash
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Options used for instantiating a new Frodo::Entity for this set.
122 123 124 125 126 127 128 |
# File 'lib/frodo/entity_set.rb', line 122 def { service_name: service_name, type: type, entity_set: self } end |
#entity_primary_key ⇒ Object
74 75 76 |
# File 'lib/frodo/entity_set.rb', line 74 def entity_primary_key() new_entity.primary_key end |
#new_entity(properties = {}) ⇒ Frodo::Entity
Create a new Entity for this set with the given properties.
62 63 64 |
# File 'lib/frodo/entity_set.rb', line 62 def new_entity(properties = {}) Frodo::Entity.with_properties(properties, ) end |
#query(options = {}) ⇒ Frodo::Query
Returns a query targetted at the current EntitySet.
69 70 71 |
# File 'lib/frodo/entity_set.rb', line 69 def query( = {}) Frodo::Query.new(self, ) end |
#service ⇒ Frodo::Service
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The Frodo::Service this EntitySet is associated with.
115 116 117 |
# File 'lib/frodo/entity_set.rb', line 115 def service @service ||= Frodo::ServiceRegistry[service_name] end |