class Formtastic::Inputs::SingleFileInput include Formtastic::Inputs::Base def to_html object = builder.object param_key = "#{object.class.table_name.singularize}[#{method}]" title = method.to_s.titleize asset = object.send(method) defn = object.class.haraway_assets[method.to_s] accepts = defn.profile.try(:accepted_file_types) accepts = accepts.join(", ") if accepts versions = compile_versions_array(defn.profile) css_class = asset ? "uploaded" : "" <<-HTML
#{ title }
Browse file
#{ asset ? image_html(asset, versions) : "" }
#{ asset ? asset.file_name : "" }
HTML end def compile_versions_array(profile) if profile versions = profile.versions.keys.map do |key| version = profile.versions[key.to_s] OpenStruct.new( name: version.name, params: version.steps.first.try(:[], "params") ) end.compact else versions = [] end # return versions end def image_html(asset, versions) if versions.select { |v| v.name == "thumb" }.length >= 1 asset_url_thumb = asset.url(:thumb) end if asset_url_thumb html = "
" else html = "
" end html end end