Sha256: ad469ad2cee76e6bd05b3912de2d61207725f1b4b361df3d0f6ee38379a11db9
Contents?: true
Size: 1.42 KB
Versions: 16
Compression:
Stored size: 1.42 KB
Contents
require 'active_support/descendants_tracker' require 'active_support/core_ext/module/delegation' module JSONAPIonify::Api class Base extend JSONAPIonify::Autoload autoload_all extend AppBuilder extend Documentation extend ClassMethods extend Delegation extend ResourceDefinitions 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.expand_path 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 def self.cache_key(**options) Base64.urlsafe_encode64( { **options, dsl: JSONAPIonify.digest, api: signature, }.to_json ) end def self.resource_class if const_defined?(:ResourceBase, false) const_get(:ResourceBase, false) else const_set(:ResourceBase, Class.new(Resource)) end end end end
Version data entries
16 entries across 16 versions & 1 rubygems