rss-atom-feed_history 0.0.3.2 → 0.0.5
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.
- checksums.yaml +7 -0
- data/LICENSE +1 -1
- data/Rakefile +2 -0
- data/lib/rss/atom/feed_history/atom.rb +1 -0
- data/lib/rss/atom/feed_history/version.rb +1 -1
- data/lib/rss/atom/feed_history.rb +9 -1
- data/lib/rss/maker/atom/feed_history.rb +23 -0
- data/rss-atom-feed_history.gemspec +4 -1
- data/test/test_feed_history.rb +60 -0
- metadata +86 -47
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 16fccd3a7d3154bea8b9dd78ef2c87b45ce29c1784bb9f4e479e59ff1e60624d
|
4
|
+
data.tar.gz: a73e49c6b5cae8e58fbffd90f364aebbbe4966bac4cd82d20156fb6641e6b10d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 19ad69e1854a03780e428ddb542bb764e3c4652706c9873714b2797114ab5c3c6c6e2ac4ff3633753081fe15f8c29882648cefa75a9b92bf7953ea9cad8303b1
|
7
|
+
data.tar.gz: 1a74dd224247b6c945655461278d16df3f32d6bc4e6cbef526550658827f756f02c305e9f60cad4a835935f226f5532bb1e117c81c646763b06e966e2fcd0d34
|
data/LICENSE
CHANGED
data/Rakefile
CHANGED
@@ -17,7 +17,15 @@ module RSS
|
|
17
17
|
def included(klass)
|
18
18
|
ELEMENTS.each do |name|
|
19
19
|
full_name = "#{PREFIX}_#{name}"
|
20
|
-
klass.
|
20
|
+
klass.install_must_call_validator PREFIX, URI
|
21
|
+
klass.install_have_child_element name, URI, '?', full_name
|
22
|
+
# This is a dirty redifinition. Should define writer type `:feed_history` and pass it to `install_have_child_element`?
|
23
|
+
klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
|
24
|
+
def #{full_name}_element(need_convert=true, indent='')
|
25
|
+
return '' unless @#{full_name}
|
26
|
+
Atom::FeedHistory::#{Utils.to_class_name(name)}.new.to_s(need_convert, indent)
|
27
|
+
end
|
28
|
+
EOC
|
21
29
|
end
|
22
30
|
end
|
23
31
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rss/atom/feed_history'
|
2
|
+
require 'rss/maker'
|
3
|
+
|
4
|
+
module RSS
|
5
|
+
module Maker
|
6
|
+
module Atom
|
7
|
+
module FeedHistory
|
8
|
+
class << self
|
9
|
+
def append_features(klass)
|
10
|
+
super
|
11
|
+
|
12
|
+
::RSS::Atom::FeedHistory::ELEMENTS.each do |name|
|
13
|
+
full_name = "#{::RSS::Atom::FeedHistory::PREFIX}_#{name}"
|
14
|
+
klass.def_other_element full_name
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class ChannelBase; include Atom::FeedHistory; end
|
22
|
+
end
|
23
|
+
end
|
@@ -15,7 +15,10 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = RSS::Atom::FeedHistory::VERSION
|
17
17
|
|
18
|
-
gem.
|
18
|
+
gem.add_runtime_dependency 'rss'
|
19
|
+
|
20
|
+
gem.add_development_dependency 'rake'
|
21
|
+
gem.add_development_dependency 'test-unit-full'
|
19
22
|
gem.add_development_dependency 'simplecov'
|
20
23
|
gem.add_development_dependency 'yard'
|
21
24
|
gem.add_development_dependency 'redcarpet'
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'test/unit/full'
|
2
|
+
require 'rexml/document'
|
3
|
+
require 'rss/maker/atom/feed_history'
|
4
|
+
|
5
|
+
class TestFeedHistory < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@uri = 'http://purl.org/syndication/history/1.0'
|
8
|
+
end
|
9
|
+
|
10
|
+
class TestMaker < TestFeedHistory
|
11
|
+
def test_namespace_existence
|
12
|
+
doc = REXML::Document.new(make_feed.to_s)
|
13
|
+
assert_include doc.root.namespaces.values, @uri
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_set_fh_element
|
17
|
+
feed = make_feed {|maker| maker.channel.fh_complete = true}
|
18
|
+
doc = REXML::Document.new(feed.to_s)
|
19
|
+
fh_elements = REXML::XPath.match(doc, "//*[namespace-uri()='#{@uri}']")
|
20
|
+
assert_not_empty fh_elements
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_set_complete
|
24
|
+
complete_feed = make_feed {|maker| maker.channel.fh_complete = true}
|
25
|
+
doc = REXML::Document.new(complete_feed.to_s)
|
26
|
+
complete_element = REXML::XPath.first(doc, "//*[namespace-uri()='#{@uri}'][local-name()='complete']")
|
27
|
+
assert_equal '<fh:complete/>', complete_element.to_s
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_set_archive
|
31
|
+
archive_feed = make_feed {|maker| maker.channel.fh_archive = true}
|
32
|
+
doc = REXML::Document.new(archive_feed.to_s)
|
33
|
+
archive_element = REXML::XPath.first(doc, "//*[namespace-uri()='#{@uri}'][local-name()='archive']")
|
34
|
+
assert_equal '<fh:archive/>', archive_element.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_unset_complete
|
38
|
+
non_complete_feed = make_feed {|maker|
|
39
|
+
maker.channel.fh_complete = false
|
40
|
+
maker.channel.fh_archive = true
|
41
|
+
}
|
42
|
+
doc = REXML::Document.new(non_complete_feed.to_s)
|
43
|
+
complete_element = REXML::XPath.first(doc, "//*[namespace-uri()='#{@uri}'][local-name()='complete']")
|
44
|
+
assert_nil complete_element
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def make_feed
|
50
|
+
RSS::Maker.make('atom') do |maker|
|
51
|
+
%w[id author title].each do |property|
|
52
|
+
maker.channel.send "#{property}=", property
|
53
|
+
end
|
54
|
+
maker.channel.updated = Time.now
|
55
|
+
|
56
|
+
yield maker if block_given?
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
metadata
CHANGED
@@ -1,82 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rss-atom-feed_history
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- KITAITI Makoto
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2024-10-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement:
|
17
|
-
none: false
|
14
|
+
name: rss
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
20
32
|
- !ruby/object:Gem::Version
|
21
33
|
version: '0'
|
22
34
|
type: :development
|
23
35
|
prerelease: false
|
24
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: test-unit-full
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
25
55
|
- !ruby/object:Gem::Dependency
|
26
56
|
name: simplecov
|
27
|
-
requirement:
|
28
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
29
58
|
requirements:
|
30
|
-
- -
|
59
|
+
- - ">="
|
31
60
|
- !ruby/object:Gem::Version
|
32
61
|
version: '0'
|
33
62
|
type: :development
|
34
63
|
prerelease: false
|
35
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
36
69
|
- !ruby/object:Gem::Dependency
|
37
70
|
name: yard
|
38
|
-
requirement:
|
39
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
40
72
|
requirements:
|
41
|
-
- -
|
73
|
+
- - ">="
|
42
74
|
- !ruby/object:Gem::Version
|
43
75
|
version: '0'
|
44
76
|
type: :development
|
45
77
|
prerelease: false
|
46
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
47
83
|
- !ruby/object:Gem::Dependency
|
48
84
|
name: redcarpet
|
49
|
-
requirement:
|
50
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
51
86
|
requirements:
|
52
|
-
- -
|
87
|
+
- - ">="
|
53
88
|
- !ruby/object:Gem::Version
|
54
89
|
version: '0'
|
55
90
|
type: :development
|
56
91
|
prerelease: false
|
57
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
58
97
|
- !ruby/object:Gem::Dependency
|
59
98
|
name: pry
|
60
|
-
requirement:
|
61
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
62
100
|
requirements:
|
63
|
-
- -
|
101
|
+
- - ">="
|
64
102
|
- !ruby/object:Gem::Version
|
65
103
|
version: '0'
|
66
104
|
type: :development
|
67
105
|
prerelease: false
|
68
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: pry-doc
|
71
|
-
requirement:
|
72
|
-
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
73
114
|
requirements:
|
74
|
-
- -
|
115
|
+
- - ">="
|
75
116
|
- !ruby/object:Gem::Version
|
76
117
|
version: '0'
|
77
118
|
type: :development
|
78
119
|
prerelease: false
|
79
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
80
125
|
description: Enables standard bundled RSS library parse and make feeds including "Feed
|
81
126
|
Paging and Archiving"(RFC 5005).
|
82
127
|
email:
|
@@ -85,7 +130,7 @@ executables: []
|
|
85
130
|
extensions: []
|
86
131
|
extra_rdoc_files: []
|
87
132
|
files:
|
88
|
-
- .gitignore
|
133
|
+
- ".gitignore"
|
89
134
|
- Gemfile
|
90
135
|
- LICENSE
|
91
136
|
- README.md
|
@@ -93,37 +138,31 @@ files:
|
|
93
138
|
- lib/rss/atom/feed_history.rb
|
94
139
|
- lib/rss/atom/feed_history/atom.rb
|
95
140
|
- lib/rss/atom/feed_history/version.rb
|
141
|
+
- lib/rss/maker/atom/feed_history.rb
|
96
142
|
- rss-atom-feed_history.gemspec
|
97
143
|
- setup.rb
|
144
|
+
- test/test_feed_history.rb
|
98
145
|
homepage: http://rss-ext.rubyforge.org/
|
99
146
|
licenses: []
|
100
|
-
|
147
|
+
metadata: {}
|
148
|
+
post_install_message:
|
101
149
|
rdoc_options: []
|
102
150
|
require_paths:
|
103
151
|
- lib
|
104
152
|
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
153
|
requirements:
|
107
|
-
- -
|
154
|
+
- - ">="
|
108
155
|
- !ruby/object:Gem::Version
|
109
156
|
version: '0'
|
110
|
-
segments:
|
111
|
-
- 0
|
112
|
-
hash: -3739305800348400313
|
113
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
158
|
requirements:
|
116
|
-
- -
|
159
|
+
- - ">="
|
117
160
|
- !ruby/object:Gem::Version
|
118
161
|
version: '0'
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
hash: -3739305800348400313
|
122
162
|
requirements: []
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
specification_version: 3
|
163
|
+
rubygems_version: 3.5.18
|
164
|
+
signing_key:
|
165
|
+
specification_version: 4
|
127
166
|
summary: Feed Paging and Archiving support for standard bundled RSS library
|
128
|
-
test_files:
|
129
|
-
|
167
|
+
test_files:
|
168
|
+
- test/test_feed_history.rb
|