homesteading_helpers 0.0.2 → 0.0.3

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: 92f7171186be435b813a70aca82c9e87b8bf13b9
4
- data.tar.gz: 17c9d52cc8efc95d14b60172d7c07d4d39abb096
3
+ metadata.gz: b50362479975ec52638b2eb14fb1c33547a826e9
4
+ data.tar.gz: d84edc9b3b17e409b9243f29ad1dc0aa69193dfb
5
5
  SHA512:
6
- metadata.gz: 82da4ce3548fdeeac7192c88bad925fd92041361a1dcb40aa68d4ff702b3630e6018016a3f79e8f7ea33ff34c870c7bccc2dc0d115ed3e79f7ca1de7b4b61540
7
- data.tar.gz: 2c6549dc3d6284500ad6696a02602825656e277f4059a85588a5cc95eefc62b0aac99d2825bebce1d7eee69bb36b6afe10049a84b90697749fb9d7a4c1dfb5fd
6
+ metadata.gz: eb13b00be5b11efaccf5208ec19bb030d3336d29d0b44c88fe5ccb71090232fa9d96f7822fb4c1dd6639bd7b387ebd930bf21986e34817330c0ddca1c0dddd02
7
+ data.tar.gz: b79b9b619492b36208aa44821962ae0bb865d083783800a897726d0cff56326e851216413a2e9d2cdf58e32cbdb7bc91da15e694cac37d6f1505ca90ea2fc2a3
@@ -1,6 +1,83 @@
1
1
  module HomesteadingHelpers
2
2
  module ApplicationHelper
3
3
 
4
+ def shorturl_link_tag(post)
5
+ url = "http://#{setting :short_domain}"
6
+
7
+ if index_action?
8
+ url = "http://#{setting :short_domain}/#{setting :post_short_code}"
9
+ elsif show_action?
10
+ url = short_url(post)
11
+ end
12
+
13
+ tag(:link, id: "shortlink", rel: "shortlink", type: "text/html", href: url)
14
+ end
15
+
16
+ def short_url(post)
17
+ pieces = [setting(:post_short_code)]
18
+
19
+ pieces << Date.parse("#{post.year}/#{post.month}/#{post.day}").to_sxg
20
+ pieces << nth_of_day(post)
21
+
22
+ "http://#{setting :short_domain}/#{pieces.join}"
23
+ end
24
+
25
+ def nth_of_day(post)
26
+ if post.is_a?(Note)
27
+ nth = Note.where(year: post.year,
28
+ month: post.month,
29
+ day: post.day).all.sort_by{|n| n.published_at}.index(post) + 1
30
+ else
31
+ nth = 1
32
+ end
33
+
34
+ nth.to_sxg
35
+ end
36
+
37
+ def canonical_url(post=nil)
38
+ if post.nil?
39
+ "http://#{setting :long_domain}"
40
+ else
41
+ # TODO refactor away from "note"
42
+ "http://#{setting :long_domain}/#{note_path(post)}"
43
+ end
44
+ end
45
+
46
+ def rel_canonical_link_tag(post)
47
+ url = "http://#{setting :long_domain}"
48
+ if index_action?
49
+ url = "http://#{setting :long_domain}/#{setting(:post_type).pluralize.downcase}"
50
+ elsif show_action?
51
+ url = canonical_url(post)
52
+ end
53
+
54
+ tag(:link, id: "canonical", rel: "canonical", type: "text/html", href: url)
55
+ end
56
+
57
+ def page_description(post=nil)
58
+ page_description = setting(:site_description)
59
+
60
+ if index_action?
61
+ page_description = "#{setting(:post_type).pluralize.capitalize} by #{setting :author_name}"
62
+ elsif show_action?
63
+ page_description = post.content
64
+ end
65
+
66
+ page_description
67
+ end
68
+
69
+ def space
70
+ " "
71
+ end
72
+
73
+ def index_action?
74
+ action_name == "index"
75
+ end
76
+
77
+ def show_action?
78
+ action_name == "show"
79
+ end
80
+
4
81
  def write_action?
5
82
  unless controller_name == "settings"
6
83
  action_name =~ /new|edit/
@@ -46,7 +123,7 @@ module HomesteadingHelpers
46
123
  end
47
124
 
48
125
  if @page_title
49
- title << " &mdash; #{@page_title}"
126
+ title << " - #{@page_title}"
50
127
  end
51
128
 
52
129
  title.html_safe
@@ -67,11 +144,59 @@ module HomesteadingHelpers
67
144
  url = "http://#{url}"
68
145
  end
69
146
 
70
- html << link_to(text, url, class: "u-in-reply-to").html_safe
147
+ rel = show_action? ? "in-reply-to external" : "external"
148
+ html << link_to(text, url, class: "u-in-reply-to h-cite", rel: rel).html_safe
71
149
  end
72
150
 
73
151
  html.join(" ").html_safe
74
152
  end
75
153
 
154
+ def link_to_syndication(post)
155
+ html = content_tag(:p, "Also posted to")
156
+
157
+ links = []
158
+
159
+ external_silos.each do |external|
160
+ if post.respond_to?(external_silo_url_key(external)) &&
161
+ post.send(external_silo_url_key(external)) &&
162
+ !post.send(external_silo_url_key(external)).blank?
163
+
164
+ rel = "external "
165
+ rel << "syndication" if show_action?
166
+
167
+ links << content_tag(:li, link_to(external, post.send(external_silo_url_key(external)), rel: rel, class: "u-syndication"))
168
+ end
169
+ end
170
+
171
+ if links.blank?
172
+ space
173
+ else
174
+ html << content_tag(:ul, links.flatten.join.html_safe)
175
+ end
176
+ end
177
+
178
+ def external_silos
179
+ %w[
180
+ Facebook
181
+ Foursquare
182
+ Instagram
183
+ Medium
184
+ Tumblr
185
+ Twitter
186
+ Vimeo
187
+ Vine
188
+ WordPress
189
+ YouTube
190
+ ]
191
+ end
192
+
193
+ def external_silo_url_key(name)
194
+ "#{name.downcase}_url".to_sym
195
+ end
196
+
197
+ def is_a_reply?(post)
198
+ !post.in_reply_to.blank?
199
+ end
200
+
76
201
  end
77
202
  end
@@ -1,3 +1,3 @@
1
1
  module HomesteadingHelpers
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homesteading_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Becker
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-02 00:00:00.000000000 Z
12
+ date: 2014-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails