xommelier 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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