ratom 0.3.3 → 0.3.4

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/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.3.4 2008-04-21
2
+
3
+ * Remove useless variable warning. (Sam Roberts)
4
+ * Support initialization of Atom::Source from Hash and block.
5
+ * Support initialization of Atom::Generator from Hash and block.
6
+
1
7
  == 0.3.3 2008-04-09
2
8
 
3
9
  * Better serialization of namespaced elements. ratom will now generate prefixes for namespaces and write them as
data/lib/atom/version.rb CHANGED
@@ -2,7 +2,7 @@ module Atom #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 3
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/atom.rb CHANGED
@@ -40,10 +40,6 @@ module Atom # :nodoc:
40
40
  @simple_extensions = {}
41
41
  end
42
42
 
43
- if @simple_extension_attributes.nil?
44
- @simple_extension_attributes = {}
45
- end
46
-
47
43
  key = "{#{ns},#{localname}}"
48
44
  (@simple_extensions[key] or @simple_extensions[key] = ValueProxy.new)
49
45
  end
@@ -65,16 +61,25 @@ module Atom # :nodoc:
65
61
  class Generator
66
62
  include Xml::Parseable
67
63
 
68
- attr_reader :name
64
+ attr_accessor :name
69
65
  attribute :uri, :version
70
66
 
71
67
  # Initialize a new Generator.
72
68
  #
73
69
  # +xml+:: An XML::Reader object.
74
70
  #
75
- def initialize(xml)
76
- @name = xml.read_string.strip
77
- parse(xml, :once => true)
71
+ def initialize(o = nil)
72
+ case o
73
+ when XML::Reader
74
+ @name = o.read_string.strip
75
+ parse(o, :once => true)
76
+ when Hash
77
+ o.each do |k, v|
78
+ self.send("#{k.to_s}=", v)
79
+ end
80
+ end
81
+
82
+ yield(self) if block_given?
78
83
  end
79
84
  end
80
85
 
@@ -257,7 +262,6 @@ module Atom # :nodoc:
257
262
 
258
263
  div = XML::Node.new('div')
259
264
  div['xmlns'] = XHTML
260
- div
261
265
 
262
266
  p = XML::Parser.string(to_s)
263
267
  content = p.parse.root.copy(true)
@@ -283,15 +287,24 @@ module Atom # :nodoc:
283
287
  elements :authors, :contributors, :class => Person
284
288
  elements :links
285
289
 
286
- def initialize(xml)
287
- unless current_node_is?(xml, 'source', NAMESPACE)
288
- raise ArgumentError, "Invalid node for atom:source - #{xml.name}(#{xml.namespace})"
289
- end
290
-
290
+ def initialize(o = nil)
291
291
  @authors, @contributors, @links = [], [], Links.new
292
+
293
+ case o
294
+ when XML::Reader
295
+ unless current_node_is?(o, 'source', NAMESPACE)
296
+ raise ArgumentError, "Invalid node for atom:source - #{o.name}(#{o.namespace})"
297
+ end
298
+
299
+ o.read
300
+ parse(o)
301
+ when Hash
302
+ o.each do |k, v|
303
+ self.send("#{k.to_s}=", v)
304
+ end
305
+ end
292
306
 
293
- xml.read
294
- parse(xml)
307
+ yield(self) if block_given?
295
308
  end
296
309
  end
297
310
 
data/spec/atom_spec.rb CHANGED
@@ -1133,4 +1133,46 @@ describe Atom do
1133
1133
  category.term.should == 'term'
1134
1134
  end
1135
1135
  end
1136
+
1137
+ describe Atom::Source do
1138
+ it "should create an empty source" do
1139
+ lambda { Atom::Source.new }.should_not raise_error
1140
+ end
1141
+
1142
+ it "should create from a hash" do
1143
+ source = Atom::Source.new(:title => 'title', :id => 'sourceid')
1144
+ source.title.should == 'title'
1145
+ source.id.should == 'sourceid'
1146
+ end
1147
+
1148
+ it "should create from a block" do
1149
+ source = Atom::Source.new do |source|
1150
+ source.title = 'title'
1151
+ source.id = 'sourceid'
1152
+ end
1153
+ source.title.should == 'title'
1154
+ source.id.should == 'sourceid'
1155
+ end
1156
+ end
1157
+
1158
+ describe Atom::Generator do
1159
+ it "should create an empty generator" do
1160
+ lambda { Atom::Generator.new }.should_not raise_error
1161
+ end
1162
+
1163
+ it "should create from a hash" do
1164
+ source = Atom::Generator.new(:name => 'generator', :uri => 'http://generator')
1165
+ source.name.should == 'generator'
1166
+ source.uri.should == 'http://generator'
1167
+ end
1168
+
1169
+ it "should create from a block" do
1170
+ source = Atom::Generator.new do |source|
1171
+ source.name = 'generator'
1172
+ source.uri = 'http://generator'
1173
+ end
1174
+ source.name.should == 'generator'
1175
+ source.uri.should == 'http://generator'
1176
+ end
1177
+ end
1136
1178
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peerworks
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-09 00:00:00 +09:30
12
+ date: 2008-04-21 00:00:00 +09:30
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  requirements: []
110
110
 
111
111
  rubyforge_project: ratom
112
- rubygems_version: 1.1.0
112
+ rubygems_version: 1.1.1
113
113
  signing_key:
114
114
  specification_version: 2
115
115
  summary: Atom Syndication and Publication API