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