Module: Tenon::ApplicationHelper

Defined in:
app/helpers/tenon/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#first_image(obj, options = {}) ⇒ Object

eg. first_image(@product)



41
42
43
44
45
46
47
48
49
50
51
# File 'app/helpers/tenon/application_helper.rb', line 41

def first_image(obj, options = {})
  opts = {
    collection: :images,
    method: :image,
    style: :thumbnail,
    default: image_path('noimage.jpg')
  }.merge(options.symbolize_keys!)

  image = obj.send(opts[:collection]).first
  image ? image.send(opts[:method]).url(opts[:style]) : opts[:default]
end

#html(options = {}, &blk) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'app/helpers/tenon/application_helper.rb', line 53

def html(options = {}, &blk)
  options.recursive_symbolize_keys!

  open = h5bp_opening_tag(options[:ie_versions])
  body = capture_haml(&blk)
  close = '</html>'.html_safe

  open + body + close
end


7
8
9
10
11
12
13
14
# File 'app/helpers/tenon/application_helper.rb', line 7

def menu_item(title, link, options = {})
  klass = ''
  # set the link class to active if it matches the current link or any of the alternate supplied links
  options[:alt_links].each { |a| klass = request.fullpath.match(a) ? 'active' : '' unless klass == 'active' } if options[:alt_links].is_a?(Array)
  klass = 'active' if link == request.fullpath
  klass += " #{options[:class]}" unless options[:class].blank?
  link_to(title, link, class: klass)
end

#route_exist?(thing) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
66
67
# File 'app/helpers/tenon/application_helper.rb', line 63

def route_exist?(thing)
  main_app.polymorphic_path(thing)
rescue NoMethodError
  false
end

#seo_meta_tagsObject



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/helpers/tenon/application_helper.rb', line 26

def seo_meta_tags
  obj = instance_variable_get("@#{params[:controller].singularize}")
  tags = []
  if obj
    if obj.respond_to?(:seo_keywords) && !obj.seo_keywords.blank?
      tags << tag(:meta,  name: 'keywords', content: obj.seo_keywords)
    end
    if obj.respond_to?(:seo_description) && !obj.seo_description.blank?
      tags << tag(:meta,  name: 'description', content: obj.seo_description)
    end
  end
  tags.join
end

#table_row(*args) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'app/helpers/tenon/application_helper.rb', line 16

def table_row(*args)
  html = '<tr>'
  args.each_with_index do |cell, i|
    html += "<td class='cell-#{i + 1}'>#{cell}</td>"
  end
  html += '</tr>\n'

  html.html_safe
end

#thisicon(icon) ⇒ Object



3
4
5
# File 'app/helpers/tenon/application_helper.rb', line 3

def thisicon(icon)
  (:i, icon, class: 'material-icon')
end