blog_helper 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +6 -19
- data/Rakefile +1 -1
- data/lib/blog_helper.rb +26 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -79,28 +79,14 @@ Create a page called `tagged.rhtml` in your `templates/pages` directory that loo
|
|
79
79
|
<%#
|
80
80
|
# search given tags...
|
81
81
|
%>
|
82
|
-
|
83
82
|
<%
|
84
|
-
require 'cgi'
|
85
83
|
require 'blog_helper'
|
86
|
-
|
87
|
-
desired_tag = env["QUERY_STRING"]
|
88
|
-
if desired_tag
|
89
|
-
start = desired_tag.index("=")
|
90
|
-
stop = desired_tag.index("&")
|
91
|
-
stop = 0 unless stop
|
92
|
-
desired_tag = desired_tag[start+1..stop-1]
|
93
|
-
desired_tag = CGI::unescape(desired_tag)
|
94
|
-
end
|
95
|
-
|
84
|
+
desired_tag = BlogHelper::desired_tag(env["QUERY_STRING"])
|
96
85
|
%>
|
97
86
|
<h1>Posts filed under '<%= desired_tag %>': </h1>
|
98
87
|
<ul>
|
99
88
|
|
100
|
-
<% @articles.
|
101
|
-
tags = BlogHelper::csv_to_array(a[:tags])
|
102
|
-
tags.include?(desired_tag) if tags
|
103
|
-
end.each do |article| %>
|
89
|
+
<% BlogHelper::desired_articles(@articles, desired_tag).each do |article| %>
|
104
90
|
<li>
|
105
91
|
<span class="descr"><a href="<%= article.path %>" alt="<%= article.title %>"><%= article.title %></a><br/></span>
|
106
92
|
</li>
|
@@ -110,11 +96,12 @@ Create a page called `tagged.rhtml` in your `templates/pages` directory that loo
|
|
110
96
|
|
111
97
|
Now, you did most likely implement a tag listing on your toto blog. Congrats!
|
112
98
|
|
113
|
-
BTW: part of my to dos is encapsulating the tag parsing process so you won't have to fiddle around with too much ruby code here...
|
114
99
|
|
115
|
-
###
|
100
|
+
### short url (via bit.ly)
|
101
|
+
|
102
|
+
To use a bit.ly shortened URL, just call the followin function inside a .rhtml file:
|
116
103
|
|
117
|
-
|
104
|
+
<%= BlogHelper::short_url_bitly(<url>, <bit.ly login name>, <bit.ly api key>) %>
|
118
105
|
|
119
106
|
|
120
107
|
### disqus comment counter
|
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ require 'rake/testtask'
|
|
12
12
|
|
13
13
|
spec = Gem::Specification.new do |s|
|
14
14
|
s.name = 'blog_helper'
|
15
|
-
s.version = '0.0.
|
15
|
+
s.version = '0.0.9'
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.extra_rdoc_files = ['README.md', 'LICENSE']
|
18
18
|
s.summary = 'Some handy helpers for serious, toto and the likes...'
|
data/lib/blog_helper.rb
CHANGED
@@ -58,9 +58,34 @@ module BlogHelper
|
|
58
58
|
def BlogHelper.short_url_bitly(url, login, api_key)
|
59
59
|
if api_key != "" && login != ""
|
60
60
|
rest_call=%{http://api.bit.ly/v3/shorten?login=#{login}&apikey=#{api_key}&longUrl=#{url}&format=txt}
|
61
|
-
Net::HTTP::get(URI.parse(rest_call))
|
61
|
+
Net::HTTP::get(URI.parse(rest_call)) # handle http errors (esp. timeouts!)
|
62
62
|
else
|
63
63
|
url #fallback: return url to shorten - or nil if it isn't set
|
64
64
|
end
|
65
65
|
end
|
66
|
+
#desired articles matching a corresponding tag
|
67
|
+
def BlogHelper.desired_articles(articles, tag)
|
68
|
+
if(articles && tag)
|
69
|
+
articles.select do |a|
|
70
|
+
tags = BlogHelper::csv_to_array(a[:tags])
|
71
|
+
tags.include?(tag) if tags
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
# extract desired tag from <code>env["QUERY_STRING"]</code> or an equally formed expression, e.g. tag=desired_tag
|
76
|
+
def BlogHelper.desired_tag(query_string)
|
77
|
+
if query_string
|
78
|
+
start = query_string.index("tag=")
|
79
|
+
if start
|
80
|
+
start = start + 3
|
81
|
+
stop = query_string.index("&")
|
82
|
+
stop = 0 unless stop
|
83
|
+
desired_tag = query_string[start+1..stop-1]
|
84
|
+
desired_tag = CGI::unescape(desired_tag)
|
85
|
+
else
|
86
|
+
'' #fallback: return empty string to prevent nil errors
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
66
91
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blog_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Sven Kr\xC3\xA4uter"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-20 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|