Class: Newsletter::Field::InlineAsset
- Inherits:
-
Newsletter::Field
- Object
- ActiveRecord::Base
- Newsletter::Field
- Newsletter::Field::InlineAsset
- Defined in:
- app/models/newsletter/field/inline_asset.rb
Defined Under Namespace
Classes: Value
Instance Method Summary collapse
- #asset(piece) ⇒ Object
-
#set_value_for_piece(piece, params) ⇒ Object
overridden from main class to choose between a Newsletter::Asset or a given URL.
-
#url_for_piece(piece) ⇒ Object
uniformly get URL so we can know whether it has been modified and delete any asset uploaded.
-
#value_for_piece(piece) ⇒ Object
overridden from main class to choose between a Newsletter::Asset or a given URL.
Methods inherited from Newsletter::Field
#export_fields, #form_partial_path, #get_value, import, morph, #set_value, valid_types
Methods included from Deleteable
#delete, included, #is_deleted?, #undelete
Instance Method Details
#asset(piece) ⇒ Object
48 49 50 |
# File 'app/models/newsletter/field/inline_asset.rb', line 48 def asset(piece) assets.by_piece(piece).first end |
#set_value_for_piece(piece, params) ⇒ Object
overridden from main class to choose between a Newsletter::Asset or a given URL
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/models/newsletter/field/inline_asset.rb', line 20 def set_value_for_piece(piece,params) if params[:url] unless url_for_piece(piece).eql?(params[:url]) asset(piece).destroy if asset(piece) set_value(piece,:url,params[:url]) end end set_value(piece,:text,params[:text]) if params[:text] if params[:uploaded_data] asset = asset(piece) if asset && params[:asset_id] == asset.id.to_s asset.image = params[:uploaded_data] else asset = assets.build piece.assets << asset asset.image = params[:uploaded_data] end asset.save end end |
#url_for_piece(piece) ⇒ Object
uniformly get URL so we can know whether it has been modified and delete any asset uploaded
43 44 45 46 |
# File 'app/models/newsletter/field/inline_asset.rb', line 43 def url_for_piece(piece) return "#{::Newsletter.site_url}/#{asset(piece).public_filename}" unless asset(piece).try(:public_filename).nil? get_value(piece,:url) end |
#value_for_piece(piece) ⇒ Object
overridden from main class to choose between a Newsletter::Asset or a given URL
15 16 17 |
# File 'app/models/newsletter/field/inline_asset.rb', line 15 def value_for_piece(piece) Value.new(:url => url_for_piece(piece), :text => get_value(piece,:text), :asset => asset(piece)) end |