rss-motor 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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