Sha256: 2cdcf4292d637f4372f6d52adc20dd2e302c5eeb3d725c360a19707808caa619
Contents?: true
Size: 1.7 KB
Versions: 5
Compression:
Stored size: 1.7 KB
Contents
# -*- encoding : utf-8 -*- require "coderay" require "uglifier" def self.included host_class host_class.include_set Abstract::Machine host_class.include_set Abstract::MachineInput host_class.machine_input { standard_machine_input } host_class.store_machine_output filetype: "js" end def standard_machine_input js = format(:js)._render_core js = compress js if compress? comment_with_source js end def comment_with_source js "//#{name}\n#{js}" end def compress input Uglifier.compile input rescue StandardError => e # CoffeeScript is compiled in a view # If there is a CoffeeScript syntax error we get the rescued view here # and the error that the rescued view is no valid Javascript # To get the original error we have to refer to Card::Error.current raise Card::Error, compression_error_message(e) end def compression_error_message e if Card::Error.current Card::Error.current.message else "JavaScript::SyntaxError (#{name}): #{e.message}" end end def compress? Cardio.config.compress_javascript end def clean_html? false end format do def chunk_list # turn off autodetection of uri's :nest_only end # def default_nest_view # :raw # end end format :html do def input_type :ace_editor end def ace_mode :javascript end def content_changes action, diff_type, hide_diff=false wrap_with(:pre) { super } end view :core do script = card.format(:js).render_core process_content highlight(script) end view :javascript_include_tag do javascript_include_tag card.machine_output_url # path(format: :js) end def highlight script ::CodeRay.scan(script, :js).div end end def diff_args { diff_format: :text } end
Version data entries
5 entries across 5 versions & 1 rubygems