class Surfer::Operation
Constants
- CONNECTION
@@columns = nil
- SUPPORT
Public Class Methods
all(attribute = {})
click to toggle source
select All with attribute and without attribute command.
# File lib/surfer/operation.rb, line 44 def self.all attribute = {} objects = [] table_name = SUPPORT.get_pluralize( "#{self.name}" ) begin @conn = CONNECTION.create_connection if attribute.empty? record = @conn.prepare( " SELECT * FROM #{table_name} " ) else record = @conn.prepare( " SELECT #{attribute} FROM #{table_name} " ) end record.execute() @columns = record.column_names record.fetch do |e| hash = {} e.entries.each_with_index do |v,i| @columns[i].to_sym hash[@columns[i].to_sym] = v end obj = self.new({}) hash.each{|k,v| obj.send("#{k}=",v)} objects << obj end return objects rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" else puts " Records fetched successfully. " ensure if @conn CONNECTION.close_connection end end end
columns()
click to toggle source
setting column accessor.
# File lib/surfer/operation.rb, line 284 def self.columns self.class_variable_get(:@@columns) rescue nil end
dindex(argv)
click to toggle source
Index distroy.
# File lib/surfer/operation.rb, line 226 def self.dindex argv table_name = SUPPORT.get_pluralize( "#{self.name}" ) query = SUPPORT.generate_dindex( table_name, argv ) begin @conn = CONNECTION.create_connection @conn.do( query ) @conn.commit rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" @conn.rollback else puts " Index removes successfully. " ensure CONNECTION.close_connection end end
drop()
click to toggle source
Drop commnad.
# File lib/surfer/operation.rb, line 25 def self.drop begin @conn = CONNECTION.create_connection table_name = SUPPORT.get_pluralize( "#{self.name}" ) @conn.do( "DROP TABLE IF EXISTS #{table_name}" ) @conn.commit rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" @conn.rollback else puts "Table droped successfully." ensure CONNECTION.close_connection end end
index(argv)
click to toggle source
Index creation.
# File lib/surfer/operation.rb, line 205 def self.index argv table_name = SUPPORT.get_pluralize( "#{self.name}" ) query = SUPPORT.generate_index( table_name, argv ) begin @conn = CONNECTION.create_connection @conn.do(query) @conn.commit rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" @conn.rollback else puts " Index created successfully. " ensure CONNECTION.close_connection end end
new(arg={})
click to toggle source
initializer method.
# File lib/surfer/operation.rb, line 13 def initialize(arg={}) puts self.class arg.each do |a, v| puts "a = #{a} p = #{v}" self.send("#{a}=", v) #eval("self.#{a} = '#{v}'") end end
set_accessor(base,argv)
click to toggle source
Setting Attribute accessor.
# File lib/surfer/operation.rb, line 275 def self.set_accessor(base,argv) argv.each do |c| base.class_eval do attr_accessor c end end end
set_columns()
click to toggle source
Loading Table column from database.
# File lib/surfer/operation.rb, line 247 def self.set_columns puts "*" * 100 puts self.inspect unless columns table_name = SUPPORT.get_pluralize(self.name) begin if @conn == nil @conn = CONNECTION.create_connection record = @conn.prepare( " select * from #{table_name} " ) record.execute() puts "inside setcoloums #{self.name}" self.class_variable_set(:@@columns,record.column_names) set_accessor(self, columns ) end rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" ensure if @conn CONNECTION.close_connection end end end columns end
where(argv)
click to toggle source
Where clouse.
# File lib/surfer/operation.rb, line 164 def self.where argv table_name = SUPPORT.get_pluralize( "#{self.name}" ) query = SUPPORT.generate_where( table_name, argv ) begin @conn = CONNECTION.create_connection objects = [] record = @conn.prepare( "#{query}" ) record.execute() @columns = record.column_names record.fetch do |e| hash = {} e.entries.each_with_index do |v,i| @columns[i].to_sym hash[@columns[i].to_sym] = v end obj = self.new({}) puts obj.class puts "Iam Here" puts hash.inspect hash.each{|k,v| obj.send("#{k}=",v)} puts "Iam Not Here" # objects << hash objects << obj end rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" else puts " Records fetched successfully. " ensure if @conn CONNECTION.close_connection end end objects end
Public Instance Methods
remove()
click to toggle source
Remove Command
# File lib/surfer/operation.rb, line 134 def remove table_name = SUPPORT.get_pluralize( "#{self.class}" ) if self.id != nil query = SUPPORT.generate_remove( table_name, "id" => "#{self.id}" ) else puts " Record does not persist in database. " return end puts query begin @conn = CONNECTION.create_connection if @conn.do(query) == 1 @conn.commit self.id = nil puts " Record remove successfully. " else puts " Record does not exist in database. " end rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" @conn.rollback ensure puts "Iam Here :) " CONNECTION.close_connection end end
save()
click to toggle source
Save command.
# File lib/surfer/operation.rb, line 81 def save hash = {} self.class.columns.each do |c| if c != "id" hash[c] = eval "self.#{c}" end #@args[0] end table_name = SUPPORT.get_pluralize( "#{self.class}" ) query = SUPPORT.generate_insert( table_name, hash ) puts query begin @conn = CONNECTION.create_connection @conn.do(query) @conn.commit self.id = @conn.select_one("SELECT LAST_INSERT_ID()").last rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" @conn.rollback else puts " Record inserted successfully. " ensure CONNECTION.close_connection end end
update(argv)
click to toggle source
Update Command.
# File lib/surfer/operation.rb, line 109 def update argv table_name = SUPPORT.get_pluralize( "#{self.class}" ) if self.id != nil query = SUPPORT.generate_update( table_name, argv, "id" => "#{self.id}" ) else puts " Record does not persist in database. " return end begin @conn = CONNECTION.create_connection @conn.do(query) @conn.commit rescue DBI::DatabaseError => e puts "Error code : #{e.err}" puts "Error message : #{e.errstr}" @conn.rollback else puts " Record updated successfully. " ensure CONNECTION.close_connection end end