class Pliable::Ply
Public Class Methods
all()
click to toggle source
# File lib/pliable/ply.rb, line 21 def self.all if current_scope current_scope.clone else if self.name == "Pliable::Ply" scope = relation else if self.try(:ply_type) scope = relation.where(otype: self.try(:ply_type)) else scope = relation end end default_scoped end end
oldest_last_checked_time()
click to toggle source
# File lib/pliable/ply.rb, line 17 def self.oldest_last_checked_time order('last_checked').first.last_checked end
ply_name(name)
click to toggle source
# File lib/pliable/ply.rb, line 38 def self.ply_name(name) define_singleton_method(:ply_type) { name } end
Public Instance Methods
child_ids()
click to toggle source
# File lib/pliable/ply.rb, line 42 def child_ids child_relations.map(&:child_id) end
parent_ids()
click to toggle source
# File lib/pliable/ply.rb, line 46 def parent_ids parent_relations.map(&:parent_id) end
to_param()
click to toggle source
# File lib/pliable/ply.rb, line 50 def to_param oid end
Private Instance Methods
add_scopes(child_names, parent_names)
click to toggle source
# File lib/pliable/ply.rb, line 74 def add_scopes(child_names, parent_names) child_names.each do |name| define_singleton_method(scrub_for_scope(name)) do scrub_to_constant(name).where(otype: name, id: child_ids) end end parent_names.each do |name| define_singleton_method(scrub_for_scope(name)) do scrub_to_constant(name).where(otype: name, id: parent_ids) end end end
define_ply_scopes()
click to toggle source
# File lib/pliable/ply.rb, line 66 def define_ply_scopes # pluralize is not perfect. ie. Merchandise__c => merchandises child_names = children.pluck(:child_type).uniq parent_names = parents.pluck(:parent_type).uniq add_scopes(child_names, parent_names) end
scrub_for_scope(name)
click to toggle source
user initializer to overwrite this method
# File lib/pliable/ply.rb, line 89 def scrub_for_scope(name) if respond_to? :added_scrubber name = added_scrubber(name) end TextHelper.pluralize(name.downcase) end
scrub_to_constant(name)
click to toggle source
# File lib/pliable/ply.rb, line 97 def scrub_to_constant(name) added_scrubber(name).gsub("_", "").constantize end
set_ply_attributes()
click to toggle source
# File lib/pliable/ply.rb, line 57 def set_ply_attributes if data.present? data.each do |key,value| instance_variable_set(('@' + key.to_s).to_sym, value) define_singleton_method(key.to_s) { instance_variable_get(('@' + key.to_s).to_sym) } end end end