saxomattic 0.0.3 → 0.0.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.
@@ -8,7 +8,8 @@ require "active_support/core_ext/string/conversions"
8
8
  module Saxomattic
9
9
  ACTIVE_ATTR_ATTRIBUTES = [
10
10
  :default,
11
- :type
11
+ :type,
12
+ :typecaster
12
13
  ].freeze
13
14
 
14
15
  SAX_MACHINE_ATTRIBUTES = [
@@ -23,7 +24,7 @@ module Saxomattic
23
24
  klass.extend(HookManagementMethods)
24
25
  klass.__send__(:include, ::SAXMachine)
25
26
  klass._capture_sax_machine_methods(klass)
26
- # Keep these in this order as the initialize call in
27
+ # Keep these in this order as the initialize call in
27
28
  # sax-machine doesn't `super` so we need it to be last in
28
29
  klass.__send__(:include, ::ActiveAttr::Model)
29
30
  klass._capture_active_attr_methods(klass)
@@ -1,3 +1,3 @@
1
1
  module Saxomattic
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -21,8 +21,9 @@ Gem::Specification.new do |gem|
21
21
  gem.add_dependency "activesupport"
22
22
  gem.add_dependency "sax-machine"
23
23
 
24
+ gem.add_development_dependency "nokogiri", ">= 1.6"
24
25
  gem.add_development_dependency "pry"
25
26
  gem.add_development_dependency "rake"
26
- gem.add_development_dependency "rspec"
27
+ gem.add_development_dependency "rspec", ">= 3.4"
27
28
  gem.add_development_dependency "simplecov"
28
29
  end
@@ -27,7 +27,7 @@ class SaxTesterSomething
27
27
 
28
28
  attribute :baz
29
29
  attribute :foo, :type => Integer
30
- attribute :iso_8701, :type => Date
30
+ attribute :iso_8701, :typecaster => ActiveAttr::Typecasting::DateTypecaster.new
31
31
  attribute :date, :type => Date
32
32
  attribute :datetime, :type => DateTime
33
33
  attribute :embedded, :elements => true, :class => SaxTesterEmbedded, :default => []
@@ -36,7 +36,7 @@ class SaxTesterSomething
36
36
  end
37
37
 
38
38
  describe ::Saxomattic do
39
-
39
+ let(:iso_8701) { "2013-01-13" }
40
40
  let(:embedded_message) { "HERE!" }
41
41
  let(:embedception_type) { "TYPE" }
42
42
  let(:embedception_value) { "VALUE" }
@@ -46,7 +46,7 @@ describe ::Saxomattic do
46
46
  <<-XML
47
47
  <test>
48
48
  <baz>#{baz}</baz>
49
- <iso_8701>2013-01-13</iso_8701>
49
+ <iso_8701>#{iso_8701}</iso_8701>
50
50
  <datetime>#{DateTime.now}</datetime>
51
51
  <embedded>
52
52
  <foo>2</foo>
@@ -71,39 +71,44 @@ describe ::Saxomattic do
71
71
  subject { SaxTesterSomething.parse(xml) }
72
72
 
73
73
  it "extracts elements when declared as attribute" do
74
- subject.baz.should eq(baz)
74
+ expect(subject.baz).to eq(baz)
75
75
  end
76
76
 
77
77
  context "TypeCasting" do
78
78
  it "typecasts integers when declared with type => Integer" do
79
- subject.foo.should eq(foo)
79
+ expect(subject.foo).to eq(foo)
80
80
  end
81
81
 
82
82
  it "typecasts Dates when declared with type => Date" do
83
- subject.date.should be_a(Date)
84
- subject.date.should eq(Date.today)
83
+ expect(subject.date).to be_a(Date)
84
+ expect(subject.date).to eq(Date.today)
85
+ end
86
+
87
+ it "typecasts Dates when declared with typecaster => ActiveAttr::Typecasting::DateTypecaster" do
88
+ expect(subject.iso_8701).to be_a(Date)
89
+ expect(subject.iso_8701).to eq(iso_8701.to_date)
85
90
  end
86
91
 
87
92
  it "embedded" do
88
- subject.embedded.should be_a(Array)
89
- subject.embedded.first.embed.should eq(embedded_message)
93
+ expect(subject.embedded).to be_a(Array)
94
+ expect(subject.embedded.first.embed).to eq(embedded_message)
90
95
  end
91
96
 
92
97
  it "typecasts embedded fields" do
93
- subject.embedded.first.foo.should eq(foo)
98
+ expect(subject.embedded.first.foo).to eq(foo)
94
99
  end
95
100
 
96
101
  it "embeds values further" do
97
- subject.embedded.first.embedception?.should be_true
98
- subject.embedded.first.embedception.type.should eq(embedception_type)
99
- subject.embedded.first.embedception.value.should eq(embedception_value)
100
- subject.embedded.first.embedception.not_even_used?.should be_false
102
+ expect(subject.embedded.first.embedception?).to be true
103
+ expect(subject.embedded.first.embedception.type).to eq(embedception_type)
104
+ expect(subject.embedded.first.embedception.value).to eq(embedception_value)
105
+ expect(subject.embedded.first.embedception.not_even_used?).to be false
101
106
  end
102
107
 
103
108
  it "extracts multiple children from a parent element" do
104
- subject.children.size.should eq 2
105
- subject.children.first.name.should eq "John"
106
- subject.children.last.name.should eq "Paul"
109
+ expect(subject.children.size).to eq 2
110
+ expect(subject.children.first.name).to eq "John"
111
+ expect(subject.children.last.name).to eq "Paul"
107
112
  end
108
113
  end
109
114
 
metadata CHANGED
@@ -1,114 +1,145 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saxomattic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Brandon Dewitt
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-10-25 00:00:00.000000000 Z
12
+ date: 2016-02-14 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: active_attr
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: activesupport
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: sax-machine
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: nokogiri
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '1.6'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '1.6'
55
78
  - !ruby/object:Gem::Dependency
56
79
  name: pry
57
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
58
82
  requirements:
59
- - - '>='
83
+ - - ! '>='
60
84
  - !ruby/object:Gem::Version
61
85
  version: '0'
62
86
  type: :development
63
87
  prerelease: false
64
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
65
90
  requirements:
66
- - - '>='
91
+ - - ! '>='
67
92
  - !ruby/object:Gem::Version
68
93
  version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rake
71
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
72
98
  requirements:
73
- - - '>='
99
+ - - ! '>='
74
100
  - !ruby/object:Gem::Version
75
101
  version: '0'
76
102
  type: :development
77
103
  prerelease: false
78
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
79
106
  requirements:
80
- - - '>='
107
+ - - ! '>='
81
108
  - !ruby/object:Gem::Version
82
109
  version: '0'
83
110
  - !ruby/object:Gem::Dependency
84
111
  name: rspec
85
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
86
114
  requirements:
87
- - - '>='
115
+ - - ! '>='
88
116
  - !ruby/object:Gem::Version
89
- version: '0'
117
+ version: '3.4'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
93
122
  requirements:
94
- - - '>='
123
+ - - ! '>='
95
124
  - !ruby/object:Gem::Version
96
- version: '0'
125
+ version: '3.4'
97
126
  - !ruby/object:Gem::Dependency
98
127
  name: simplecov
99
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
100
130
  requirements:
101
- - - '>='
131
+ - - ! '>='
102
132
  - !ruby/object:Gem::Version
103
133
  version: '0'
104
134
  type: :development
105
135
  prerelease: false
106
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
107
138
  requirements:
108
- - - '>='
139
+ - - ! '>='
109
140
  - !ruby/object:Gem::Version
110
141
  version: '0'
111
- description: ' A gem to combine all the wonderful that is sax-machine with the magic
142
+ description: ! ' A gem to combine all the wonderful that is sax-machine with the magic
112
143
  that is active_attr '
113
144
  email:
114
145
  - brandonsdewitt+saxomattic@gmail.com
@@ -128,26 +159,33 @@ files:
128
159
  - spec/spec_helper.rb
129
160
  homepage: https://github.com/abrandoned/saxomattic.git
130
161
  licenses: []
131
- metadata: {}
132
162
  post_install_message:
133
163
  rdoc_options: []
134
164
  require_paths:
135
165
  - lib
136
166
  required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
137
168
  requirements:
138
- - - '>='
169
+ - - ! '>='
139
170
  - !ruby/object:Gem::Version
140
171
  version: '0'
172
+ segments:
173
+ - 0
174
+ hash: -3127210426165399770
141
175
  required_rubygems_version: !ruby/object:Gem::Requirement
176
+ none: false
142
177
  requirements:
143
- - - '>='
178
+ - - ! '>='
144
179
  - !ruby/object:Gem::Version
145
180
  version: '0'
181
+ segments:
182
+ - 0
183
+ hash: -3127210426165399770
146
184
  requirements: []
147
185
  rubyforge_project:
148
- rubygems_version: 2.0.3
186
+ rubygems_version: 1.8.24
149
187
  signing_key:
150
- specification_version: 4
188
+ specification_version: 3
151
189
  summary: By including a module "Saxomattic" you can declare xml structured documents
152
190
  with active_attr goodies
153
191
  test_files:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: b12ac5bd1693fef3a04e55e1a4c3b6a5744187fb
4
- data.tar.gz: a71d3a1ec6b984994816225eefd10b6a26d59392
5
- SHA512:
6
- metadata.gz: 2cb7dbfa427fe80d28dae02ecec9110d6d92fcd9a17cabb860b2afa3bcec2c9f8c4cb26c3465fcc16a4e0cda2254022c298de74c119b4eb4f8fec90c3f31503a
7
- data.tar.gz: b1070ceb502984877161ca7337f91d82db6c0da159d6aebf4deb660d40e473673841e1d574903acbdcfa3ed429f0b25549334c2378f7cd03da902715e9ae3622