Module: Statlysis::Utils
- Defined in:
- lib/statlysis/utils.rb
Class Method Summary collapse
- .is_activerecord?(data) ⇒ Boolean
- .is_mongoid?(data) ⇒ Boolean
- .name(data) ⇒ Object
- .normalise_name(*name) ⇒ Object
- .setup_pattern_table_and_model(tn) ⇒ Object
- .sha1_name(name) ⇒ Object
Class Method Details
.is_activerecord?(data) ⇒ Boolean
6 |
# 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) ⇒ Boolean
7 |
# 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) ⇒ Object
8 9 10 11 |
# 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) ⇒ Object
38 39 40 |
# 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) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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) ⇒ Object
42 |
# File 'lib/statlysis/utils.rb', line 42 def sha1_name name; Digest::SHA1.hexdigest Array(name).map(&:to_s).join end |