Module: Vault::SinatraHelpers::HtmlSerializer

Defined in:
lib/vault-tools/sinatra_helpers/html_serializer.rb

Overview

Public: Methods for including and serializing javascript and css files for HTML

Examples

# = js 'foo' # <%= js 'foo', 'bar', 'foo/bar' %>

# = css 'foo' # <%= cssjs 'foo', 'bar', 'foo/bar' %>

Instance Method Summary collapse

Instance Method Details

#css(*files) ⇒ Object

Public: create css markup with file references replaced by data-urls

files - one or many file names assuming settings.public_folder/css/ is the root

Examples

# given: settings.public_folder/css/invoice.css

css('invoice') # => " # "

Returns the HTML String



61
62
63
64
65
66
# File 'lib/vault-tools/sinatra_helpers/html_serializer.rb', line 61

def css(*files)
  files.inject('') do |string, filename|
    filename = File.join('/css', filename) + '.css'
    string + "<style>\n#{inject_data_urls(slurp(filename))}\n</style>"
  end
end

#js(*files) ⇒ Object

Public: create js markup by concatenating all javascript files

files - one or many file names assuming settings.public_folder/js/ is the root

Examples

# given: settings.public_folder/js/hello.js

js('hello') # => " # "

Returns the HTML String



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/vault-tools/sinatra_helpers/html_serializer.rb', line 33

def js(*files)
  files.inject('') do |string, filename|
    filename = File.join('/js', filename) + '.js'
    string + %{
      <script type='text/javascript'>
      //<![CDATA[
        #{slurp(filename)}
      //]]>
      </script>
    }
  end
end