Sha256: 5d361310348dbe57c1b361b7d254d25d45d8e044525df481413b7d2b9c8c8854

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

module PeriscopeRails
  class Config
    VALID_MATCHTYPES = ['fuzzy', 'exact']
    
    @@password = nil
    @@filter = nil
    @@filter_matchtype = 'fuzzy'
    @@active_record = nil 
    @@db_username = nil
    @@db_password = nil

    def self.set_password(password)
      @@password = password
    end
    
    def self.set_filter(options)
      @@filter = options[:filter] if options[:filter] and options[:filter].class == Array
      @@filter_matchtype = options[:matchtype] if options.has_key?(:matchtype) and VALID_MATCHTYPES.include?(options[:matchtype])
    end

    def self.use_db_credentials(options)
      @@db_username = options[:username] if options[:username] and options[:username].class == String
      @@db_password = options[:password] if options[:password] and options[:password].class == String
    end
    
    def self.check_password(password)
      return @@password == password
    end
    
    def self.matches_filter(text)
      filter = @@filter || Rails.application.config.filter_parameters
      filter.each do |filtered_word|
        if (@@filter_matchtype == 'fuzzy' and text.include?(filtered_word.to_s)) or
           (@@filter_matchtype == 'exact' and text == filtered_word.to_s)
          return true
        end
      end
      return false
    end
  
    def self.get_active_record
      return ActiveRecord::Base if @@db_username.nil?
      return @@active_record unless @@active_record.nil?
      @@active_record = Class.new(ActiveRecord::Base)
      config = ActiveRecord::Base.connection_config.merge({:username => @@db_username, :password => @@db_password})
      @@active_record.establish_connection(config)
      return @@active_record
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
periscope_rails-0.0.4 lib/periscope_rails/config.rb