Module: Molecule::Helper
- Defined in:
- lib/molecule/helper.rb
Instance Method Summary collapse
- #default_molecule_name ⇒ Object
- #molecule_asset_contents(molecule_name, asset_group, asset_type) ⇒ Object
- #molecule_defer_script(molecule_name = default_molecule_name) ⇒ Object
- #molecule_defer_style(molecule_name = default_molecule_name) ⇒ Object
- #molecule_inject_script_name(molecule_name = default_molecule_name) ⇒ Object
- #molecule_inline_script(molecule_name = default_molecule_name) ⇒ Object
- #molecule_inline_sprite(molecule_name = default_molecule_name) ⇒ Object
- #molecule_inline_style(molecule_name = default_molecule_name) ⇒ Object
- #molecule_relative_path(molecule_name, asset_group, asset_type) ⇒ Object
Instance Method Details
#default_molecule_name ⇒ Object
59 60 61 |
# File 'lib/molecule/helper.rb', line 59 def default_molecule_name "#{controller_name}_#{action_name}" end |
#molecule_asset_contents(molecule_name, asset_group, asset_type) ⇒ Object
36 37 38 |
# File 'lib/molecule/helper.rb', line 36 def molecule_asset_contents molecule_name, asset_group, asset_type ::File.read(abolute_asset_path(molecule_name, asset_group, asset_type)).html_safe end |
#molecule_defer_script(molecule_name = default_molecule_name) ⇒ Object
23 24 25 26 |
# File 'lib/molecule/helper.rb', line 23 def molecule_defer_script molecule_name = default_molecule_name relative_link = molecule_relative_path(molecule_name, 'defer', 'scripts') content_tag(:script, '', {defer: :defer, src: relative_link}).html_safe end |
#molecule_defer_style(molecule_name = default_molecule_name) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/molecule/helper.rb', line 16 def molecule_defer_style molecule_name = default_molecule_name relative_link = molecule_relative_path(molecule_name, 'defer', 'styles') content_tag(:noscript, class: 'defered-style') do content_tag(:link, '', {rel: :stylesheet, type: 'text/css', href: relative_link}).html_safe end.html_safe end |
#molecule_inject_script_name(molecule_name = default_molecule_name) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/molecule/helper.rb', line 28 def molecule_inject_script_name molecule_name = default_molecule_name relative_link = molecule_relative_path(molecule_name, 'defer', 'scripts') content_tag(:script, "window.script_name='#{relative_link}';".html_safe).html_safe rescue Rails.logger.warn "no inline script name for '#{molecule_name}'" '' end |
#molecule_inline_script(molecule_name = default_molecule_name) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/molecule/helper.rb', line 9 def molecule_inline_script molecule_name = default_molecule_name content_tag(:script, molecule_asset_contents(molecule_name, 'inline', 'scripts')).html_safe rescue Rails.logger.warn "no inline script for '#{molecule_name}'" '' end |
#molecule_inline_sprite(molecule_name = default_molecule_name) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/molecule/helper.rb', line 45 def molecule_inline_sprite molecule_name = default_molecule_name manifest_path = Rails.root.join('public', 'manifests', "#{molecule_name}/icons-inline.json") unless ::File.exists?(manifest_path) Rails.logger.warn("asset manifest not found: '#{manifest_path}'") return '' end manifest = ::File.read(manifest_path) json = JSON.parse(manifest); asset_path = Rails.root.join('public', 'assets', 'svg', json["#{molecule_name}.svg"]) ::File.read(asset_path).html_safe end |
#molecule_inline_style(molecule_name = default_molecule_name) ⇒ Object
5 6 7 |
# File 'lib/molecule/helper.rb', line 5 def molecule_inline_style molecule_name = default_molecule_name content_tag(:style, molecule_asset_contents(molecule_name, 'inline', 'styles')).html_safe end |
#molecule_relative_path(molecule_name, asset_group, asset_type) ⇒ Object
40 41 42 43 |
# File 'lib/molecule/helper.rb', line 40 def molecule_relative_path molecule_name, asset_group, asset_type suffix, asset = find_asset(molecule_name, asset_group, asset_type) "/assets/#{suffix}/#{asset}" end |