thumbs_yup 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1adab547f4675b1dd8da06175ff6013a9dbac7fe
4
- data.tar.gz: fe8d9a8815a43c696ed42c8e505796af5e6c8aab
3
+ metadata.gz: 3ed198c40962e0e720ebd79f6269cab89fdae92e
4
+ data.tar.gz: a69a51d22ae74f955b32ab34e074f7506ff9ddd1
5
5
  SHA512:
6
- metadata.gz: fd39d1e16f3262f8aa10a7d97ed7dfd0f003319dc487f08333d06e0556d0619d0e1cdd87d0f9416dd866f777e1d33b6264b2ac6dec7bec52ce2d01ebc55bb7cd
7
- data.tar.gz: 982da90fe7d1e4bae2653ab5995e24451e5581ea918e535ae88d078649d86929883630f642a8139b39d7e9811cdd7f1c3d10632a76a0671c8de35ea2b97c70e7
6
+ metadata.gz: c3b38f2c2643004cc3a33d2e743ef05a8376f92dd13ee3a33a637449ecdbde20391a315f266009767bba9884c516b3e914343781faf9c8dbd30318aa667a5525
7
+ data.tar.gz: b79da320c197e9ccf1bfa28e6bd3e7779dd5dbbb59a7a1112e031ef7ef7b1b1aba9b0a5b19aad5db0bbb06fefc3d9c3483d3cd96f0a125ad4f36638174e62d36
@@ -0,0 +1,33 @@
1
+ class ReviewDecorator
2
+ attr_accessor :review
3
+
4
+ def initialize(vars)
5
+ @review = {
6
+ "body" => vars["body"],
7
+ "full_name" => "#{vars["first_name"]} #{vars["last_name"]}",
8
+ "title_and_business_name" => title_and_business_name(vars),
9
+ "city_state_and_country" => city_state_and_country(vars),
10
+ }
11
+ @review = clean_vars(@review)
12
+ end
13
+
14
+ private
15
+
16
+ def title_and_business_name(vars)
17
+ separator = ", " if vars["title"] && vars["business_name"]
18
+ "#{vars["title"]}#{separator}#{vars["business_name"]}"
19
+ end
20
+
21
+ def city_state_and_country(vars)
22
+ separator1 = ", " if vars["city"] && vars["state"]
23
+ separator2 = ", " if (vars["city"] && vars["country"]) || (vars["state"] && vars["country"])
24
+ "#{vars["city"]}#{separator1}#{vars["state"]}#{separator2}#{vars["country"]}"
25
+ end
26
+
27
+ def clean_vars(vars)
28
+ vars.each do |key, value|
29
+ vars[key] ||= ""
30
+ vars[key] = CGI::escapeHTML(vars[key])
31
+ end
32
+ end
33
+ end
@@ -14,9 +14,9 @@
14
14
  }
15
15
  }
16
16
  </script>
17
- <div class="thumbsYup">
17
+ <div class="thumbsYup yui3-cssreset">
18
18
  <div class="pagination">
19
19
  </div>
20
- <%= reviews_html %>
20
+ <%= reviews %>
21
21
  </div>
22
22
  <script type='text/javascript' src=<%= "'#{settings[:thumbs_yup_url]}" %>/assets/thumbs-yup-client.js'></script>
@@ -8,20 +8,14 @@ module ThumbsYup
8
8
  def render_public_reviews(page: nil)
9
9
  check_user_identifer!
10
10
 
11
- reviews_html = ""
12
-
13
11
  review_data = json_review_data(page: page)
14
12
  reviews = review_data["reviews"]
15
13
  metadata = review_data["metadata"]
16
14
 
17
- reviews.each do |review|
18
- reviews_html += decorate(review)
19
- end
20
-
21
15
  html = TemplateRenderer::render_page(
22
16
  settings: settings,
23
17
  pagination: pagination(metadata),
24
- reviews_html: reviews_html
18
+ reviews: reviews
25
19
  )
26
20
 
27
21
  html.html_safe
@@ -56,10 +50,6 @@ module ThumbsYup
56
50
  JSON.parse(response.body)
57
51
  end
58
52
 
59
- def decorate(json_review)
60
- TemplateRenderer::render_review(json_review)
61
- end
62
-
63
53
  def settings
64
54
  {
65
55
  review_style: ThumbsYup.configuration.review_style,
@@ -1,23 +1,42 @@
1
1
  require 'erb'
2
2
  require 'ostruct'
3
+ require_relative 'review_decorator'
3
4
 
4
5
  class TemplateRenderer < OpenStruct
5
- def self.render_review(vars)
6
- style = ThumbsYup.configuration.review_style
7
- background = ThumbsYup.configuration.review_background
8
- template_file = style + "_" + background + ".erb"
9
-
10
- template = File.read(
11
- File.join(File.dirname(__FILE__), 'templates', template_file)
12
- )
13
- TemplateRenderer.new(vars).render(template)
14
- end
6
+ class << self
7
+ def render_page(vars)
8
+ vars[:reviews] = reviews_html(vars[:reviews])
9
+
10
+ TemplateRenderer.new(vars).render(page_template)
11
+ end
12
+
13
+ private
14
+
15
+ def reviews_html(reviews)
16
+ reviews.reduce("") do |acc, review|
17
+ acc << render_review(review)
18
+ end
19
+ end
20
+
21
+ def render_review(vars)
22
+ vars = ReviewDecorator.new(vars).review
23
+ TemplateRenderer.new(vars).render(review_template)
24
+ end
25
+
26
+ def review_template
27
+ style = ThumbsYup.configuration.review_style
28
+ background = ThumbsYup.configuration.review_background
29
+ template_file = style + "_" + background + ".erb"
30
+ File.read(
31
+ File.join(File.dirname(__FILE__), 'templates', template_file)
32
+ )
33
+ end
15
34
 
16
- def self.render_page(vars)
17
- template = File.read(
18
- File.join(File.dirname(__FILE__), 'reviews.erb')
19
- )
20
- TemplateRenderer.new(vars).render(template)
35
+ def page_template
36
+ File.read(
37
+ File.join(File.dirname(__FILE__), 'reviews.erb')
38
+ )
39
+ end
21
40
  end
22
41
 
23
42
  def render(template)
@@ -1,8 +1,10 @@
1
1
  <div class="review<%= ThumbsYup.configuration.review_size.capitalize %>">
2
2
  <div class="rstyle<%= ThumbsYup.configuration.review_color.capitalize + ThumbsYup.configuration.review_style.capitalize + ThumbsYup.configuration.review_background.capitalize %>">
3
- <%= CGI::escapeHTML(body) %>
3
+ <%= body %>
4
4
  </div>
5
5
  <p class="signature">
6
- <%= CGI::escapeHTML(first_name) %>
6
+ <%= full_name %><% unless full_name.blank? %><br><% end %>
7
+ <%= title_and_business_name %><% unless title_and_business_name.blank? %><br><% end %>
8
+ <%= city_state_and_country %>
7
9
  </p>
8
10
  </div>
@@ -1,3 +1,3 @@
1
1
  module ThumbsYup
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thumbs_yup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jomana Malone
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-04-22 00:00:00.000000000 Z
12
+ date: 2017-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -73,6 +73,7 @@ files:
73
73
  - bin/setup
74
74
  - lib/thumbs_yup.rb
75
75
  - lib/thumbs_yup/configuration.rb
76
+ - lib/thumbs_yup/review_decorator.rb
76
77
  - lib/thumbs_yup/reviews.erb
77
78
  - lib/thumbs_yup/server_embed.rb
78
79
  - lib/thumbs_yup/template_renderer.rb