Class: HasStar::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/has_star/builder.rb

Overview

take logic out of has_star helper method makes it easy to override

Instance Method Summary collapse

Instance Method Details

#classesObject

override to add extra classes



31
32
33
# File 'lib/has_star/builder.rb', line 31

def classes
  'has-star'
end

#contentObject

content based on model.star status, already html safed



6
7
8
# File 'lib/has_star/builder.rb', line 6

def content
  (model.star? ? starred : unstarred).html_safe
end

#idObject

has_star_post_980190962



26
27
28
# File 'lib/has_star/builder.rb', line 26

def id
  h.dom_id(model, :has_star)
end

#renderObject



35
36
37
38
# File 'lib/has_star/builder.rb', line 35

def render
  h.link_to content, url, method: :patch, remote: true, id: id, class: classes
  # data: {disable_with: '<span class="toggle-star-loading">&#8635;</span>'},
end

#starredObject

html code for solid star, could be &hearts;



11
12
13
# File 'lib/has_star/builder.rb', line 11

def starred
  '&#x2605;'
end

#to_sObject



40
41
42
# File 'lib/has_star/builder.rb', line 40

def to_s
  render
end

#unstarredObject

html code for empty star



16
17
18
# File 'lib/has_star/builder.rb', line 16

def unstarred
  '&#9734;'
end

#urlObject

/posts/980190962/toggle_star



21
22
23
# File 'lib/has_star/builder.rb', line 21

def url
  [:toggle_star, model]
end