module RD3::DataProviders::Rdbms
Public Class Methods
_table()
click to toggle source
# File lib/rd3/data_providers/rdbms.rb, line 55 def self._table self.client[self.table_name] end
client()
click to toggle source
# File lib/rd3/data_providers/rdbms.rb, line 10 def self.client return @client if @client yml_config = YAML.load(File.read("#{RD3.config.config_file_directory}/#{self.config_file_name}.yml"))[RD3.config.environment.to_s] yml_config = yml_config.symbolize_keys @client = Sequel.connect(yml_config) end
delete(id, opts)
click to toggle source
# File lib/rd3/data_providers/rdbms.rb, line 42 def self.delete(id, opts) logical_delete = unless opts[:logical_only].nil? opts[:logical_only] else RD3.config.enable_logical_deletes end if logical_delete self.save({:id => id, :active => false}) else self._table.where('id = ?', id).delete end end
find_by_key(key, opts={})
click to toggle source
# File lib/rd3/data_providers/rdbms.rb, line 29 def self.find_by_key(key, opts={}) # logically deleted instances will return nil # if the key exists, but the active flag is false filter_logical_deletes = unless opts[:logical_only].nil? opts[:logical_only] else RD3.config.enable_logical_deletes end filter = {:id => key} filter.merge!(:active => filter_logical_deletes) if filter_logical_deletes self._table.where(filter).first end
save(attributes)
click to toggle source
# File lib/rd3/data_providers/rdbms.rb, line 19 def self.save(attributes) if id = attributes.delete(:id) self._table.where('id = ?', id).update(attributes) else id = self._table.insert(attributes) end id end