wankel 0.3.0 → 0.3.1
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 +4 -4
- data/.gitignore +1 -0
- data/Gemfile +4 -0
- data/README.md +5 -3
- data/Rakefile +4 -2
- data/lib/wankel.rb +25 -0
- data/test/encoding/sax_encoder_test.rb +108 -48
- data/wankel.gemspec +2 -9
- metadata +3 -4
- data/lib/wankel/ex_sax_parser.rb +0 -75
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 794731e10604a40d87557559c974422920b468a0
|
4
|
+
data.tar.gz: b328c5d3230268990c5d34004c6e8ae885e2d437
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 468bfdbee4e692305cceb4647c298d218cc43f4ec3278890254da41fc497657b1ac5300d92bab4f215a0d723bf65f9141778ffba1365a27da2957ed781739650
|
7
|
+
data.tar.gz: 857c6ad778dc3d6a5917c03ccbac6c35531bdfeba8fefde80af1f0f30c0bfaf28f1954774932c46afc187c9f28ca2bca08e2110ae272def85772502560c48a64
|
data/.gitignore
CHANGED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
<a href="http://wanklerb.com"></a>
|
2
2
|
|
3
|
+
[](https://circleci.com/gh/malomalo/wankel/tree/master)
|
4
|
+
|
3
5
|
**Wankel** is a Ruby gem that provides C bindings to the
|
4
6
|
[YAJL 2](http://lloyd.github.io/yajl/) C Library.
|
5
7
|
|
@@ -78,11 +80,11 @@ encoder = Wankel::SaxEncoder.new(output)
|
|
78
80
|
encoder.map_open
|
79
81
|
encoder.string("key")
|
80
82
|
encoder.number(123)
|
83
|
+
encoder.string("type")
|
84
|
+
encoder.value("value-determined-by-method")
|
81
85
|
encoder.map_close
|
82
86
|
encoder.complete
|
83
|
-
output.
|
84
|
-
output.read
|
85
|
-
# => '{"key":123}'
|
87
|
+
output.string # => '{"key":123,"type":"value-determined-by-method"}'
|
86
88
|
```
|
87
89
|
|
88
90
|
Parsing Options
|
data/Rakefile
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
Bundler.require(:development)
|
4
|
+
|
1
5
|
require "rake/extensiontask"
|
2
6
|
require "rake/testtask"
|
3
7
|
require "rubygems/package_task"
|
@@ -61,5 +65,3 @@ task :c_coverage do
|
|
61
65
|
SimpleCov::ResultMerger.store_result(data)
|
62
66
|
end
|
63
67
|
end
|
64
|
-
|
65
|
-
# https://github.com/defunkt/sdoc-helpers
|
data/lib/wankel.rb
CHANGED
@@ -16,4 +16,29 @@ class Wankel
|
|
16
16
|
:validate_utf8 => false,
|
17
17
|
:escape_solidus => false
|
18
18
|
}
|
19
|
+
end
|
20
|
+
|
21
|
+
class Wankel::SaxEncoder
|
22
|
+
|
23
|
+
def value(val)
|
24
|
+
case val
|
25
|
+
when NilClass
|
26
|
+
null
|
27
|
+
when TrueClass, FalseClass
|
28
|
+
boolean(val)
|
29
|
+
when Numeric
|
30
|
+
number(val)
|
31
|
+
when String
|
32
|
+
string(val)
|
33
|
+
when Array
|
34
|
+
array_open
|
35
|
+
val.each {|v| value(v) }
|
36
|
+
array_close
|
37
|
+
when Hash
|
38
|
+
map_open
|
39
|
+
val.each {|k, v| string(k.to_s); value(v) }
|
40
|
+
map_close
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
19
44
|
end
|
@@ -1,7 +1,17 @@
|
|
1
|
+
require 'test_helper'
|
1
2
|
require 'stringio'
|
2
3
|
|
3
4
|
class Wankel::SaxEncoderTest < Minitest::Test
|
4
5
|
|
6
|
+
def setup
|
7
|
+
@output = StringIO.new
|
8
|
+
@encoder = Wankel::SaxEncoder.new(@output)
|
9
|
+
end
|
10
|
+
|
11
|
+
def assert_output(value)
|
12
|
+
assert_equal(value, @output.string)
|
13
|
+
end
|
14
|
+
|
5
15
|
test 'default inherited from Wankel' do
|
6
16
|
encoder = Wankel::SaxEncoder.new(StringIO.new)
|
7
17
|
assert_equal(Wankel::DEFAULTS, encoder.instance_variable_get("@options"))
|
@@ -13,77 +23,127 @@ class Wankel::SaxEncoderTest < Minitest::Test
|
|
13
23
|
end
|
14
24
|
|
15
25
|
test "number" do
|
16
|
-
|
17
|
-
encoder
|
18
|
-
|
19
|
-
|
20
|
-
assert_equal("1234", output.string)
|
26
|
+
@encoder.number(1234)
|
27
|
+
@encoder.complete
|
28
|
+
|
29
|
+
assert_output("1234")
|
21
30
|
end
|
22
31
|
|
23
32
|
test "string" do
|
24
|
-
|
25
|
-
encoder
|
26
|
-
|
27
|
-
|
28
|
-
assert_equal('"hello world"', output.string)
|
33
|
+
@encoder.string("hello world")
|
34
|
+
@encoder.complete
|
35
|
+
|
36
|
+
assert_output('"hello world"')
|
29
37
|
end
|
30
38
|
|
31
39
|
test "null" do
|
32
|
-
|
33
|
-
encoder
|
34
|
-
|
35
|
-
|
36
|
-
assert_equal("null", output.string)
|
40
|
+
@encoder.null
|
41
|
+
@encoder.complete
|
42
|
+
|
43
|
+
assert_output("null")
|
37
44
|
end
|
38
45
|
|
39
46
|
test "boolean(false)" do
|
40
|
-
|
41
|
-
encoder
|
42
|
-
|
43
|
-
|
44
|
-
assert_equal("false", output.string)
|
47
|
+
@encoder.boolean(false)
|
48
|
+
@encoder.complete
|
49
|
+
|
50
|
+
assert_output("false")
|
45
51
|
end
|
46
52
|
|
47
53
|
test "boolean(true)" do
|
48
|
-
|
49
|
-
encoder
|
50
|
-
|
51
|
-
|
52
|
-
assert_equal("true", output.string)
|
54
|
+
@encoder.boolean(true)
|
55
|
+
@encoder.complete
|
56
|
+
|
57
|
+
assert_output("true")
|
53
58
|
end
|
54
59
|
|
55
60
|
test "map_open" do
|
56
|
-
|
57
|
-
encoder
|
58
|
-
|
59
|
-
|
60
|
-
assert_equal("{", output.string)
|
61
|
+
@encoder.map_open
|
62
|
+
@encoder.complete
|
63
|
+
|
64
|
+
assert_output("{")
|
61
65
|
end
|
62
66
|
|
63
67
|
test "map_close" do
|
64
|
-
|
65
|
-
encoder
|
66
|
-
encoder.
|
67
|
-
|
68
|
-
|
69
|
-
assert_equal("{}", output.string)
|
68
|
+
@encoder.map_open
|
69
|
+
@encoder.map_close
|
70
|
+
@encoder.complete
|
71
|
+
|
72
|
+
assert_output("{}")
|
70
73
|
end
|
71
74
|
|
72
75
|
test "array_open" do
|
73
|
-
|
74
|
-
encoder
|
75
|
-
|
76
|
-
|
77
|
-
assert_equal("[", output.string)
|
76
|
+
@encoder.array_open
|
77
|
+
@encoder.complete
|
78
|
+
|
79
|
+
assert_output("[")
|
78
80
|
end
|
79
81
|
|
80
82
|
test "array_close" do
|
81
|
-
|
82
|
-
encoder
|
83
|
-
encoder.
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
@encoder.array_open
|
84
|
+
@encoder.array_close
|
85
|
+
@encoder.complete
|
86
|
+
|
87
|
+
assert_output("[]")
|
88
|
+
end
|
89
|
+
|
90
|
+
test "value(NUMBER)" do
|
91
|
+
@encoder.value(123)
|
92
|
+
@encoder.complete
|
93
|
+
|
94
|
+
assert_output("123")
|
95
|
+
end
|
96
|
+
|
97
|
+
test "value(STRING)" do
|
98
|
+
@encoder.value("hello")
|
99
|
+
@encoder.complete
|
100
|
+
|
101
|
+
assert_output("\"hello\"")
|
87
102
|
end
|
103
|
+
|
104
|
+
test "value(NIL)" do
|
105
|
+
@encoder.value(nil)
|
106
|
+
@encoder.complete
|
107
|
+
|
108
|
+
assert_output("null")
|
109
|
+
end
|
110
|
+
|
111
|
+
test "value(BOOLEAN)" do
|
112
|
+
@encoder.value(true)
|
113
|
+
@encoder.complete
|
114
|
+
|
115
|
+
assert_output("true")
|
116
|
+
|
117
|
+
@output.rewind
|
118
|
+
@encoder.value(false)
|
119
|
+
@encoder.complete
|
120
|
+
|
121
|
+
assert_output("true")
|
122
|
+
end
|
123
|
+
|
124
|
+
test "value(ARRAY)" do
|
125
|
+
@encoder.value([])
|
126
|
+
@encoder.complete
|
127
|
+
|
128
|
+
assert_output("[]")
|
129
|
+
end
|
130
|
+
|
131
|
+
test "value(ARRAY_WITH_VALUES)" do
|
132
|
+
@encoder.value([1, "hello", nil, false, true, 45.21, {:key => 'val'}])
|
133
|
+
@encoder.complete
|
134
|
+
|
135
|
+
assert_output("[1,\"hello\",null,false,true,45.21,{\"key\":\"val\"}]")
|
136
|
+
end
|
137
|
+
|
138
|
+
test "value(HASH)" do
|
139
|
+
@encoder.value(:one => 'one', :two => 2, :three => true, :four => nil, 5 => [45.21])
|
140
|
+
@encoder.complete
|
141
|
+
|
142
|
+
assert_output('{"one":"one","two":2,"three":true,"four":null,"5":[45.21]}')
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
146
|
+
__END__
|
147
|
+
test "map_open" do
|
148
|
+
test "map_close" do
|
88
149
|
|
89
|
-
end
|
data/wankel.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'wankel'
|
3
|
-
s.version = '0.3.
|
3
|
+
s.version = '0.3.1'
|
4
4
|
s.licenses = ['MIT']
|
5
5
|
s.authors = ['Jon Bracy']
|
6
6
|
s.email = ['jonbracy@gmail.com']
|
@@ -19,11 +19,4 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_development_dependency 'minitest', '~> 5.3'
|
20
20
|
s.add_development_dependency 'minitest-reporters', '~> 1.0'
|
21
21
|
s.add_development_dependency 'mocha', '~> 1.1'
|
22
|
-
end
|
23
|
-
|
24
|
-
# spec.requirements << 'libmagick, v6.0'
|
25
|
-
# spec.extra_rdoc_files = ['README', 'doc/user-guide.txt']
|
26
|
-
# s.metadata = { "issue_tracker" => "https://example/issues" }
|
27
|
-
# spec.rdoc_options << '--title' << 'Rake -- Ruby Make' <<
|
28
|
-
# '--main' << 'README' <<
|
29
|
-
# '--line-numbers'
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wankel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Bracy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -76,6 +76,7 @@ extra_rdoc_files: []
|
|
76
76
|
files:
|
77
77
|
- ".gitignore"
|
78
78
|
- CHANGELOG.md
|
79
|
+
- Gemfile
|
79
80
|
- LICENSE
|
80
81
|
- README.md
|
81
82
|
- Rakefile
|
@@ -97,7 +98,6 @@ files:
|
|
97
98
|
- ext/wankel/yajl_helpers.c
|
98
99
|
- ext/wankel/yajl_helpers.h
|
99
100
|
- lib/wankel.rb
|
100
|
-
- lib/wankel/ex_sax_parser.rb
|
101
101
|
- logo.png
|
102
102
|
- test/encoding/encoding_test.rb
|
103
103
|
- test/encoding/sax_encoder_test.rb
|
@@ -259,4 +259,3 @@ test_files:
|
|
259
259
|
- test/performance.rb
|
260
260
|
- test/test_helper.rb
|
261
261
|
- test/wankel_test.rb
|
262
|
-
has_rdoc:
|
data/lib/wankel/ex_sax_parser.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
class Wankel::SaxParser
|
2
|
-
|
3
|
-
def on_map_start
|
4
|
-
puts 'start map'
|
5
|
-
end
|
6
|
-
|
7
|
-
def on_map_end
|
8
|
-
puts 'end map'
|
9
|
-
end
|
10
|
-
|
11
|
-
def on_map_key(key)
|
12
|
-
puts 'key'
|
13
|
-
end
|
14
|
-
|
15
|
-
def on_null
|
16
|
-
puts "null"
|
17
|
-
end
|
18
|
-
|
19
|
-
def on_boolean(value)
|
20
|
-
puts value
|
21
|
-
end
|
22
|
-
|
23
|
-
def on_integer(i)
|
24
|
-
puts "integer"
|
25
|
-
end
|
26
|
-
|
27
|
-
def on_double(d)
|
28
|
-
puts "double"
|
29
|
-
end
|
30
|
-
|
31
|
-
def on_string(s)
|
32
|
-
puts "string"
|
33
|
-
end
|
34
|
-
|
35
|
-
def on_array_start
|
36
|
-
puts "start array"
|
37
|
-
end
|
38
|
-
|
39
|
-
def on_array_end
|
40
|
-
puts "end array"
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
class Wankel::SaxEncoder
|
47
|
-
|
48
|
-
def number
|
49
|
-
end
|
50
|
-
|
51
|
-
def string
|
52
|
-
end
|
53
|
-
|
54
|
-
def null
|
55
|
-
end
|
56
|
-
|
57
|
-
def bool
|
58
|
-
end
|
59
|
-
|
60
|
-
def map_open
|
61
|
-
end
|
62
|
-
|
63
|
-
def map_close
|
64
|
-
end
|
65
|
-
|
66
|
-
def array_open
|
67
|
-
end
|
68
|
-
|
69
|
-
def array_close
|
70
|
-
end
|
71
|
-
|
72
|
-
def complete
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|