Class: JSONAPIonify::Api::Base
- Inherits:
-
Object
- Object
- JSONAPIonify::Api::Base
- Extended by:
- ActiveSupport::DescendantsTracker, AppBuilder, ClassMethods, Delegation, Documentation, ResourceDefinitions, JSONAPIonify::Autoload
- Defined in:
- lib/jsonapionify/api/base.rb
Defined Under Namespace
Modules: AppBuilder, ClassMethods, Delegation, Documentation, ResourceDefinitions Classes: Reloader
Class Method Summary collapse
Methods included from JSONAPIonify::Autoload
autoload_all, eager_load!, unloaded
Methods included from AppBuilder
Methods included from Documentation
description, documentation_object, documentation_order, documentation_output, extended, link, resources_in_order, title
Methods included from ClassMethods
cache, cache_store, cache_store=, eager_load, extended, fields, http_error, load_resources, process_index, resource_files, resource_signature, resources_loaded?, root_url, signature
Methods included from Delegation
Methods included from ResourceDefinitions
define_resource, extended, resource, resource_defined?, resources
Class Method Details
.cache_key(**options) ⇒ Object
33 34 35 36 37 |
# File 'lib/jsonapionify/api/base.rb', line 33 def self.cache_key(**) Base64.urlsafe_encode64( { **, dsl: JSONAPIonify.digest, api: signature, }.to_json ) end |
.inherited(subclass) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/jsonapionify/api/base.rb', line 15 def self.inherited(subclass) super(subclass) subclass.instance_exec(self) do |superclass| const_set(:ResourceBase, Class.new(superclass.resource_class)) resource_class.set_api(self) file = caller.reject { |f| f.start_with? JSONAPIonify.path }[0].split(/\:\d/)[0] dir = File. File.dirname(file) basename = File.basename(file, File.extname(file)) self.load_path = File.join(dir, basename) self.load_file = file @title = superclass.instance_variable_get(:@title) @description = superclass.instance_variable_get(:@description) @documentation_order = superclass.instance_variable_get(:@documentation_order) end end |
.resource_class ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/jsonapionify/api/base.rb', line 39 def self.resource_class if const_defined?(:ResourceBase, false) const_get(:ResourceBase, false) else const_set(:ResourceBase, Class.new(Resource)) end end |