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