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