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.



1116
1117
1118
1119
1120
# File 'lib/simple_record.rb', line 1116

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

Instance Method Details

#<<(ob) ⇒ Object



1143
1144
1145
# File 'lib/simple_record.rb', line 1143

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

#[](key) ⇒ Object



1135
1136
1137
# File 'lib/simple_record.rb', line 1135

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

#build(*params) ⇒ Object



1167
1168
1169
1170
# File 'lib/simple_record.rb', line 1167

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

#countObject



1147
1148
1149
# File 'lib/simple_record.rb', line 1147

def count
  return load.count
end

#create(*params) ⇒ Object



1172
1173
1174
1175
1176
# File 'lib/simple_record.rb', line 1172

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

#each(*params, &block) ⇒ Object



1155
1156
1157
# File 'lib/simple_record.rb', line 1155

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

#empty?Boolean

Returns:

  • (Boolean)


1163
1164
1165
# File 'lib/simple_record.rb', line 1163

def empty?
  return load.empty?
end

#find(*params) ⇒ Object



1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
# File 'lib/simple_record.rb', line 1178

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



1159
1160
1161
# File 'lib/simple_record.rb', line 1159

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

#firstObject



1139
1140
1141
# File 'lib/simple_record.rb', line 1139

def first
  load[0]
end

#init_emptyObject

Performance optimization if you know the array should be empty



1124
1125
1126
# File 'lib/simple_record.rb', line 1124

def init_empty
  @records = []
end

#loadObject



1128
1129
1130
1131
1132
1133
# File 'lib/simple_record.rb', line 1128

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

#sizeObject



1151
1152
1153
# File 'lib/simple_record.rb', line 1151

def size
  return count
end