xommelier 0.0.1 → 0.0.2

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.
Files changed (40) hide show
  1. data/.gitignore +1 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +6 -0
  4. data/README.md +19 -0
  5. data/Rakefile +20 -0
  6. data/Termfile +38 -0
  7. data/console +7 -0
  8. data/examples/atom.rb +4 -4
  9. data/lib/xommelier/atom/category.rb +1 -1
  10. data/lib/xommelier/atom/entry.rb +1 -1
  11. data/lib/xommelier/atom/generator.rb +1 -1
  12. data/lib/xommelier/atom/link.rb +1 -1
  13. data/lib/xommelier/atom/person.rb +1 -1
  14. data/lib/xommelier/atom/thread.rb +38 -0
  15. data/lib/xommelier/atom.rb +4 -20
  16. data/lib/xommelier/core_ext/{integer.rb → numeric.rb} +1 -1
  17. data/lib/xommelier/core_ext/symbol.rb +9 -0
  18. data/lib/xommelier/core_ext/uri.rb +11 -5
  19. data/lib/xommelier/core_ext.rb +2 -1
  20. data/lib/xommelier/version.rb +1 -1
  21. data/lib/xommelier/xml/class_methods.rb +1 -0
  22. data/lib/xommelier/xml/element/serialization.rb +148 -0
  23. data/lib/xommelier/xml/element/structure.rb +236 -0
  24. data/lib/xommelier/xml/element.rb +23 -93
  25. data/lib/xommelier/xml/namespace.rb +0 -1
  26. data/lib/xommelier/xml.rb +1 -2
  27. data/spec/fixtures/feed.atom +39 -0
  28. data/spec/fixtures/simple_feed.atom +17 -0
  29. data/spec/lib/xommelier/atom/entry_spec.rb +18 -0
  30. data/spec/lib/xommelier/xml/element/serialization_spec.rb +36 -0
  31. data/spec/lib/xommelier/xml/element/structure_spec.rb +27 -0
  32. data/spec/lib/xommelier/xml/element_spec.rb +21 -38
  33. data/spec/lib/xommelier/xml_spec.rb +2 -4
  34. data/spec/lib/xommelier_spec.rb +1 -1
  35. data/spec/namespaced_module.rb +0 -3
  36. data/spec/spec_helper.rb +5 -3
  37. data/xommelier.gemspec +2 -2
  38. metadata +62 -49
  39. data/lib/xommelier/xml/attribute.rb +0 -8
  40. data/lib/xommelier/xml/element/dsl.rb +0 -51
@@ -3,9 +3,6 @@ module NamespacedModule
3
3
 
4
4
  xmlns 'http://example.org/'
5
5
 
6
- class EmptyRoot < Xommelier::Xml::Element
7
- end
8
-
9
6
  class RootWithText < Xommelier::Xml::Element
10
7
  text
11
8
  end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,12 @@
1
- root = File.expand_path('../..', __FILE__)
2
- $:<< File.join(root, 'lib')
1
+ SPEC_ROOT = File.expand_path('../..', __FILE__)
2
+ require 'bundler/setup'
3
3
  require 'rspec'
4
4
  require 'xommelier'
5
5
  require 'namespaced_module'
6
6
 
7
- Dir[File.join(root, 'spec/support/**/*.rb')].each {|f| require f}
7
+ Dir[File.join(SPEC_ROOT, 'spec/support/**/*.rb')].each {|f| require f}
8
+
9
+ ATOM_XMLNS = 'http://www.w3.org/2005/Atom'
8
10
 
9
11
  RSpec.configure do |config|
10
12
  config.mock_with :rspec
data/xommelier.gemspec CHANGED
@@ -19,6 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_dependency 'nokogiri', '~> 1.5.0'
22
- s.add_dependency 'activesupport', '~> 3.0.0'
23
- s.add_dependency 'activemodel', '~> 3.0.0'
22
+ s.add_dependency 'activesupport', '~> 3.2.0'
23
+ s.add_dependency 'activemodel', '~> 3.2.0'
24
24
  end
metadata CHANGED
@@ -1,65 +1,64 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: xommelier
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Alexander Semyonov
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-08-15 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-03-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: nokogiri
17
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70203616002720 !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
18
+ requirements:
20
19
  - - ~>
21
- - !ruby/object:Gem::Version
20
+ - !ruby/object:Gem::Version
22
21
  version: 1.5.0
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70203616002720
25
+ - !ruby/object:Gem::Dependency
27
26
  name: activesupport
28
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &70203615999600 !ruby/object:Gem::Requirement
29
28
  none: false
30
- requirements:
29
+ requirements:
31
30
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 3.0.0
31
+ - !ruby/object:Gem::Version
32
+ version: 3.2.0
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *70203615999600
36
+ - !ruby/object:Gem::Dependency
38
37
  name: activemodel
39
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &70203615998660 !ruby/object:Gem::Requirement
40
39
  none: false
41
- requirements:
40
+ requirements:
42
41
  - - ~>
43
- - !ruby/object:Gem::Version
44
- version: 3.0.0
42
+ - !ruby/object:Gem::Version
43
+ version: 3.2.0
45
44
  type: :runtime
46
45
  prerelease: false
47
- version_requirements: *id003
46
+ version_requirements: *70203615998660
48
47
  description: XML-Object Mapper with many built-in XML formats supported
49
- email:
48
+ email:
50
49
  - al@semyonov.us
51
50
  executables: []
52
-
53
51
  extensions: []
54
-
55
52
  extra_rdoc_files: []
