parspec 0.0.1 → 1.0.0
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 +5 -13
- data/.editorconfig +28 -0
- data/README.md +246 -238
- data/bin/parspec +0 -0
- data/lib/parspec/version.rb +1 -1
- data/parspec.gemspec +1 -1
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZjJmOTAzZDM3OGMyNmYxMDkyZGNlODFiMjllNGFhZTVlYjEyYzY0Nw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a3516c885084ffddd3b46a2af4bc93ac8914f98f
|
4
|
+
data.tar.gz: d6ddbc77f01ce14afc524a4d0d96a38c8e239f9c
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
ZjdmMDA1NWZhODQ1ZDM0YWNmMTkwODg2MGNiMjYyODNhNTlmY2ZhZmRlNzlj
|
11
|
-
ZjU4MGNhOTY1ODcyMDEyNzRlN2E5MmM0NjA2NWE4Y2E5YjNiNGQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MjBhMThmMWNiNjY4NzcxMmEyNGIxMzM3ODhlZDFhMmU1ZjIzZjE4ODlmYjE3
|
14
|
-
YTYxOGY4Y2MxN2MwNzA2ZTEyNzJjMmEyZTllMTQzYWRmYjY4ODUzMDdlM2E0
|
15
|
-
MjU0ODEyMWM5ZTRhZDkwMTIxYWFhNGFkMzBjMTZkZjgyYmVjNzI=
|
6
|
+
metadata.gz: 38f184806b33c5dc01ed232e02b87bdd4affc32127060756af394cd239798d83e34c10eff1a7b43943e0cd5cdb213864d9e53547eec60eb1ff6afabcccdaf898
|
7
|
+
data.tar.gz: b99de120a1bb8af2faa5190b9b118de9c3a62f33d555bcfc4ba28c8afb3d29ef83de0f42f38c2cc900a22e837371f5a24a81fb577e1ca5a251e2330933754238
|
data/.editorconfig
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
root = true
|
2
|
+
|
3
|
+
[*]
|
4
|
+
charset = utf-8
|
5
|
+
end_of_line = lf
|
6
|
+
insert_final_newline = true
|
7
|
+
trim_trailing_whitespace = true
|
8
|
+
|
9
|
+
[*.yml]
|
10
|
+
indent_style = space
|
11
|
+
indent_size = 2
|
12
|
+
|
13
|
+
[*.rb]
|
14
|
+
indent_style = space
|
15
|
+
indent_size = 2
|
16
|
+
|
17
|
+
[*.rake]
|
18
|
+
indent_style = space
|
19
|
+
indent_size = 2
|
20
|
+
|
21
|
+
[*.parspec]
|
22
|
+
indent_style = space
|
23
|
+
indent_size = 4
|
24
|
+
|
25
|
+
[*.md]
|
26
|
+
indent_style = space
|
27
|
+
indent_size = 2
|
28
|
+
trim_trailing_whitespace = false
|
data/README.md
CHANGED
@@ -1,238 +1,246 @@
|
|
1
|
-
# Parspec
|
2
|
-
|
3
|
-
A [gUnit](https://theantlrguy.atlassian.net/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing)-like specification language for [Parslet](http://kschiess.github.io/parslet/) parsers and transformers, which
|
4
|
-
|
5
|
-
|
6
|
-
##
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
|
44
|
-
"
|
45
|
-
"
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"\"hello world\""
|
49
|
-
"\"hello\nworld\""
|
50
|
-
|
51
|
-
|
52
|
-
"
|
53
|
-
"
|
54
|
-
"
|
55
|
-
"
|
56
|
-
"
|
57
|
-
"
|
58
|
-
|
59
|
-
|
60
|
-
"[
|
61
|
-
"[1
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
"
|
72
|
-
"
|
73
|
-
"
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
##
|
237
|
-
|
238
|
-
|
1
|
+
# Parspec
|
2
|
+
|
3
|
+
A [gUnit](https://theantlrguy.atlassian.net/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing)-like specification language for [Parslet](http://kschiess.github.io/parslet/) parsers and transformers, which gets translated to [RSpec](http://rspec.info/) specs.
|
4
|
+
|
5
|
+
|
6
|
+
## Status
|
7
|
+
|
8
|
+
This software is feature-complete, since it realizes the features of [gUnit](https://theantlrguy.atlassian.net/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing) (with some additions) completely and can successfully be used as a full [gUnit](https://theantlrguy.atlassian.net/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing)-like replacement of handmade [RSpec](http://rspec.info/) specs, while still using the excellent RSpec testing platform, allowing to integrate the generated specs with handmade RSpec specs.
|
9
|
+
|
10
|
+
Although some nice language additions are thinkable, I won't implement them in the near future, until I need them.
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## Installation
|
15
|
+
|
16
|
+
Add this line to your application's Gemfile:
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
gem 'parspec', group: :test
|
20
|
+
```
|
21
|
+
|
22
|
+
And then execute:
|
23
|
+
|
24
|
+
$ bundle
|
25
|
+
|
26
|
+
Or install with gem:
|
27
|
+
|
28
|
+
$ gem install parspec
|
29
|
+
|
30
|
+
|
31
|
+
## Specification language
|
32
|
+
|
33
|
+
### Example
|
34
|
+
|
35
|
+
The following example shows parts of the [TOML spec](https://github.com/zerowidth/toml-parslet/blob/master/spec/toml/parser_spec.rb) translated to Parspec:
|
36
|
+
|
37
|
+
parser TOML::Parser
|
38
|
+
|
39
|
+
value:
|
40
|
+
"120381" OK
|
41
|
+
"0181" FAIL
|
42
|
+
"3.14159" OK
|
43
|
+
".1" FAIL
|
44
|
+
"true" OK
|
45
|
+
"truefalse" FAIL
|
46
|
+
"1979-05-27T07:32:00Z" OK
|
47
|
+
"1979l05-27 07:32:00" FAIL
|
48
|
+
"\"hello world\"" OK
|
49
|
+
"\"hello\nworld\"" FAIL
|
50
|
+
"\"hello/world\"" FAIL
|
51
|
+
|
52
|
+
"1234" -> ":integer => '1234'"
|
53
|
+
"-0.123" -> ":float => '-0.123'"
|
54
|
+
"true" -> ":boolean => 'true'"
|
55
|
+
"1979-05-27T07:32:00Z" -> ":datetime => '1979-05-27T07:32:00Z'"
|
56
|
+
"\"hello world\"" -> ":string => 'hello world'"
|
57
|
+
"\"hello\nworld\"" -> ":string => \"hello\nworld\""
|
58
|
+
|
59
|
+
array:
|
60
|
+
"[]" OK
|
61
|
+
"[1]" OK
|
62
|
+
"[0.1, -0.1, 3.14159]" OK
|
63
|
+
"[ true, false, true, true ]" OK
|
64
|
+
"[1979-05-27T07:32:00Z]" OK # [2013-02-24T17:26:21Z]
|
65
|
+
"[\n1\n,\n2\n]" OK
|
66
|
+
"[\n\n\t1 , 2, 3\\t,4\n]" OK
|
67
|
+
"[1, 2, \"three\"]" FAIL
|
68
|
+
"[1,2,]" OK
|
69
|
+
"[1,2\n,\\t]" OK
|
70
|
+
|
71
|
+
"[1,2]" -> ":array => [ {:integer => '1'}, {:integer => '2'}]"
|
72
|
+
"[]" -> ":array => '[]'"
|
73
|
+
"[ [1,2] ]"
|
74
|
+
-> ":array => [
|
75
|
+
{:array => [ {:integer => '1'}, {:integer => '2'}]}
|
76
|
+
]"
|
77
|
+
|
78
|
+
key:
|
79
|
+
"foobar" OK
|
80
|
+
"lolwhat.noWAY" OK
|
81
|
+
"no white\\tspace" FAIL
|
82
|
+
"noequal=thing" FAIL
|
83
|
+
|
84
|
+
assignment:
|
85
|
+
"key=3.14" OK
|
86
|
+
"key = 10" OK
|
87
|
+
"key = true" OK
|
88
|
+
"key = \"value\"" OK
|
89
|
+
"#comment=1" FAIL
|
90
|
+
"thing = 1" -> ":key => 'thing', :value => {:integer => '1'}"
|
91
|
+
|
92
|
+
|
93
|
+
### Description
|
94
|
+
|
95
|
+
#### Header
|
96
|
+
|
97
|
+
A Parspec specification starts with a definition of the subject:
|
98
|
+
|
99
|
+
<type> <instantiation expression>
|
100
|
+
|
101
|
+
There are two types of specifications: `parser` and `transformer`. A parser specification describes a `Parslet::Parser`, a transformer specification describes a `Parslet::Transform`. Syntactically these types of specifications are equal, but the generated RSpec descriptions will differ.
|
102
|
+
|
103
|
+
The instantiation expression is used to create a RSpec test subject. It usually consists of a constant for a `Parslet::Parser` or `Parslet::Transform` class, according to the type of specification, but can be any valid Ruby expression, which responds to `new` with a `Parslet::Parser` or `Parslet::Tranform` instance.
|
104
|
+
|
105
|
+
|
106
|
+
#### Rule examples
|
107
|
+
|
108
|
+
After the definition, a series of examples for the grammar rules follows. Rules start with a rule name followed by a colon.
|
109
|
+
|
110
|
+
There are two types of examples: validations and mapping examples.
|
111
|
+
|
112
|
+
|
113
|
+
##### Validations
|
114
|
+
|
115
|
+
A validation is a string in double-quotes followed either by the keyword `OK` or `FAIL`, according to the expected outcome of parsing the given string under the given rule. Currently, it is supported in parser specifications only.
|
116
|
+
|
117
|
+
For example, the following validation:
|
118
|
+
|
119
|
+
some_rule:
|
120
|
+
"some input" OK
|
121
|
+
"another input" FAIL
|
122
|
+
|
123
|
+
will translate to this RSpec description:
|
124
|
+
|
125
|
+
```ruby
|
126
|
+
context 'some_rule parsing' do
|
127
|
+
subject { parser.some_rule }
|
128
|
+
|
129
|
+
it { should parse 'some input' }
|
130
|
+
it { should_not parse 'another input' }
|
131
|
+
end
|
132
|
+
```
|
133
|
+
|
134
|
+
|
135
|
+
##### Mapping examples
|
136
|
+
|
137
|
+
Mapping examples describe the input-output-behaviour of a rule. Syntactically they consist of two strings separated by `->`. Since the semantics of parser and transformer specifications differ, let's discuss them separately, starting with the parser case:
|
138
|
+
|
139
|
+
While the input string on the left side is simply some sample text as in a validity example, the output string on the right must contain a valid Ruby expression, which should evaluate to the expected outcome of the respective rule parsing.
|
140
|
+
|
141
|
+
For example, the following mapping:
|
142
|
+
|
143
|
+
some_rule:
|
144
|
+
"some input" -> "42"
|
145
|
+
"another input" -> "{ foo: 'bar' }"
|
146
|
+
|
147
|
+
will be translated to the following RSpec parser specification:
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
context 'some_rule parsing' do
|
151
|
+
subject { parser.some_rule }
|
152
|
+
|
153
|
+
it "should parse 'some input' to 42" do
|
154
|
+
expect(subject.parse('some input')).to eq 42
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should parse 'another input' to { foo: 'bar' }" do
|
158
|
+
expect(subject.parse('another input')).to eq { foo: 'bar' }
|
159
|
+
end
|
160
|
+
end
|
161
|
+
```
|
162
|
+
|
163
|
+
In the case of a transformer specification, both sides must contain Ruby expressions.
|
164
|
+
|
165
|
+
|
166
|
+
#### Shared examples
|
167
|
+
|
168
|
+
The examples of a rule can be reused inside other rules with the `include` keyword:
|
169
|
+
|
170
|
+
some_rule:
|
171
|
+
"some input" -> "42"
|
172
|
+
"another input" -> "{ foo: 'bar' }"
|
173
|
+
|
174
|
+
another_rule:
|
175
|
+
include some_rule
|
176
|
+
|
177
|
+
|
178
|
+
#### String escaping
|
179
|
+
|
180
|
+
Parspec strings in general support the following escape sequences: `\t`, `\n`, `\r`, `\"`, `\\`.
|
181
|
+
|
182
|
+
|
183
|
+
#### Comments
|
184
|
+
|
185
|
+
One-line comments are supported in the `#`-style.
|
186
|
+
|
187
|
+
|
188
|
+
## Usage
|
189
|
+
|
190
|
+
### Command-line interface
|
191
|
+
|
192
|
+
Parspec comes with a command-line interface through the `parspec` command.
|
193
|
+
|
194
|
+
For a full description of the available parameters, run:
|
195
|
+
|
196
|
+
$ parspec --help
|
197
|
+
Usage: parspec [options] PARSPEC_FILE
|
198
|
+
-h, --help Display this information
|
199
|
+
-v, --version Print version information
|
200
|
+
-s, --stdout Print the translation to stdout only
|
201
|
+
-o, --out OUTPUT_FILE Path where translated RSpec file should be stored
|
202
|
+
-b, --beside-input Put the output file into the same directory as the input
|
203
|
+
-e, --header HEADER A block of code to be put in front of the translation
|
204
|
+
--no-debug-parse Don't print the whole Parslet ascii_tree on errors
|
205
|
+
|
206
|
+
Unless specified otherwise, the default header is:
|
207
|
+
|
208
|
+
```ruby
|
209
|
+
# coding: utf-8
|
210
|
+
require 'spec_helper'
|
211
|
+
require 'parslet/convenience'
|
212
|
+
require 'parslet/rig/rspec'
|
213
|
+
```
|
214
|
+
|
215
|
+
|
216
|
+
### `load_parspec`
|
217
|
+
|
218
|
+
You can use the command-line interface to integrate Parspec in your testing tool chain, e.g. via Rake or Guard.
|
219
|
+
|
220
|
+
But you can also load your Parspec spec from a normal Ruby file in your spec directory with the `load_parspec` command:
|
221
|
+
|
222
|
+
```ruby
|
223
|
+
require 'spec_helper'
|
224
|
+
require 'parspec'
|
225
|
+
require 'my_parser'
|
226
|
+
|
227
|
+
load_parspec __FILE__
|
228
|
+
```
|
229
|
+
|
230
|
+
If the `load_parspec` command gets a filename with the extension `.rb`, it looks for a file with the same name, but the extension `.parspec`. For example, if the former Ruby file would be at `spec/my_parser/my_parser_spec.rb`, the `load_parspec` command would try to load a Parspec spec from a file `spec/my_parser/my_parser_spec.parspec`.
|
231
|
+
|
232
|
+
|
233
|
+
Note: This feature is currently implemented via `eval`, till I find a way to include specs from other RSpec files or another alternative. If you have any advice, please share it in issue #1.
|
234
|
+
|
235
|
+
|
236
|
+
## Contributing
|
237
|
+
|
238
|
+
1. Fork it ( https://github.com/marcelotto/parspec/fork )
|
239
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
240
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
241
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
242
|
+
5. Create a new Pull Request
|
243
|
+
|
244
|
+
## Author
|
245
|
+
|
246
|
+
- Marcel Otto
|
data/bin/parspec
CHANGED
File without changes
|
data/lib/parspec/version.rb
CHANGED
data/parspec.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Parspec::VERSION
|
9
9
|
spec.authors = ['Marcel Otto']
|
10
10
|
spec.email = ['marcelotto.de@gmail.com']
|
11
|
-
spec.summary = %q{Testing
|
11
|
+
spec.summary = %q{Testing-Framework for Parslet grammars and transformations}
|
12
12
|
spec.description = %q{A specification language for Parslet grammars and transformers, which gets translated to RSpec.}
|
13
13
|
spec.homepage = 'http://github.com/marcelotto/parspec'
|
14
14
|
spec.license = 'MIT'
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcel Otto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parslet
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.7'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.7'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
69
|
description: A specification language for Parslet grammars and transformers, which
|
@@ -75,8 +75,9 @@ executables:
|
|
75
75
|
extensions: []
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
|
-
- .
|
79
|
-
- .
|
78
|
+
- ".editorconfig"
|
79
|
+
- ".gitignore"
|
80
|
+
- ".rspec"
|
80
81
|
- Gemfile
|
81
82
|
- Guardfile
|
82
83
|
- LICENSE.txt
|
@@ -105,21 +106,20 @@ require_paths:
|
|
105
106
|
- lib
|
106
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
108
|
requirements:
|
108
|
-
- -
|
109
|
+
- - ">="
|
109
110
|
- !ruby/object:Gem::Version
|
110
111
|
version: '0'
|
111
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
113
|
requirements:
|
113
|
-
- -
|
114
|
+
- - ">="
|
114
115
|
- !ruby/object:Gem::Version
|
115
116
|
version: '0'
|
116
117
|
requirements: []
|
117
118
|
rubyforge_project:
|
118
|
-
rubygems_version: 2.
|
119
|
+
rubygems_version: 2.4.5
|
119
120
|
signing_key:
|
120
121
|
specification_version: 4
|
121
|
-
summary: Testing
|
122
|
+
summary: Testing-Framework for Parslet grammars and transformations
|
122
123
|
test_files:
|
123
124
|
- spec/parspec/parser_spec.rb
|
124
125
|
- spec/spec_helper.rb
|
125
|
-
has_rdoc:
|