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 CHANGED
@@ -8,6 +8,6 @@ source "http://rubygems.org"
8
8
  group :development do
9
9
  gem "shoulda", ">= 0"
10
10
  gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.2"
11
+ gem "jeweler", "~> 1.6.2"
12
12
  gem "rcov", ">= 0"
13
13
  end
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.5.2)
6
- bundler (~> 1.0.0)
5
+ jeweler (1.6.2)
6
+ bundler (~> 1.0)
7
7
  git (>= 1.2.5)
8
8
  rake
9
- rake (0.8.3)
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.5.2)
18
+ jeweler (~> 1.6.2)
19
19
  rcov
20
20
  shoulda
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 Matthew Krom
1
+ Copyright (c) 2011 MW Krom LLC
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
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) 2010 Matthew Krom. See LICENSE.txt for
7
+ Copyright (c) 2011 MW Krom LLC. See LICENSE.txt for
18
8
  further details.
19
9
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.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
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in rakefile, and run 'rake gemspec'
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.2.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 = ["Matthew Krom"]
12
- s.date = %q{2011-01-02}
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 = ["MIT"]
34
- s.require_paths = ["lib"]
35
- s.rubygems_version = %q{1.4.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.5.2"])
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.5.2"])
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.5.2"])
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: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 0.2.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-01-02 00:00:00 -05:00
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: 7
57
+ hash: 11
58
58
  segments:
59
59
  - 1
60
- - 5
60
+ - 6
61
61
  - 2
62
- version: 1.5.2
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.4.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
- - test/helper.rb
138
- - test/test_mwk-ruby-utils.rb
135
+ test_files: []
136
+