rss-motor 0.0.9 → 0.1.0
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 +3 -0
- data/README +5 -0
- data/lib/rss-motor.rb +9 -2
- data/lib/rss-motor/rss-proc.rb +9 -5
- data/lib/rss-motor/version.rb +1 -1
- data/rss-motor.gemspec +2 -2
- metadata +8 -8
data/CHANGELOG
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
CHANGE-LOG
|
|
9
9
|
=====================================================================
|
|
10
10
|
=====================================================================
|
|
11
|
+
Changes from v0.0.9 to v0.1.0
|
|
12
|
+
[+] updating Rss::Motor.items to fetch also custom nodes or node-attribs
|
|
13
|
+
=====================================================================
|
|
11
14
|
Changes from v0.0.8 to v0.0.9
|
|
12
15
|
[+] updated to xml-motor v0.1.6 gaining enclosure value for URL
|
|
13
16
|
=====================================================================
|
data/README
CHANGED
|
@@ -26,6 +26,11 @@ An easy to use RSS library to get kickstarted with using RSS Feeds.
|
|
|
26
26
|
puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss'
|
|
27
27
|
Output: [{'title1' => '....', ...}, {'title2' => '....', ...}, ...]
|
|
28
28
|
|
|
29
|
+
[+] passing a single RSS Link and fetching array of all items, with hash of nodes
|
|
30
|
+
puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss', ['comments'], {'media:content' => 'url'}
|
|
31
|
+
Output: [{'title1' => '....', ...}, {'title2' => '....', ...}, ...]
|
|
32
|
+
This will fetch hash with set of node values per rss item, including node value for 'comment'; value for 'url' attribute for node 'media:content'
|
|
33
|
+
|
|
29
34
|
[+] filtering items from multiple rss-links having any from set of given keywords
|
|
30
35
|
#case in-sensitive filtering
|
|
31
36
|
puts Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']
|
data/lib/rss-motor.rb
CHANGED
|
@@ -9,10 +9,14 @@ end
|
|
|
9
9
|
module Rss
|
|
10
10
|
module Motor
|
|
11
11
|
|
|
12
|
-
def self.rss_items(rss_url)
|
|
12
|
+
def self.rss_items(rss_url, more_nodes=[], more_node_keys={})
|
|
13
13
|
rss_data = Rss::WWW.rss_channel rss_url
|
|
14
14
|
return [{}] if rss_data.empty?
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
xml_splitd = XMLMotor.splitter rss_data.join
|
|
17
|
+
xml_tags = XMLMotor.indexify xml_splitd
|
|
18
|
+
rss_items = XMLMotor.xmldata xml_splitd, xml_tags, 'item'
|
|
19
|
+
rss_hash = Rss::Proc.rss_hashr rss_items, more_nodes, more_node_keys
|
|
16
20
|
end
|
|
17
21
|
|
|
18
22
|
#Returned Array of Hashes, where the keys are given *filters*
|
|
@@ -62,6 +66,9 @@ module Rss
|
|
|
62
66
|
end
|
|
63
67
|
end
|
|
64
68
|
|
|
69
|
+
###USAGE EXAMPLES
|
|
65
70
|
#puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss'
|
|
66
71
|
#puts "*"*100, "#{Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']}"
|
|
67
72
|
#puts "*"*100, "#{Rss::Motor.rss_grep_link 'http://news.ycombinator.com/rss', ['ruby', 'android']}"
|
|
73
|
+
#puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss', ['comments']
|
|
74
|
+
#puts Rss::Motor.rss_items 'http://feeds.feedburner.com/RubyRogues?format=xml', ['comments'], {'media:content' => 'url'}
|
data/lib/rss-motor/rss-proc.rb
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
module Rss
|
|
2
2
|
module Proc
|
|
3
3
|
|
|
4
|
-
def self.rss_hashr(
|
|
5
|
-
splitd = XMLMotor.splitter rss_data
|
|
6
|
-
tags = XMLMotor.indexify splitd
|
|
7
|
-
items = XMLMotor.xmldata splitd, tags, 'item'
|
|
8
|
-
|
|
4
|
+
def self.rss_hashr(items, more_nodes, more_node_keys)
|
|
9
5
|
rss_hash = []
|
|
10
6
|
items.each_with_index do |item, idx|
|
|
11
7
|
item_splitd = XMLMotor.splitter item
|
|
@@ -26,6 +22,14 @@ module Rss
|
|
|
26
22
|
'author' => author.join,
|
|
27
23
|
'enclosure' => enclosure.join
|
|
28
24
|
}
|
|
25
|
+
|
|
26
|
+
[more_nodes].flatten.each do |node|
|
|
27
|
+
rss_hash[idx][node] = XMLMotor.xmldata(item_splitd, item_tags, node).join
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
more_node_keys.each_pair do |node, key|
|
|
31
|
+
rss_hash[idx][node] = XMLMotor.xmlattrib(key, item_splitd, item_tags, node).join
|
|
32
|
+
end
|
|
29
33
|
end
|
|
30
34
|
return rss_hash
|
|
31
35
|
end
|
data/lib/rss-motor/version.rb
CHANGED
data/rss-motor.gemspec
CHANGED
|
@@ -18,6 +18,6 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
19
19
|
s.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
-
s.add_runtime_dependency 'xml-motor', '>= 0.1.
|
|
22
|
-
s.add_development_dependency 'xml-motor', '>= 0.1.
|
|
21
|
+
s.add_runtime_dependency 'xml-motor', '>= 0.1.6'
|
|
22
|
+
s.add_development_dependency 'xml-motor', '>= 0.1.6'
|
|
23
23
|
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
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,30 +9,30 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-08-
|
|
12
|
+
date: 2012-08-22 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: xml-motor
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &7882920 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.1.
|
|
21
|
+
version: 0.1.6
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *7882920
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: xml-motor
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &7882420 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.1.
|
|
32
|
+
version: 0.1.6
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *7882420
|
|
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
|