module Scorpio::ResourceBase::PickleAdapter
Public Class Methods
column_names(klass)
click to toggle source
get a list of column names for a given class
# File lib/scorpio/pickle_adapter.rb, line 17 def self.column_names(klass) klass.all_schema_properties.to_a end
create_model(klass, attributes)
click to toggle source
Create a model using attributes
# File lib/scorpio/pickle_adapter.rb, line 48 def self.create_model(klass, attributes) klass.new(attributes).post end
find_all_models(klass, conditions)
click to toggle source
Find all models matching conditions
# File lib/scorpio/pickle_adapter.rb, line 39 def self.find_all_models(klass, conditions) klass.index.select do |record| (conditions || {}).all? do |attr, value| record.public_send(attr) == value end end end
find_first_model(klass, conditions)
click to toggle source
Find the first instance matching conditions
# File lib/scorpio/pickle_adapter.rb, line 33 def self.find_first_model(klass, conditions) # TODO don't load all find_all_models(klass, conditions).first end
get_model(klass, id)
click to toggle source
Get an instance by id of the model
# File lib/scorpio/pickle_adapter.rb, line 22 def self.get_model(klass, id) if klass.respond_to?(:read) klass.read(id: id) elsif klass.respond_to?(:index) return klass.index.detect { |record| record.id == id } else raise end end
model_classes()
click to toggle source
Gets a list of the available models for this adapter
all of the Scorpio
models MUST be loaded before this gets called.
# File lib/scorpio/pickle_adapter.rb, line 12 def self.model_classes ObjectSpace.each_object(Class).select { |klass| klass < ::Scorpio::ResourceBase } end