lib/periscope_rails/config.rb in periscope_rails-0.0.3 vs lib/periscope_rails/config.rb in periscope_rails-0.0.4
- old
+ new
@@ -1,11 +1,51 @@
-module PeriscopeRails
- class Config
- @@password = nil
- def self.set_password(password)
- @@password = password
- end
- def self.check_password(password)
- return @@password == password
- end
- end
-end
\ No newline at end of file
+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