Module: XapixClient
- Defined in:
- lib/xapix_client.rb,
lib/xapix_client/config.rb,
lib/xapix_client/version.rb,
lib/xapix_client/resource.rb,
lib/xapix_client/connection.rb
Defined Under Namespace
Classes: BadConfigurationError, Configuration, Connection, NoConfigurationError, Requestor, Resource
Constant Summary collapse
- VERSION =
"1.1.0"
Class Attribute Summary collapse
-
.autoloaded_models ⇒ Object
Returns the value of attribute autoloaded_models.
-
.configuration ⇒ Object
Returns the value of attribute configuration.
Class Method Summary collapse
Class Attribute Details
.autoloaded_models ⇒ Object
Returns the value of attribute autoloaded_models.
10 11 12 |
# File 'lib/xapix_client/config.rb', line 10 def autoloaded_models @autoloaded_models end |
.configuration ⇒ Object
Returns the value of attribute configuration.
10 11 12 |
# File 'lib/xapix_client/config.rb', line 10 def configuration @configuration end |
Class Method Details
.autoload_models ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/xapix_client.rb', line 12 def self.autoload_models Schema.includes(:schema_relationships).map do |schema| model_name = schema[:id].classify resource_class = Class.new(Resource) do schema.attributes.except(:id, :type).each do |name, data_type| property(name.to_sym, type: data_type.to_sym) end relations_by_cardinality = schema.schema_relationships.group_by(&:cardinality) (relations_by_cardinality['to_one'] || {}).each do |schema_relationship| has_one(schema_relationship.name.to_sym, class_name: schema_relationship.referenced_endpoint_name.classify) end (relations_by_cardinality['to_many'] || {}).each do |schema_relationship| has_many(schema_relationship.name.to_sym, class_name: schema_relationship.referenced_endpoint_name.classify) end end Object.const_set(model_name, resource_class) resource_class end end |
.configure {|configuration| ... } ⇒ Object
13 14 15 16 17 |
# File 'lib/xapix_client/config.rb', line 13 def self.configure self.configuration ||= Configuration.new yield(configuration) self.autoloaded_models = configuration.autoload_models ? autoload_models : [] end |