Class: Jerakia::Schema
- Inherits:
-
Object
- Object
- Jerakia::Schema
- Defined in:
- lib/jerakia/schema.rb
Instance Method Summary collapse
- #datasource(opts = {}) ⇒ Object
-
#initialize(request, opts) ⇒ Schema
constructor
A new instance of Schema.
Constructor Details
#initialize(request, opts) ⇒ Schema
Returns a new instance of Schema.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/jerakia/schema.rb', line 3 def initialize(request,opts) schema_datasource=datasource(opts) schema_request=Jerakia::Request.new( :metadata => request., :key => request.key, :namespace => request.namespace, :use_schema => false, ) schema_lookup = Jerakia::Launcher.new(schema_request) do policy :schema do lookup :schema do datasource *schema_datasource end end end @schema_data = schema_lookup.answer.payload || {} Jerakia.log.debug("Schema returned #{@schema_data}") if salias = @schema_data["alias"] Jerakia.log.debug("Schema alias found to #{@schema_data["alias"]}") request.namespace=Array(salias["namespace"]) if salias["namespace"] request.key = salias["key"] if salias["key"] end if @schema_data["cascade"] Jerakia.log.debug("Overriding lookup_type from #{request.lookup_type} to :cascade") request.lookup_type= :cascade end if ["array", "hash", "deep_hash"].include?(@schema_data["merge"]) request.merge = @schema_data["merge"].to_sym end end |
Instance Method Details
#datasource(opts = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/jerakia/schema.rb', line 41 def datasource(opts={}) [ :file, { :docroot => opts["docroot"] || "/var/lib/jerakia/schema", :format => opts["format"] || :json, :enable_caching => opts["enable_caching"] || true, :searchpath => [ '' ], } ] end |