rss-motor 0.0.5 → 0.0.6

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/CHANGELOG CHANGED
@@ -8,6 +8,15 @@
8
8
  CHANGE-LOG
9
9
  =====================================================================
10
10
  =====================================================================
11
+ Changes from v0.0.5 to v0.0.6
12
+ [+] pull request
13
+ |[+] https://github.com/fntzr/rubygem_rss_motor/commit/3a49b68167f1e148753224c869a04b9be330e1c1
14
+ | | The engines rss_grep and rss_grep_link send improvised values like
15
+ | | [ {'filter1' => [{'title' => '....', ...}, ...]},
16
+ | | {'filter2' => [{'title' => '....', ...}, ...]} ... ]
17
+ [+] Few Bug Absurdities Fixed
18
+ |[+] HTTP Status Check Order
19
+ =====================================================================
11
20
  Changes from v0.0.4 to v0.0.5
12
21
  [+] Few Bug Absurdities Fixed
13
22
  |[+] Web link redirection response['location'] fetched
data/README CHANGED
@@ -4,7 +4,7 @@
4
4
  ||\\ _\\ _\\ || || ||_|| || ||_|| ||\\
5
5
 
6
6
  ======================================================================
7
- v 0.0.5
7
+ v 0.0.6
8
8
 
9
9
  @GitHub: https://github.com/abhishekkr/rubygem_rss_motor
10
10
  @RubyGems: http://rubygems.org/gems/rss-motor
@@ -24,13 +24,18 @@ An easy to use RSS library to get kickstarted with using RSS Feeds.
24
24
  Usage:
25
25
  [+] passing a single RSS Link and fetching array of all items, with hash of nodes
26
26
  puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss'
27
+ Output: [{'title1' => '....', ...}, {'title2' => '....', ...}, ...]
27
28
 
28
29
  [+] filtering items from multiple rss-links having any from set of given keywords
29
30
  puts Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']
31
+ Output: ['ruby' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...]
32
+ 'android' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...] ]
30
33
 
31
34
  [+] filtering items from multiple rss-links having any from set of given keywords,
32
35
  also grabbing entire rss item's link content and check it for filter
33
36
  puts Rss::Motor.rss_grep_link 'http://news.ycombinator.com/rss', ['ruby', 'android']
37
+ Output: ['ruby' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...]
38
+ 'android' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...] ]
34
39
 
35
40
  =====================================================================
36
41
  =====================================================================
@@ -1,5 +1,5 @@
1
1
  module Rss
2
2
  module Motor
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
data/lib/rss-motor/www.rb CHANGED
@@ -25,8 +25,8 @@ module Rss
25
25
  rescue
26
26
  return ''
27
27
  end
28
- return response.body if response['location'].nil?
29
28
  return '' if response.code.match(/^4/) || response.code.match(/^5/)
29
+ return response.body if response['location'].nil?
30
30
  http_requester response['location']
31
31
  end
32
32
  end
data/lib/rss-motor.rb CHANGED
@@ -15,13 +15,23 @@ module Rss
15
15
  Rss::Proc.rss_hashr rss_data.join
16
16
  end
17
17
 
18
+ #Returned Array of Hashes, where the keys are given *filters*
19
+ #
20
+ #Example
21
+ # Rss::Motor.rss_grep 'http://example.com', ['item1', 'item2', 'item3']
22
+ # [
23
+ # {'item1' => [{'title' => '....'}, {'title' => '....'}, ...]},
24
+ # {'item2' => [{'title' => '....'}, {'title' => '....'}, ...]},
25
+ # {'item3' => [{'title' => '....'}, {'title' => '....'}, ...]}
26
+ # ]
27
+ #
18
28
  def self.rss_grep(rss_urls, filters)
19
- rss_items = []
29
+ rss_items = filters.flatten.map{|k| {k => []} }
20
30
  [rss_urls].flatten.each do |rss_url|
21
31
  rss = rss_items rss_url
22
32
  rss.each do |item|
23
33
  [filters].flatten.each do |filter|
24
- rss_items.push item if item_filter(item, filter)
34
+ rss_items.detect{|a| a.key?(filter)}[filter].push(item) if item_filter(item, filter)
25
35
  end
26
36
  end
27
37
  end
@@ -29,13 +39,13 @@ module Rss
29
39
  end
30
40
 
31
41
  def self.rss_grep_link(rss_urls, filters)
32
- rss_items = []
42
+ rss_items = filters.flatten.map{|k| {k => []} }
33
43
  [rss_urls].flatten.each do |rss_url|
34
44
  rss = rss_items rss_url
35
45
  rss.each do |item|
36
46
  link_body = Rss::WWW.http_requester item['link']
37
47
  [filters].flatten.each do |filter|
38
- rss_items.push item if
48
+ rss_items.detect{|a| a.key?(filter)}[filter].push(item) if
39
49
  item_filter(item, filter) or
40
50
  link_body.match(/#{filter}/)
41
51
  end
@@ -44,17 +54,11 @@ module Rss
44
54
  rss_items
45
55
  end
46
56
 
57
+
47
58
  def self.item_filter(item, filter)
48
59
  return false if item.empty? || filter.nil?
49
- return true if
50
- item['title'].match(/#{filter}/) or
51
- item['link'].match(/#{filter}/) or
52
- item['guid'].match(/#{filter}/) or
53
- item['description'].match(/#{filter}/) or
54
- item['date'].match(/#{filter}/) or
55
- item['author'].match(/#{filter}/) or
56
- item['enclosure'].match(/#{filter}/)
57
- return false
60
+ return !item.values.select{|v| v.match(/#{filter}/)}.empty?
61
+ false
58
62
  end
59
63
  end
60
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rss-motor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-09 00:00:00.000000000 Z
12
+ date: 2012-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: xml-motor
16
- requirement: &15595580 !ruby/object:Gem::Requirement
16
+ requirement: &23388720 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.1.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *15595580
24
+ version_requirements: *23388720
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: xml-motor
27
- requirement: &15611460 !ruby/object:Gem::Requirement
27
+ requirement: &23404580 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 0.1.4
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *15611460
35
+ version_requirements: *23404580
36
36
  description: ! 'boost up your RSS related applications with the motor available: https://github.com/abhishekkr/rubygem_rss_motor/blob/master/README'
37
37
  email:
38
38
  - abhikumar163@gmail.com