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.



832
833
834
835
836
# File 'lib/simple_record.rb', line 832

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

Instance Method Details

#<<(ob) ⇒ Object



855
856
857
# File 'lib/simple_record.rb', line 855

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

#[](key) ⇒ Object



851
852
853
# File 'lib/simple_record.rb', line 851

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

#build(*params) ⇒ Object



879
880
881
882
# File 'lib/simple_record.rb', line 879

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

#countObject



859
860
861
# File 'lib/simple_record.rb', line 859

def count
    return load.count
end

#create(*params) ⇒ Object



884
885
886
887
888
# File 'lib/simple_record.rb', line 884

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

#each(*params, &block) ⇒ Object



867
868
869
# File 'lib/simple_record.rb', line 867

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

#empty?Boolean

Returns:

  • (Boolean)


875
876
877
# File 'lib/simple_record.rb', line 875

def empty?
    return load.empty?
end

#find(*params) ⇒ Object



890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
# File 'lib/simple_record.rb', line 890

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



871
872
873
# File 'lib/simple_record.rb', line 871

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

#init_emptyObject

Performance optimization if you know the array should be empty



840
841
842
# File 'lib/simple_record.rb', line 840

def init_empty
    @records = []
end

#loadObject



844
845
846
847
848
849
# File 'lib/simple_record.rb', line 844

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

#sizeObject



863
864
865
# File 'lib/simple_record.rb', line 863

def size
    return count
end