lib/freeberry/models/asset.rb in freeberry-0.2.7 vs lib/freeberry/models/asset.rb in freeberry-0.2.9

- old
+ new

@@ -12,11 +12,11 @@ base.class_eval do belongs_to :user belongs_to :assetable, :polymorphic => true before_validation :make_content_type - before_create :read_dimensions, :parameterize_filename + before_create :read_dimensions end end def move_to(index, id) update_all(["sort_order = ?", index], ["id = ?", id.to_i]) @@ -50,27 +50,28 @@ def format_created_at I18n.l(created_at, :format => "%d.%m.%Y %H:%M") end - def to_xml(options = {}) - builder = options[:builder] ||= Nokogiri::XML::Builder.new(options) - - builder.send(self.type.to_s.downcase) do |xml| - xml.id_ self.id - xml.filename self.filename - xml.size self.size - xml.path self.url + def to_xml(options = {}, &block) + options = {:only => [:id], :root => 'asset'}.merge(options) + + options[:procs] ||= Proc.new do |options, record| + options[:builder].tag!('filename', filename) + options[:builder].tag!('path', url) + options[:builder].tag!('size', size) - xml.styles do - self.styles.each do |style| - xml.send(style.first, self.url(style.first)) + unless styles.empty? + options[:builder].tag!('styles') do |xml| + styles.each do |style| + xml.tag!(style.first, url(style.first)) + end end - end unless self.styles.empty? + end end - builder.to_xml + super end def has_dimensions? respond_to?(:width) && respond_to?(:height) end @@ -83,16 +84,9 @@ @geometry ||= Paperclip::Geometry.from_file(data.to_file) @geometry end protected - - def parameterize_filename - unless data_file_name.blank? - filename = Freeberry::Utils.parameterize_filename(data_file_name) - self.data.instance_write(:file_name, filename) - end - end def read_dimensions if image? && has_dimensions? self.width = geometry.width self.height = geometry.height