56
-
57
- files:
53
+ files:
58
54
  - .gitignore
59
55
  - .rspec
60
56
  - Gemfile
61
57
  - Guardfile
58
+ - README.md
62
59
  - Rakefile
60
+ - Termfile
61
+ - console
63
62
  - examples/atom.rb
64
63
  - examples/xml.rb
65
64
  - lib/xommelier.rb
@@ -71,22 +70,29 @@ files:
71
70
  - lib/xommelier/atom/link.rb
72
71
  - lib/xommelier/atom/person.rb
73
72
  - lib/xommelier/atom/source.rb
73
+ - lib/xommelier/atom/thread.rb
74
74
  - lib/xommelier/collection.rb
75
75
  - lib/xommelier/core_ext.rb
76
76
  - lib/xommelier/core_ext/boolean.rb
77
77
  - lib/xommelier/core_ext/date.rb
78
78
  - lib/xommelier/core_ext/float.rb
79
- - lib/xommelier/core_ext/integer.rb
79
+ - lib/xommelier/core_ext/numeric.rb
80
80
  - lib/xommelier/core_ext/string.rb
81
+ - lib/xommelier/core_ext/symbol.rb
81
82
  - lib/xommelier/core_ext/time.rb
82
83
  - lib/xommelier/core_ext/uri.rb
83
84
  - lib/xommelier/version.rb
84
85
  - lib/xommelier/xml.rb
85
- - lib/xommelier/xml/attribute.rb
86
86
  - lib/xommelier/xml/class_methods.rb
87
87
  - lib/xommelier/xml/element.rb
88
- - lib/xommelier/xml/element/dsl.rb
88
+ - lib/xommelier/xml/element/serialization.rb
89
+ - lib/xommelier/xml/element/structure.rb
89
90
  - lib/xommelier/xml/namespace.rb
91
+ - spec/fixtures/feed.atom
92
+ - spec/fixtures/simple_feed.atom
93
+ - spec/lib/xommelier/atom/entry_spec.rb
94
+ - spec/lib/xommelier/xml/element/serialization_spec.rb
95
+ - spec/lib/xommelier/xml/element/structure_spec.rb
90
96
  - spec/lib/xommelier/xml/element_spec.rb
91
97
  - spec/lib/xommelier/xml_spec.rb
92
98
  - spec/lib/xommelier_spec.rb
@@ -95,30 +101,37 @@ files:
95
101
  - xommelier.gemspec
96
102
  homepage: http://github.com/alsemyonov/xommelier
97
103
  licenses: []
98
-
99
104
  post_install_message:
100
105
  rdoc_options: []
101
-
102
- require_paths:
106
+ require_paths:
103
107
  - lib
104
- required_ruby_version: !ruby/object:Gem::Requirement
108
+ required_ruby_version: !ruby/object:Gem::Requirement
105
109
  none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
115
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: "0"
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
116
120
  requirements: []
117
-
118
121
  rubyforge_project: xommelier
119
- rubygems_version: 1.8.5
122
+ rubygems_version: 1.8.11
120
123
  signing_key:
121
124
  specification_version: 3
122
125
  summary: XML-Object Mapper
123
- test_files: []
124
-
126
+ test_files:
127
+ - spec/fixtures/feed.atom
128
+ - spec/fixtures/simple_feed.atom
129
+ - spec/lib/xommelier/atom/entry_spec.rb
130
+ - spec/lib/xommelier/xml/element/serialization_spec.rb
131
+ - spec/lib/xommelier/xml/element/structure_spec.rb
132
+ - spec/lib/xommelier/xml/element_spec.rb
133
+ - spec/lib/xommelier/xml_spec.rb
134
+ - spec/lib/xommelier_spec.rb
135
+ - spec/namespaced_module.rb
136
+ - spec/spec_helper.rb
137
+ has_rdoc:
@@ -1,8 +0,0 @@
1
- require 'xommelier/xml'
2
-
3
- module Xommelier
4
- module Xml
5
- class Attribute
6
- end
7
- end
8
- end
@@ -1,51 +0,0 @@
1
- require 'xommelier/xml/element'
2
-
3
- module Xommelier
4
- module Xml
5
- class Element
6
- module DSL
7
- def element(name, options = {})
8
- self.elements[name] = DEFAULT_ELEMENT_OPTIONS.merge(options)
9
- define_element_accessors(name)
10
- end
11
-
12
- def attribute(name, options = {})
13
- self.attributes[name] = DEFAULT_OPTIONS.merge(options)
14
- define_attribute_accessors(name)
15
- end
16
-
17
- def text(options = {})
18
- define_text_accessors
19
- end
20
-
21
- private
22
-
23
- def define_text_accessors
24
- define_method(:text) { @text ||= '' }
25
- define_method(:text=) { |value| @text = value }
26
- end
27
-
28
- def define_element_accessors(name)
29
- case elements[name][:count]
30
- when :one, :may
31
- define_method(name) { @elements[name] }
32
- define_method("#{name}=") { |value| @elements[name] = value }
33
- when :many
34
- define_method(name) {
35
- @elements[name] ||= []
36
- }
37
- define_method("#{name}=") do |value|
38
- @elements[name] ||= []
39
- @elements[name] += Array(value)
40
- end
41
- end
42
- end
43
-
44
- def define_attribute_accessors(name)
45
- define_method(name) { @attributes[name] }
46
- define_method("#{name}=") { |value| @attributes[name] = value }
47
- end
48
- end
49
- end
50
- end
51
- end