lib/pluck_all.rb in pluck_all-1.2.0 vs lib/pluck_all.rb in pluck_all-1.2.1
- old
+ new
@@ -46,11 +46,11 @@
end
end
end
def cast_need_columns(column_names, _klass = nil)
@pluck_all_cast_need_columns = column_names.map(&:to_s)
- @pluck_all_cast_klass = _klass || klass
+ @pluck_all_cast_klass = _klass
return self
end
private
def select_all(*args)
args.map! do |column_name|
@@ -66,16 +66,17 @@
end
#----------------------------------
# Support casting CarrierWave url
#----------------------------------
def cast_carrier_wave_uploader_url(attributes)
- if defined?(CarrierWave) and @pluck_all_cast_klass
- @pluck_all_cast_klass.uploaders.each do |key, uploader|
- next if (value = attributes[key.to_s]) == nil
+ if defined?(CarrierWave)
+ @pluck_all_cast_klass ||= klass
+ @pluck_all_uploaders ||= @pluck_all_cast_klass.uploaders.select{|key, uploader| attributes.key?(key.to_s) }
+ @pluck_all_uploaders.each do |key, uploader|
obj = @pluck_all_cast_klass.new
- obj[key] = value
- @pluck_all_cast_need_columns.each{|s| obj[s] = attributes[s] }
- attributes[key.to_s] = obj.send(:_mounter, key).uploader.to_s #uploaders.first
+ obj[key] = attributes[key_s = key.to_s]
+ @pluck_all_cast_need_columns.each{|s| obj[s] = attributes[s] } if @pluck_all_cast_need_columns
+ attributes[key_s] = obj.send(:_mounter, key).uploader #uploaders.first
end
end
return attributes
end
end