Module: Megatron::ApplicationHelper
- Defined in:
- app/helpers/megatron/application_helper.rb
Instance Method Summary collapse
- #add_class(string, *classes) ⇒ Object
- #embed_svg(filename, options = {}) ⇒ Object
- #icon(name) ⇒ Object
- #megatron_asset_path(asset) ⇒ Object
- #megatron_assets_tags ⇒ Object
- #options_from_args(args) ⇒ Object
- #test_current_page(criteria) ⇒ Object
- #test_here_key_value(key, value, check_params = params) ⇒ Object
Instance Method Details
#add_class(string, *classes) ⇒ Object
56 57 58 59 60 |
# File 'app/helpers/megatron/application_helper.rb', line 56 def add_class(string, *classes) string ||= '' string << " #{classes.join(' ')}" string end |
#embed_svg(filename, options = {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/helpers/megatron/application_helper.rb', line 28 def (filename, = {}) group = 0 file = File.read(Engine.root.join('app', 'assets', 'images', filename)) .gsub(/<!--.+-->/, '') .gsub(/^\t{2,}\s*<\/?g>/, '') .gsub(/width=".+?"/, 'width="312"') .gsub(/\sheight.+$/, '') .gsub(/\t/, ' ') .gsub(/\n{3,}/m, "\n") .gsub(/^\s{2}<g>.+?^\s{2}<\/g>/m) { |g| g.gsub(/^\s{4,}\s+/, ' ') } .gsub(/^<g>.+?^<\/g>/m) { |g| group += 1 count = 0 g.gsub(/^\s{2}<g>/) { |g| count += 1 %Q{ <g id="group-#{group}-cube-#{count}">} } } # doc = Nokogiri::HTML::DocumentFragment.parse file # svg = doc.at_css 'svg' # if options[:class].present? # svg['class'] = options[:class] # end file.html_safe end |
#icon(name) ⇒ Object
16 17 18 |
# File 'app/helpers/megatron/application_helper.rb', line 16 def icon(name) content_tag(:span, class: "#{name}_icon", 'aria-hidden' => true) { } end |
#megatron_asset_path(asset) ⇒ Object
3 4 5 6 7 |
# File 'app/helpers/megatron/application_helper.rb', line 3 def megatron_asset_path(asset) return "#{ENV['MEGATRON_ASSET_HOST']}/assets/megatron/#{asset}" if ENV['MEGATRON_ASSET_HOST'] return "https://d1jybc9y95nviz.cloudfront.net/assets/megatron/#{asset}" if Rails.env.production? return "/assets/megatron/#{asset}" end |
#megatron_assets_tags ⇒ Object
9 10 11 12 13 14 |
# File 'app/helpers/megatron/application_helper.rb', line 9 def version = Megatron::VERSION favicon_link_tag(megatron_asset_path('favicon.ico')) + stylesheet_link_tag(megatron_asset_path("megatron-#{version}.css")) + javascript_include_tag(megatron_asset_path("megatron-#{version}.js")) end |
#options_from_args(args) ⇒ Object
20 21 22 23 24 25 26 |
# File 'app/helpers/megatron/application_helper.rb', line 20 def (args) if args.last.is_a? Hash args.pop else {} end end |
#test_current_page(criteria) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'app/helpers/megatron/application_helper.rb', line 62 def test_current_page(criteria) return false unless criteria.present? test_params = criteria.delete(:params) || {} test_params[:controller] ||= criteria[:controller] if criteria[:controller].present? test_params[:action] ||= criteria[:action] if criteria[:action].present? test_params.all? {|k, v| test_here_key_value(k, v) } end |
#test_here_key_value(key, value, check_params = params) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'app/helpers/megatron/application_helper.rb', line 73 def test_here_key_value(key, value, check_params = params) if value.is_a?(Hash) value.all? {|k,v| params[k].present? && test_here_key_value(k, v, params[k]) } elsif value.is_a?(Array) value.detect {|v| test_here_key_value(key, v) }.present? elsif value.is_a?(Regexp) (check_params[key] =~ value) != nil else value == check_params[key] end end |