jsl-feedtosis 0.0.3.1 → 0.0.3.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.
data/feedtosis.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{feedtosis}
3
- s.version = "0.0.3.1"
3
+ s.version = "0.0.3.2"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Justin Leitgeb"]
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  "spec/extensions/feed_normalizer/feed_instance_methods_spec.rb",
17
17
  "spec/fixtures/http_headers/wooster.txt",
18
18
  "spec/fixtures/xml/older_wooster.xml", "spec/fixtures/xml/wooster.xml",
19
- "spec/feedtosis/client_spec.rb", "spec/feedtosis_spec.rb",
19
+ "spec/feedtosis/client_spec.rb",
20
20
  "spec/feedtosis/result_spec.rb",
21
21
  "spec/spec_helper.rb"]
22
22
 
@@ -26,8 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.require_paths = ["lib"]
27
27
  s.rubygems_version = %q{1.3.1}
28
28
  s.summary = %q{Retrieves feeds using conditional GET and marks entries that you haven't seen before}
29
- s.test_files = ["spec/feedtosis_spec.rb", "spec/spec_helper.rb", "spec/feedtosis/client_spec.rb",
30
- "spec/feedtosis/result_spec.rb" ]
29
+ s.test_files = ["spec/spec_helper.rb", "spec/feedtosis/client_spec.rb", "spec/feedtosis/result_spec.rb" ]
31
30
 
32
31
  s.extra_rdoc_files = [ "README.rdoc" ]
33
32
 
@@ -7,17 +7,8 @@ module Feedtosis
7
7
  # these cases, depending on your business logic you may want to inspect the
8
8
  # state of the Curl::Easy object by using methods forwarded to it.
9
9
  class Result
10
-
11
- # Methods which should be delegated to the FeedNormalizer::Feed object.
12
- FEED_METHODS = [ :title, :description, :last_updated, :copyright, :authors,
13
- :author, :urls, :url, :image, :generator, :items, :entries, :new_items,
14
- :new_entries, :channel, :ttl, :skip_hours, :skip_days
15
- ] unless defined?(FEED_METHODS)
16
-
17
- # Precompiled regexp for detecting removing setter methods from collection
18
- # of methods to be delegated to the Curl::Easy object.
19
- SETTER_METHOD_RE = /=$/o unless defined?(SETTER_METHOD_RE)
20
-
10
+ extend Forwardable
11
+
21
12
  def initialize(curl, feed)
22
13
  @curl = curl
23
14
  @feed = feed
@@ -25,22 +16,17 @@ module Feedtosis
25
16
  raise ArgumentError, "Curl object must not be nil" if curl.nil?
26
17
  end
27
18
 
28
- # See what the Curl::Easy object responds to, and send any appropriate
29
- # messages its way. We don't worry about setter methods, since those
30
- # aren't really useful to delegate.
31
- Curl::Easy.instance_methods(false).reject do |m|
32
- m =~ SETTER_METHOD_RE
33
- end.each do |meth| # Example method:
34
- define_method meth do |*args| # def title
35
- @curl.__send__(meth, *args) # @curl.title
36
- end # end
37
- end
19
+ # See what the Curl::Easy object responds to, and send any appropriate messages its way. We ignore
20
+ # Curl setter methods since those aren't really useful to delegate.
21
+ def_delegators :@curl, *Curl::Easy.instance_methods(false).reject {|m| m =~ /=$/o }
38
22
 
39
- # Send methods through to the feed object unless it is nil. If feed
40
- # object is nil, return nil in response to method call.
41
- FEED_METHODS.each do |meth| # Example method:
23
+ # Send methods through to the feed object unless it is nil. If feed object is nil, return nil in response to method call.
24
+ # Unfortunately we can't just see what the object responds to, since FeedNormalizer uses method_missing.
25
+ [ :title, :description, :last_updated, :copyright, :authors, :author, :urls, :url, :image, :generator, :items,
26
+ :entries, :new_items, :new_entries, :channel, :ttl, :skip_hours, :skip_days
27
+ ].each do |meth| # Example method:
42
28
  define_method meth do |*args| # def author
43
- @feed.nil? ? nil : @feed.__send__(meth, *args) # @feed.nil? nil : @feed.author
29
+ @feed.__send__(meth, *args) unless @feed.nil? # @feed.author unless @feed.nil?
44
30
  end # end
45
31
  end
46
32
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsl-feedtosis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3.1
4
+ version: 0.0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Leitgeb
@@ -76,7 +76,6 @@ files:
76
76
  - spec/fixtures/xml/older_wooster.xml
77
77
  - spec/fixtures/xml/wooster.xml
78
78
  - spec/feedtosis/client_spec.rb
79
- - spec/feedtosis_spec.rb
80
79
  - spec/feedtosis/result_spec.rb
81
80
  - spec/spec_helper.rb
82
81
  has_rdoc: true
@@ -112,7 +111,6 @@ signing_key:
112
111
  specification_version: 2
113
112
  summary: Retrieves feeds using conditional GET and marks entries that you haven't seen before
114
113
  test_files:
115
- - spec/feedtosis_spec.rb
116
114
  - spec/spec_helper.rb
117
115
  - spec/feedtosis/client_spec.rb
118
116
  - spec/feedtosis/result_spec.rb
@@ -1,5 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'spec_helper')
2
-
3
- describe Feedtosis do
4
-
5
- end