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 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
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 KITAITI Makoto
1
+ Copyright (c) 2012, 2013 KITAITI Makoto
2
2
 
3
3
  MIT License
4
4
 
data/Rakefile CHANGED
@@ -3,5 +3,7 @@ require "bundler/gem_tasks"
3
3
  require 'rake/testtask'
4
4
  require 'yard'
5
5
 
6
+ task :default => :test
7
+
6
8
  Rake::TestTask.new
7
9
  YARD::Rake::YardocTask.new
@@ -1,6 +1,7 @@
1
1
  module RSS
2
2
  module Atom
3
3
  class Feed
4
+ install_ns FeedHistory::PREFIX, FeedHistory::URI
4
5
  include FeedHistory
5
6
  end
6
7
  end
@@ -1,7 +1,7 @@
1
1
  module RSS
2
2
  module Atom
3
3
  module FeedHistory
4
- VERSION = "0.0.3.2"
4
+ VERSION = "0.0.5"
5
5
  end
6
6
  end
7
7
  end
@@ -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.install_have_child_element(name, URI, '?', full_name)
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.add_development_dependency 'test-unit'
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.3.2
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: 2012-10-07 00:00:00.000000000Z
11
+ date: 2024-10-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: test-unit
16
- requirement: &17876580 !ruby/object:Gem::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: *17876580
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: &17875300 !ruby/object:Gem::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: *17875300
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: &17873720 !ruby/object:Gem::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: *17873720
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: &17833740 !ruby/object:Gem::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: *17833740
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: &17833100 !ruby/object:Gem::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: *17833100
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: &17831960 !ruby/object:Gem::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: *17831960
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
- post_install_message:
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
- rubyforge_project:
124
- rubygems_version: 1.8.8
125
- signing_key:
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
- has_rdoc:
167
+ test_files:
168
+ - test/test_feed_history.rb