mwk-ruby-utils 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/LICENSE.txt +1 -1
- data/README.rdoc +1 -11
- data/VERSION +1 -1
- data/lib/mwkrom/blog_reader.rb +57 -0
- data/mwk-ruby-utils.gemspec +11 -14
- metadata +19 -21
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,11 +2,11 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
git (1.2.5)
|
5
|
-
jeweler (1.
|
6
|
-
bundler (~> 1.0
|
5
|
+
jeweler (1.6.2)
|
6
|
+
bundler (~> 1.0)
|
7
7
|
git (>= 1.2.5)
|
8
8
|
rake
|
9
|
-
rake (0.
|
9
|
+
rake (0.9.2)
|
10
10
|
rcov (0.9.9)
|
11
11
|
shoulda (2.11.3)
|
12
12
|
|
@@ -15,6 +15,6 @@ PLATFORMS
|
|
15
15
|
|
16
16
|
DEPENDENCIES
|
17
17
|
bundler (~> 1.0.0)
|
18
|
-
jeweler (~> 1.
|
18
|
+
jeweler (~> 1.6.2)
|
19
19
|
rcov
|
20
20
|
shoulda
|
data/LICENSE.txt
CHANGED
data/README.rdoc
CHANGED
@@ -2,18 +2,8 @@
|
|
2
2
|
|
3
3
|
Description goes here.
|
4
4
|
|
5
|
-
== Contributing to mwk-ruby-utils
|
6
|
-
|
7
|
-
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
8
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
9
|
-
* Fork the project
|
10
|
-
* Start a feature/bugfix branch
|
11
|
-
* Commit and push until you are happy with your contribution
|
12
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
13
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
14
|
-
|
15
5
|
== Copyright
|
16
6
|
|
17
|
-
Copyright (c)
|
7
|
+
Copyright (c) 2011 MW Krom LLC. See LICENSE.txt for
|
18
8
|
further details.
|
19
9
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Mwkrom
|
2
|
+
|
3
|
+
## Copyright(c) MW Krom LLC, All Rights Reserved
|
4
|
+
class BlogReader
|
5
|
+
|
6
|
+
attr_accessor :feed_url, :key, :expires_in
|
7
|
+
|
8
|
+
def use_expires_in
|
9
|
+
expires_in || 10.minutes
|
10
|
+
end
|
11
|
+
|
12
|
+
def articles_for(tags)
|
13
|
+
ActiveSupport::JSON.decode(json_articles_for(tags))
|
14
|
+
end
|
15
|
+
|
16
|
+
def json_articles_for(tags)
|
17
|
+
tkey = tags.join(":").gsub(' ', '')
|
18
|
+
cache_key = "blog_reader_tags:#{tkey}"
|
19
|
+
Rails.cache.fetch(cache_key, :expires_in => use_expires_in) do
|
20
|
+
json_internal_articles_for(tags)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def json_internal_articles_for(tags)
|
25
|
+
internal_articles_for(tags).to_json
|
26
|
+
end
|
27
|
+
|
28
|
+
def internal_articles_for(tags)
|
29
|
+
d = latest_feed_dom
|
30
|
+
items = (d/:item).select do |item|
|
31
|
+
tags.empty? || ((item/:category).any? {|x| puts x.inner_text; tags.include?(x.inner_text)})
|
32
|
+
end
|
33
|
+
items.map do |item|
|
34
|
+
{:url => item.at('link').inner_html,
|
35
|
+
:title => item.at('title').inner_html,
|
36
|
+
:pubDate => (item.at('pubDate') && item.at('pubDate').inner_html),
|
37
|
+
:creator => (item.at('dc:creator') && item.at('dc:creator').inner_html),
|
38
|
+
:description => item.at('description').inner_text}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def latest_feed_xml
|
43
|
+
cache_key = "blog_reader_all:#{key}"
|
44
|
+
Rails.cache.fetch(cache_key, :expires_in => use_expires_in) do
|
45
|
+
res = Net::HTTP.get_response(URI.parse(feed_url))
|
46
|
+
res && res.body
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def latest_feed_dom
|
51
|
+
Hpricot::XML(latest_feed_xml)
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
end
|
data/mwk-ruby-utils.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mwk-ruby-utils}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date = %q{2011-
|
11
|
+
s.authors = [%q{Matthew Krom}]
|
12
|
+
s.date = %q{2011-06-06}
|
13
13
|
s.description = %q{Helpful Ruby/Rails utilities}
|
14
14
|
s.email = %q{matthew@mwkrom.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,19 +25,16 @@ Gem::Specification.new do |s|
|
|
25
25
|
"Rakefile",
|
26
26
|
"VERSION",
|
27
27
|
"lib/mwk-ruby-utils.rb",
|
28
|
+
"lib/mwkrom/blog_reader.rb",
|
28
29
|
"mwk-ruby-utils.gemspec",
|
29
30
|
"test/helper.rb",
|
30
31
|
"test/test_mwk-ruby-utils.rb"
|
31
32
|
]
|
32
33
|
s.homepage = %q{http://github.com/matthewkrom/mwk-ruby-utils}
|
33
|
-
s.licenses = [
|
34
|
-
s.require_paths = [
|
35
|
-
s.rubygems_version = %q{1.
|
34
|
+
s.licenses = [%q{MIT}]
|
35
|
+
s.require_paths = [%q{lib}]
|
36
|
+
s.rubygems_version = %q{1.8.5}
|
36
37
|
s.summary = %q{Helpful Ruby/Rails utilities}
|
37
|
-
s.test_files = [
|
38
|
-
"test/helper.rb",
|
39
|
-
"test/test_mwk-ruby-utils.rb"
|
40
|
-
]
|
41
38
|
|
42
39
|
if s.respond_to? :specification_version then
|
43
40
|
s.specification_version = 3
|
@@ -45,18 +42,18 @@ Gem::Specification.new do |s|
|
|
45
42
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
46
43
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
47
44
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
48
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.
|
45
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
|
49
46
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
50
47
|
else
|
51
48
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
52
49
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
53
|
-
s.add_dependency(%q<jeweler>, ["~> 1.
|
50
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
54
51
|
s.add_dependency(%q<rcov>, [">= 0"])
|
55
52
|
end
|
56
53
|
else
|
57
54
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
58
55
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
59
|
-
s.add_dependency(%q<jeweler>, ["~> 1.
|
56
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
60
57
|
s.add_dependency(%q<rcov>, [">= 0"])
|
61
58
|
end
|
62
59
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mwk-ruby-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matthew Krom
|
@@ -15,10 +15,10 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-06-06 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
21
|
+
type: :development
|
22
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
23
|
none: false
|
24
24
|
requirements:
|
@@ -29,10 +29,10 @@ dependencies:
|
|
29
29
|
- 0
|
30
30
|
version: "0"
|
31
31
|
prerelease: false
|
32
|
-
version_requirements: *id001
|
33
|
-
type: :development
|
34
32
|
name: shoulda
|
33
|
+
version_requirements: *id001
|
35
34
|
- !ruby/object:Gem::Dependency
|
35
|
+
type: :development
|
36
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
37
|
none: false
|
38
38
|
requirements:
|
@@ -45,26 +45,26 @@ dependencies:
|
|
45
45
|
- 0
|
46
46
|
version: 1.0.0
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *id002
|
49
|
-
type: :development
|
50
48
|
name: bundler
|
49
|
+
version_requirements: *id002
|
51
50
|
- !ruby/object:Gem::Dependency
|
51
|
+
type: :development
|
52
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ~>
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
hash:
|
57
|
+
hash: 11
|
58
58
|
segments:
|
59
59
|
- 1
|
60
|
-
-
|
60
|
+
- 6
|
61
61
|
- 2
|
62
|
-
version: 1.
|
62
|
+
version: 1.6.2
|
63
63
|
prerelease: false
|
64
|
-
version_requirements: *id003
|
65
|
-
type: :development
|
66
64
|
name: jeweler
|
65
|
+
version_requirements: *id003
|
67
66
|
- !ruby/object:Gem::Dependency
|
67
|
+
type: :development
|
68
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
69
69
|
none: false
|
70
70
|
requirements:
|
@@ -75,9 +75,8 @@ dependencies:
|
|
75
75
|
- 0
|
76
76
|
version: "0"
|
77
77
|
prerelease: false
|
78
|
-
version_requirements: *id004
|
79
|
-
type: :development
|
80
78
|
name: rcov
|
79
|
+
version_requirements: *id004
|
81
80
|
description: Helpful Ruby/Rails utilities
|
82
81
|
email: matthew@mwkrom.com
|
83
82
|
executables: []
|
@@ -96,10 +95,10 @@ files:
|
|
96
95
|
- Rakefile
|
97
96
|
- VERSION
|
98
97
|
- lib/mwk-ruby-utils.rb
|
98
|
+
- lib/mwkrom/blog_reader.rb
|
99
99
|
- mwk-ruby-utils.gemspec
|
100
100
|
- test/helper.rb
|
101
101
|
- test/test_mwk-ruby-utils.rb
|
102
|
-
has_rdoc: true
|
103
102
|
homepage: http://github.com/matthewkrom/mwk-ruby-utils
|
104
103
|
licenses:
|
105
104
|
- MIT
|
@@ -129,10 +128,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
128
|
requirements: []
|
130
129
|
|
131
130
|
rubyforge_project:
|
132
|
-
rubygems_version: 1.
|
131
|
+
rubygems_version: 1.8.5
|
133
132
|
signing_key:
|
134
133
|
specification_version: 3
|
135
134
|
summary: Helpful Ruby/Rails utilities
|
136
|
-
test_files:
|
137
|
-
|
138
|
-
- test/test_mwk-ruby-utils.rb
|
135
|
+
test_files: []
|
136
|
+
|