module Statlysis::Utils
Public Class Methods
is_activerecord?(data)
click to toggle source
# File lib/statlysis/utils.rb, line 6 def is_activerecord?(data); data.is_a?(ActiveRecordDataset) || !!((data.respond_to?(:included_modules) ? data.included_modules : []).index(ActiveRecord::Store)) end
is_mongoid?(data)
click to toggle source
# File lib/statlysis/utils.rb, line 7 def is_mongoid?(data); data.is_a?(MongoidDataset) || !!((data.respond_to?(:included_modules) ? data.included_modules : []).index(Mongoid::Document)) end
name(data)
click to toggle source
# File lib/statlysis/utils.rb, line 8 def name(data) return :collection_name if Utils.is_mongoid?(data) return :table_name if Utils.is_activerecord?(data) end
normalise_name(*name)
click to toggle source
# File lib/statlysis/utils.rb, line 38 def normalise_name *name Array(name).flatten.compact.map {|s| s.to_s.gsub('_','') }.reject {|s| s.blank? }.join('_').downcase end
setup_pattern_table_and_model(tn)
click to toggle source
# File lib/statlysis/utils.rb, line 13 def setup_pattern_table_and_model tn # ensure statlysis table tn = tn.pluralize if not Statlysis.sequel.table_exists?(tn) Statlysis.sequel.create_table tn, DefaultTableOpts.merge(:engine => "InnoDB") do primary_key :id String :pattern index :pattern end Statlysis.sequel.add_column tn, :result, String, :text => true end # generate a statlysis kv model str = tn.to_s.singularize.camelize class_eval <<-MODEL, __FILE__, __LINE__ + 1 class ::#{str} < Sequel::Model; self.set_dataset :#{tn} def self.[] item_id JSON.parse(find_or_create(:pattern => item_id).result) rescue [] end end; MODEL {:table => tn, :model => str.constantize} end
sha1_name(name;)
click to toggle source
# File lib/statlysis/utils.rb, line 42 def sha1_name name; Digest::SHA1.hexdigest Array(name).map(&:to_s).join end