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