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.



1113
1114
1115
1116
1117
# File 'lib/simple_record.rb', line 1113

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

Instance Method Details

#<<(ob) ⇒ Object



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

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

#[](key) ⇒ Object



1132
1133
1134
# File 'lib/simple_record.rb', line 1132

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

#build(*params) ⇒ Object



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

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

#countObject



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

def count
  return load.count
end

#create(*params) ⇒ Object



1169
1170
1171
1172
1173
# File 'lib/simple_record.rb', line 1169

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

#each(*params, &block) ⇒ Object



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

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

#empty?Boolean

Returns:

  • (Boolean)


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

def empty?
  return load.empty?
end

#find(*params) ⇒ Object



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

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



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

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

#firstObject



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

def first
  load[0]
end

#init_emptyObject

Performance optimization if you know the array should be empty



1121
1122
1123
# File 'lib/simple_record.rb', line 1121

def init_empty
  @records = []
end

#loadObject



1125
1126
1127
1128
1129
1130
# File 'lib/simple_record.rb', line 1125

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

#sizeObject



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

def size
  return count
end