Class: SimpleRecord::Activerecordtosdb_subrecord_array

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_record.rb

Instance Method Summary collapse

Constructor Details

#initialize(subname, referencename, referencevalue) ⇒ Activerecordtosdb_subrecord_array

Returns a new instance of Activerecordtosdb_subrecord_array.



991
992
993
994
995
# File 'lib/simple_record.rb', line 991

def initialize(subname, referencename, referencevalue)
    @subname=subname.classify
    @referencename=referencename.tableize.singularize + "_id"
    @referencevalue=referencevalue
end

Instance Method Details

#<<(ob) ⇒ Object



1014
1015
1016
# File 'lib/simple_record.rb', line 1014

def <<(ob)
    return load << ob
end

#[](key) ⇒ Object



1010
1011
1012
# File 'lib/simple_record.rb', line 1010

def [](key)
    return load[key]
end

#build(*params) ⇒ Object



1034
1035
1036
1037
# File 'lib/simple_record.rb', line 1034

def build(*params)
    params[0][@referencename]=@referencevalue
    eval(@subname).new(*params)
end

#countObject



1018
1019
1020
# File 'lib/simple_record.rb', line 1018

def count
    return load.count
end

#create(*params) ⇒ Object



1039
1040
1041
1042
1043
# File 'lib/simple_record.rb', line 1039

def create(*params)
    params[0][@referencename]=@referencevalue
    record = eval(@subname).new(*params)
    record.save
end

#each(*params, &block) ⇒ Object



1026
1027
1028
# File 'lib/simple_record.rb', line 1026

def each(*params, &block)
    return load.each(*params){|record| block.call(record)}
end

#find(*params) ⇒ Object



1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
# File 'lib/simple_record.rb', line 1045

def find(*params)
    query=[:first, {}]
    #{:conditions=>"id=>1"}
    if params[0]
        if params[0]==:all
            query[0]=:all
        end
    end

    if params[1]
        query[1]=params[1]
        if query[1][:conditions]
            query[1][:conditions]=SimpleRecord::Base.sanitize_sql(query[1][:conditions])+" AND "+ SimpleRecord::Base.sanitize_sql(["#{@referencename} = ?", @referencevalue])
            #query[1][:conditions]=Activerecordtosdb.sanitize_sql(query[1][:conditions])+" AND id='#{@id}'"
        else
            query[1][:conditions]=["#{@referencename} = ?", @referencevalue]
            #query[1][:conditions]="id='#{@id}'"
        end
    else
        query[1][:conditions]=["#{@referencename} = ?", @referencevalue]
        #query[1][:conditions]="id='#{@id}'"
    end

    return eval(@subname).find(*query)
end

#find_all(*params) ⇒ Object



1030
1031
1032
# File 'lib/simple_record.rb', line 1030

def find_all(*params)
    find(:all, *params)
end

#init_emptyObject

Performance optimization if you know the array should be empty



999
1000
1001
# File 'lib/simple_record.rb', line 999

def init_empty
    @records = []
end

#loadObject



1003
1004
1005
1006
1007
1008
# File 'lib/simple_record.rb', line 1003

def load
    if @records.nil?
        @records = find_all
    end
    return @records
end

#sizeObject



1022
1023
1024
# File 'lib/simple_record.rb', line 1022

def size
    return count
end