edn 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 264ff1a11e92aaba18083680eb6504c5d6b24236
4
+ data.tar.gz: 9381907dfe329aa6d6048b49eb6288b85b97050f
5
+ SHA512:
6
+ metadata.gz: 4a94597575dcca3006dd2bd20d79d69ebc3e1bae05484f459a4620f87e2d76f90562450aec24adc61a2df6a88762e8e5ae571a1ed3683b73d7b583f263ee8517
7
+ data.tar.gz: 9d6dce5fa89864ad64ce89ee8f9f57ed98328c7a42accfcf7725f29bb545af11dbbdf636c7c5d445c9052dd79f8abc21942bd872a2e602a6283130fcdd2ade40
data/lib/edn/parser.rb CHANGED
@@ -54,7 +54,7 @@ module EDN
54
54
  set |
55
55
  map |
56
56
  boolean |
57
- str('nil').as(:nil) |
57
+ _nil |
58
58
  keyword |
59
59
  string |
60
60
  character |
@@ -131,7 +131,11 @@ module EDN
131
131
  }
132
132
 
133
133
  rule(:boolean) {
134
- str('true').as(:true) | str('false').as(:false)
134
+ (str('true').as(:true) | str('false').as(:false)) >> valid_chars.absent?
135
+ }
136
+
137
+ rule(:_nil) {
138
+ str('nil').as(:nil) >> valid_chars.absent?
135
139
  }
136
140
 
137
141
  # Parts
data/lib/edn/transform.rb CHANGED
@@ -20,6 +20,7 @@ module EDN
20
20
  end
21
21
  }
22
22
 
23
+ rule(:string => []) { "" }
23
24
  rule(:string => simple(:x)) { EDN::StringTransformer.parse_string(x) }
24
25
  rule(:keyword => simple(:x)) { x.to_sym }
25
26
  rule(:symbol => simple(:x)) { EDN::Type::Symbol.new(x) }
data/lib/edn/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module EDN
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -25,6 +25,10 @@ describe EDN::Transform do
25
25
  it "should not evaluate interpolated Ruby code" do
26
26
  subject.apply(:string => 'hello\n#{world}').should == "hello\n\#{world}"
27
27
  end
28
+
29
+ it "should emit empty strings as strings" do
30
+ subject.apply(:string => []).should == ""
31
+ end
28
32
  end
29
33
 
30
34
  context "keyword" do
data/spec/edn_spec.rb CHANGED
@@ -5,6 +5,7 @@ describe EDN do
5
5
 
6
6
  context "#read" do
7
7
  it "reads single elements" do
8
+ EDN.read(%q{""}).should == ""
8
9
  EDN.read("1").should == 1
9
10
  EDN.read("3.14").should == 3.14
10
11
  EDN.read("3.14M").should == BigDecimal("3.14")
@@ -71,6 +72,20 @@ describe EDN do
71
72
  end
72
73
  end
73
74
  end
75
+
76
+ context "allows symbols starting with a reserved word" do
77
+ it "reads true-foo" do
78
+ EDN.read('true-foo').should == EDN::Type::Symbol.new('true-foo')
79
+ end
80
+
81
+ it "reads falsey" do
82
+ EDN.read('falsey').should == EDN::Type::Symbol.new('falsey')
83
+ end
84
+
85
+ it "reads nillable" do
86
+ EDN.read('nillable').should == EDN::Type::Symbol.new('nillable')
87
+ end
88
+ end
74
89
  end
75
90
 
76
91
  context "#register" do
metadata CHANGED
@@ -1,105 +1,94 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edn
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
- prerelease:
4
+ version: 1.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Clinton N. Dreisbach
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-24 00:00:00.000000000 Z
11
+ date: 2014-04-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: parslet
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.4.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.4.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: pry
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: 0.9.10
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
40
  version: 0.9.10
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: 2.11.0
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: 2.11.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rantly
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: 0.3.1
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: 0.3.1
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
75
  version: 10.0.3
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: 10.0.3
94
- description: ! '''edn implements a reader for Extensible Data Notation by Rich Hickey.'''
83
+ description: "'edn implements a reader for Extensible Data Notation by Rich Hickey.'"
95
84
  email:
96
85
  - clinton@thinkrelevance.com
97
86
  executables: []
98
87
  extensions: []
99
88
  extra_rdoc_files: []
100
89
  files:
101
- - .gitignore
102
- - .travis.yml
90
+ - ".gitignore"
91
+ - ".travis.yml"
103
92
  - CHANGELOG.md
104
93
  - Gemfile
105
94
  - LICENSE
@@ -128,34 +117,27 @@ files:
128
117
  - spec/spec_helper.rb
129
118
  homepage: ''
130
119
  licenses: []
120
+ metadata: {}
131
121
  post_install_message:
132
122
  rdoc_options: []
133
123
  require_paths:
134
124
  - lib
135
125
  required_ruby_version: !ruby/object:Gem::Requirement
136
- none: false
137
126
  requirements:
138
- - - ! '>='
127
+ - - ">="
139
128
  - !ruby/object:Gem::Version
140
129
  version: '0'
141
- segments:
142
- - 0
143
- hash: -1298335697156083659
144
130
  required_rubygems_version: !ruby/object:Gem::Requirement
145
- none: false
146
131
  requirements:
147
- - - ! '>='
132
+ - - ">="
148
133
  - !ruby/object:Gem::Version
149
134
  version: '0'
150
- segments:
151
- - 0
152
- hash: -1298335697156083659
153
135
  requirements: []
154
136
  rubyforge_project:
155
- rubygems_version: 1.8.24
137
+ rubygems_version: 2.2.2
156
138
  signing_key:
157
- specification_version: 3
158
- summary: ! '''edn implements a reader for Extensible Data Notation by Rich Hickey.'''
139
+ specification_version: 4
140
+ summary: "'edn implements a reader for Extensible Data Notation by Rich Hickey.'"
159
141
  test_files:
160
142
  - spec/edn/metadata_spec.rb
161
143
  - spec/edn/parser_spec.rb