parser 2.3.1.2 → 2.3.1.3
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/.travis.yml +3 -3
- data/.yardopts +2 -0
- data/CHANGELOG.md +18 -1
- data/README.md +0 -1
- data/Rakefile +1 -0
- data/lib/parser/ast/processor.rb +25 -9
- data/lib/parser/builders/default.rb +14 -1
- data/lib/parser/current.rb +1 -1
- data/lib/parser/lexer.rl +22 -2
- data/lib/parser/macruby.y +3 -0
- data/lib/parser/ruby18.y +3 -0
- data/lib/parser/ruby19.y +3 -0
- data/lib/parser/ruby20.y +3 -0
- data/lib/parser/ruby21.y +3 -0
- data/lib/parser/ruby22.y +3 -0
- data/lib/parser/ruby23.y +3 -0
- data/lib/parser/ruby24.y +6 -3
- data/lib/parser/rubymotion.y +3 -0
- data/lib/parser/source/rewriter.rb +0 -2
- data/lib/parser/version.rb +1 -1
- data/parser.gemspec +0 -6
- data/test/helper.rb +0 -5
- data/test/parse_helper.rb +1 -1
- data/test/test_lexer.rb +49 -0
- data/test/test_parser.rb +50 -5
- metadata +2 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55f92d909ef9936b5de562036dfca9b1c0f080c7
|
4
|
+
data.tar.gz: a6b6013d253ee25ee86458e1b4c7a4b8f56ffd28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db2be0308e370feac7834afc58a64e7a63db55af0d6ed16d048f45389ba24662327e1114487979775ba62aaad91ea9a3d359943ca35542a7445228e8c935bc21
|
7
|
+
data.tar.gz: eae6a4291f22c79258b2986cde1d77954002df10f7d6a4f51ca2bb5ae145bfa6b2b285717e48d864ece4760844eb843868186de55fe21c6d65547997d7b219c9
|
data/.travis.yml
CHANGED
@@ -4,8 +4,8 @@ rvm:
|
|
4
4
|
- 1.9.2
|
5
5
|
- 1.9.3
|
6
6
|
- 2.0.0
|
7
|
-
- 2.2.
|
8
|
-
- 2.3.
|
7
|
+
- 2.2.5
|
8
|
+
- 2.3.1
|
9
9
|
- ruby-head
|
10
10
|
- jruby-18mode
|
11
11
|
- jruby-19mode
|
@@ -17,7 +17,7 @@ matrix:
|
|
17
17
|
before_install:
|
18
18
|
- gem update bundler
|
19
19
|
- bundle --version
|
20
|
-
- gem update --system 2.
|
20
|
+
- gem update --system 2.6.6
|
21
21
|
- gem --version
|
22
22
|
script:
|
23
23
|
- bundle exec rake test_cov
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,23 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
+
v2.3.1.3 (2016-09-17)
|
5
|
+
---------------------
|
6
|
+
|
7
|
+
API modifications:
|
8
|
+
* parser/current: latest 2.3 release is 2.3.2. (Chris Riddoch)
|
9
|
+
|
10
|
+
Features implemented:
|
11
|
+
* ruby24.y: "f (g rescue nil)": allow stmt after tLPAREN_ARG. (whitequark)
|
12
|
+
|
13
|
+
Bugs fixed:
|
14
|
+
* ruby{18,19,20,21,22,23,24}.y: parse trailing commas as mlhs for block args "a.b{ |c,| d }" (fixes #312) (John Backus)
|
15
|
+
* Builders::Default: "begin; 1; else; 2; end": do not drop else. (whitequark)
|
16
|
+
* Builders::Default: "a&.b &&= c": fix safe navigation in lhs of op-assignment. (Ilya Bylich)
|
17
|
+
* AST::Processor: handle "csend" as "send". (#301) (Ilya Bylich)
|
18
|
+
* Parser::AST::Processor: do not spuriously modify ASTs. (Ilya Bylich)
|
19
|
+
* lexer.rl: "%w\a b\": lex backslash-delimited words literals. (Masataka Kuwabara)
|
20
|
+
|
4
21
|
v2.3.1.2 (2016-06-02)
|
5
22
|
---------------------
|
6
23
|
|
@@ -72,7 +89,7 @@ Bugs fixed:
|
|
72
89
|
* Add :csend to Parser::Meta::NODE_TYPES (Markus Schirp)
|
73
90
|
* lexer/dedenter: "\<\<x\n y\\n z\nx": don't dedent after escaped newline. (whitequark)
|
74
91
|
|
75
|
-
v2.3.1.
|
92
|
+
v2.3.1.3 (2016-01-16)
|
76
93
|
---------------------
|
77
94
|
|
78
95
|
v2.3.0.1 (2016-01-14)
|
data/README.md
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/parser)
|
4
4
|
[](https://travis-ci.org/whitequark/parser)
|
5
|
-
[](https://coveralls.io/r/whitequark/parser)
|
6
5
|
|
7
6
|
_Parser_ is a production-ready Ruby parser written in pure Ruby. It recognizes as
|
8
7
|
much or more code than Ripper, Melbourne, JRubyParser or ruby\_parser, and
|
data/Rakefile
CHANGED
data/lib/parser/ast/processor.rb
CHANGED
@@ -39,9 +39,13 @@ module Parser
|
|
39
39
|
def on_vasgn(node)
|
40
40
|
name, value_node = *node
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
if !value_node.nil?
|
43
|
+
node.updated(nil, [
|
44
|
+
name, process(value_node)
|
45
|
+
])
|
46
|
+
else
|
47
|
+
node
|
48
|
+
end
|
45
49
|
end
|
46
50
|
|
47
51
|
# @private
|
@@ -79,9 +83,15 @@ module Parser
|
|
79
83
|
def on_casgn(node)
|
80
84
|
scope_node, name, value_node = *node
|
81
85
|
|
82
|
-
|
83
|
-
|
84
|
-
|
86
|
+
if !value_node.nil?
|
87
|
+
node.updated(nil, [
|
88
|
+
process(scope_node), name, process(value_node)
|
89
|
+
])
|
90
|
+
else
|
91
|
+
node.updated(nil, [
|
92
|
+
process(scope_node), name
|
93
|
+
])
|
94
|
+
end
|
85
95
|
end
|
86
96
|
|
87
97
|
alias on_args process_regular_node
|
@@ -89,9 +99,13 @@ module Parser
|
|
89
99
|
def on_argument(node)
|
90
100
|
arg_name, value_node = *node
|
91
101
|
|
92
|
-
|
93
|
-
|
94
|
-
|
102
|
+
if !value_node.nil?
|
103
|
+
node.updated(nil, [
|
104
|
+
arg_name, process(value_node)
|
105
|
+
])
|
106
|
+
else
|
107
|
+
node
|
108
|
+
end
|
95
109
|
end
|
96
110
|
|
97
111
|
# @private
|
@@ -147,6 +161,8 @@ module Parser
|
|
147
161
|
])
|
148
162
|
end
|
149
163
|
|
164
|
+
alias on_csend on_send
|
165
|
+
|
150
166
|
alias on_block process_regular_node
|
151
167
|
|
152
168
|
alias on_while process_regular_node
|
@@ -487,7 +487,7 @@ module Parser
|
|
487
487
|
|
488
488
|
def op_assign(lhs, op_t, rhs)
|
489
489
|
case lhs.type
|
490
|
-
when :gvasgn, :ivasgn, :lvasgn, :cvasgn, :casgn, :send
|
490
|
+
when :gvasgn, :ivasgn, :lvasgn, :cvasgn, :casgn, :send, :csend
|
491
491
|
operator = value(op_t)[0..-1].to_sym
|
492
492
|
source_map = lhs.loc.
|
493
493
|
with_operator(loc(op_t)).
|
@@ -982,6 +982,19 @@ module Parser
|
|
982
982
|
[ compound_stmt, *(rescue_bodies + [ nil ]) ],
|
983
983
|
eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil))
|
984
984
|
end
|
985
|
+
elsif else_t
|
986
|
+
statements = []
|
987
|
+
if compound_stmt.type == :begin
|
988
|
+
statements += compound_stmt.children
|
989
|
+
else
|
990
|
+
statements.push(compound_stmt)
|
991
|
+
end
|
992
|
+
statements.push(
|
993
|
+
n(:begin, [ else_ ],
|
994
|
+
collection_map(else_t, [ else_ ], nil)))
|
995
|
+
compound_stmt =
|
996
|
+
n(:begin, statements,
|
997
|
+
collection_map(nil, statements, nil))
|
985
998
|
end
|
986
999
|
|
987
1000
|
if ensure_t
|
data/lib/parser/current.rb
CHANGED
data/lib/parser/lexer.rl
CHANGED
@@ -385,13 +385,19 @@ class Parser::Lexer
|
|
385
385
|
new_literal = Literal.new(self, *args)
|
386
386
|
@literal_stack.push(new_literal)
|
387
387
|
|
388
|
-
if new_literal.words?
|
388
|
+
if new_literal.words? && new_literal.backslash_delimited?
|
389
|
+
if new_literal.interpolate?
|
390
|
+
self.class.lex_en_interp_backslash_delimited_words
|
391
|
+
else
|
392
|
+
self.class.lex_en_plain_backslash_delimited_words
|
393
|
+
end
|
394
|
+
elsif new_literal.words? && !new_literal.backslash_delimited?
|
389
395
|
if new_literal.interpolate?
|
390
396
|
self.class.lex_en_interp_words
|
391
397
|
else
|
392
398
|
self.class.lex_en_plain_words
|
393
399
|
end
|
394
|
-
elsif new_literal.backslash_delimited?
|
400
|
+
elsif !new_literal.words? && new_literal.backslash_delimited?
|
395
401
|
if new_literal.interpolate?
|
396
402
|
self.class.lex_en_interp_backslash_delimited
|
397
403
|
else
|
@@ -1066,6 +1072,20 @@ class Parser::Lexer
|
|
1066
1072
|
c_any => extend_string;
|
1067
1073
|
*|;
|
1068
1074
|
|
1075
|
+
interp_backslash_delimited_words := |*
|
1076
|
+
interp_code => extend_interp_code;
|
1077
|
+
interp_var => extend_interp_var;
|
1078
|
+
c_space+ => extend_string_space;
|
1079
|
+
c_eol => extend_string_eol;
|
1080
|
+
c_any => extend_string;
|
1081
|
+
*|;
|
1082
|
+
|
1083
|
+
plain_backslash_delimited_words := |*
|
1084
|
+
c_space+ => extend_string_space;
|
1085
|
+
c_eol => extend_string_eol;
|
1086
|
+
c_any => extend_string;
|
1087
|
+
*|;
|
1088
|
+
|
1069
1089
|
regexp_modifiers := |*
|
1070
1090
|
[A-Za-z]+
|
1071
1091
|
=> {
|
data/lib/parser/macruby.y
CHANGED
data/lib/parser/ruby18.y
CHANGED
data/lib/parser/ruby19.y
CHANGED
data/lib/parser/ruby20.y
CHANGED
data/lib/parser/ruby21.y
CHANGED
data/lib/parser/ruby22.y
CHANGED
data/lib/parser/ruby23.y
CHANGED
data/lib/parser/ruby24.y
CHANGED
@@ -945,15 +945,15 @@ rule
|
|
945
945
|
result = @lexer.cmdarg.dup
|
946
946
|
@lexer.cmdarg.clear
|
947
947
|
}
|
948
|
-
|
948
|
+
stmt
|
949
949
|
{
|
950
950
|
@lexer.state = :expr_endarg
|
951
951
|
}
|
952
|
-
|
952
|
+
rparen
|
953
953
|
{
|
954
954
|
@lexer.cmdarg = val[1]
|
955
955
|
|
956
|
-
result = @builder.begin(val[0], val[2], val[
|
956
|
+
result = @builder.begin(val[0], val[2], val[4])
|
957
957
|
}
|
958
958
|
| tLPAREN_ARG
|
959
959
|
{
|
@@ -1364,6 +1364,9 @@ opt_block_args_tail:
|
|
1364
1364
|
concat(val[3])
|
1365
1365
|
}
|
1366
1366
|
| f_arg tCOMMA
|
1367
|
+
{
|
1368
|
+
result = [@builder.multi_lhs(nil, val[0], nil)]
|
1369
|
+
}
|
1367
1370
|
| f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
|
1368
1371
|
{
|
1369
1372
|
result = val[0].
|
data/lib/parser/rubymotion.y
CHANGED
data/lib/parser/version.rb
CHANGED
data/parser.gemspec
CHANGED
@@ -41,12 +41,6 @@ Gem::Specification.new do |spec|
|
|
41
41
|
|
42
42
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
43
43
|
spec.add_development_dependency 'simplecov', '~> 0.8.2'
|
44
|
-
spec.add_development_dependency 'coveralls'
|
45
|
-
spec.add_development_dependency 'json_pure' # for coveralls on 1.9.2
|
46
|
-
spec.add_development_dependency 'mime-types', '~> 1.25' # for coveralls on 1.8.7
|
47
|
-
spec.add_development_dependency 'rest-client', '~> 1.6.7' # 1.8.7
|
48
|
-
|
49
|
-
spec.add_development_dependency 'simplecov-sublime-ruby-coverage'
|
50
44
|
|
51
45
|
spec.add_development_dependency 'gauntlet'
|
52
46
|
end
|
data/test/helper.rb
CHANGED
@@ -2,7 +2,6 @@ require 'tempfile'
|
|
2
2
|
require 'minitest/test'
|
3
3
|
|
4
4
|
require 'simplecov'
|
5
|
-
require 'coveralls'
|
6
5
|
|
7
6
|
if ENV.include?('COVERAGE') && SimpleCov.usable?
|
8
7
|
if defined?(TracePoint)
|
@@ -15,13 +14,9 @@ if ENV.include?('COVERAGE') && SimpleCov.usable?
|
|
15
14
|
at_exit { RaccCoverage.stop }
|
16
15
|
end
|
17
16
|
|
18
|
-
require 'simplecov-sublime-ruby-coverage'
|
19
|
-
|
20
17
|
SimpleCov.start do
|
21
18
|
self.formatter = SimpleCov::Formatter::MultiFormatter[
|
22
19
|
SimpleCov::Formatter::HTMLFormatter,
|
23
|
-
SimpleCov::Formatter::SublimeRubyCoverageFormatter,
|
24
|
-
Coveralls::SimpleCov::Formatter
|
25
20
|
]
|
26
21
|
|
27
22
|
add_group 'Grammars' do |source_file|
|
data/test/parse_helper.rb
CHANGED
data/test/test_lexer.rb
CHANGED
@@ -2188,6 +2188,55 @@ class TestLexer < Minitest::Test
|
|
2188
2188
|
:tSTRING_END, "\\", [3, 4])
|
2189
2189
|
end
|
2190
2190
|
|
2191
|
+
def test_string_pct_w_backslash
|
2192
|
+
assert_scanned("%w\\s1 s2 \\",
|
2193
|
+
:tQWORDS_BEG, "%w\\", [0, 3],
|
2194
|
+
:tSTRING_CONTENT, "s1", [3, 5],
|
2195
|
+
:tSPACE, nil, [5, 6],
|
2196
|
+
:tSTRING_CONTENT, "s2", [6, 8],
|
2197
|
+
:tSPACE, nil, [8, 9],
|
2198
|
+
:tSTRING_END, "\\", [9, 10])
|
2199
|
+
end
|
2200
|
+
|
2201
|
+
def test_string_pct_w_backslash_nl
|
2202
|
+
assert_scanned("%w\\s1 s2 \\\n",
|
2203
|
+
:tQWORDS_BEG, "%w\\", [0, 3],
|
2204
|
+
:tSTRING_CONTENT, "s1", [3, 5],
|
2205
|
+
:tSPACE, nil, [5, 6],
|
2206
|
+
:tSTRING_CONTENT, "s2", [6, 8],
|
2207
|
+
:tSPACE, nil, [8, 9],
|
2208
|
+
:tSTRING_END, "\\", [9, 10],
|
2209
|
+
:tNL, nil, [10, 11])
|
2210
|
+
end
|
2211
|
+
|
2212
|
+
def test_string_pct_w_backslash_interp_nl
|
2213
|
+
assert_scanned("%W\\blah #x a \#@a b \#$b c \#{3} # \\",
|
2214
|
+
:tWORDS_BEG, "%W\\", [0, 3],
|
2215
|
+
:tSTRING_CONTENT, "blah", [3, 7],
|
2216
|
+
:tSPACE, nil, [7, 8],
|
2217
|
+
:tSTRING_CONTENT, "#x", [8, 10],
|
2218
|
+
:tSPACE, nil, [10, 11],
|
2219
|
+
:tSTRING_CONTENT, "a", [11, 12],
|
2220
|
+
:tSPACE, nil, [12, 13],
|
2221
|
+
:tSTRING_DVAR, nil, [13, 14],
|
2222
|
+
:tIVAR, "@a", [14, 16],
|
2223
|
+
:tSPACE, nil, [16, 17],
|
2224
|
+
:tSTRING_CONTENT, "b", [17, 18],
|
2225
|
+
:tSPACE, nil, [18, 19],
|
2226
|
+
:tSTRING_DVAR, nil, [19, 20],
|
2227
|
+
:tGVAR, "$b", [20, 22],
|
2228
|
+
:tSPACE, nil, [22, 23],
|
2229
|
+
:tSTRING_CONTENT, "c", [23, 24],
|
2230
|
+
:tSPACE, nil, [24, 25],
|
2231
|
+
:tSTRING_DBEG, '#{', [25, 27],
|
2232
|
+
:tINTEGER, 3, [27, 28],
|
2233
|
+
:tRCURLY, "}", [28, 29],
|
2234
|
+
:tSPACE, nil, [29, 30],
|
2235
|
+
:tSTRING_CONTENT, "#", [30, 31],
|
2236
|
+
:tSPACE, nil, [31, 32],
|
2237
|
+
:tSTRING_END, "\\", [32, 33])
|
2238
|
+
end
|
2239
|
+
|
2191
2240
|
def test_string_pct_backslash_with_bad_escape
|
2192
2241
|
# No escapes are allowed in a backslash-delimited string
|
2193
2242
|
refute_scanned("%\\a\\n\\",
|
data/test/test_parser.rb
CHANGED
@@ -2350,8 +2350,9 @@ class TestParser < Minitest::Test
|
|
2350
2350
|
%w(1.8))
|
2351
2351
|
|
2352
2352
|
assert_parses_blockargs(
|
2353
|
-
s(:args, s(:arg, :a)),
|
2354
|
-
%q{|a,|}
|
2353
|
+
s(:args, s(:mlhs, s(:arg, :a))),
|
2354
|
+
%q{|a,|}
|
2355
|
+
)
|
2355
2356
|
|
2356
2357
|
assert_parses_blockargs(
|
2357
2358
|
s(:args, s(:arg, :a), s(:blockarg, :b)),
|
@@ -3436,6 +3437,14 @@ class TestParser < Minitest::Test
|
|
3436
3437
|
ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 ios mac))
|
3437
3438
|
end
|
3438
3439
|
|
3440
|
+
def test_send_op_asgn_conditional
|
3441
|
+
assert_parses(
|
3442
|
+
s(:and_asgn, s(:csend, s(:send, nil, :a), :b), s(:int, 1)),
|
3443
|
+
%q{a&.b &&= 1},
|
3444
|
+
%q{},
|
3445
|
+
ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 ios mac))
|
3446
|
+
end
|
3447
|
+
|
3439
3448
|
def test_lvar_injecting_match
|
3440
3449
|
assert_parses(
|
3441
3450
|
s(:begin,
|
@@ -4207,10 +4216,11 @@ class TestParser < Minitest::Test
|
|
4207
4216
|
end
|
4208
4217
|
|
4209
4218
|
def test_if_masgn__24
|
4210
|
-
|
4211
|
-
|
4219
|
+
assert_parses(
|
4220
|
+
s(:if,
|
4221
|
+
s(:begin, nil), nil, nil),
|
4212
4222
|
%q{if (a, b = foo); end},
|
4213
|
-
%q{
|
4223
|
+
%q{},
|
4214
4224
|
ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 2.3 ios mac))
|
4215
4225
|
end
|
4216
4226
|
|
@@ -4710,6 +4720,23 @@ class TestParser < Minitest::Test
|
|
4710
4720
|
end
|
4711
4721
|
|
4712
4722
|
def test_rescue_else_useless
|
4723
|
+
assert_parses(
|
4724
|
+
s(:kwbegin,
|
4725
|
+
s(:int, 1),
|
4726
|
+
s(:begin,
|
4727
|
+
s(:int, 2))),
|
4728
|
+
%q{begin; 1; else; 2; end},
|
4729
|
+
%q{ ~~~~ begin (begin)})
|
4730
|
+
|
4731
|
+
assert_parses(
|
4732
|
+
s(:kwbegin,
|
4733
|
+
s(:int, 1),
|
4734
|
+
s(:int, 2),
|
4735
|
+
s(:begin,
|
4736
|
+
s(:int, 3))),
|
4737
|
+
%q{begin; 1; 2; else; 3; end},
|
4738
|
+
%q{ ~~~~ begin (begin)})
|
4739
|
+
|
4713
4740
|
assert_diagnoses(
|
4714
4741
|
[:warning, :useless_else],
|
4715
4742
|
%q{begin; 1; else; 2; end},
|
@@ -5450,6 +5477,24 @@ class TestParser < Minitest::Test
|
|
5450
5477
|
ALL_VERSIONS - %w(1.8))
|
5451
5478
|
end
|
5452
5479
|
|
5480
|
+
def test_ruby_bug_12686
|
5481
|
+
assert_parses(
|
5482
|
+
s(:send, nil, :f,
|
5483
|
+
s(:begin,
|
5484
|
+
s(:rescue,
|
5485
|
+
s(:send, nil, :g),
|
5486
|
+
s(:resbody, nil, nil,
|
5487
|
+
s(:nil)), nil))),
|
5488
|
+
%q{f (g rescue nil)},
|
5489
|
+
%q{},
|
5490
|
+
ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 2.3 ios mac))
|
5491
|
+
|
5492
|
+
assert_diagnoses(
|
5493
|
+
[:error, :unexpected_token, {:token => 'kRESCUE_MOD'}],
|
5494
|
+
%q{f(g rescue nil)},
|
5495
|
+
%q{ ^^^^^^ location})
|
5496
|
+
end
|
5497
|
+
|
5453
5498
|
def test_parser_bug_198
|
5454
5499
|
assert_parses(
|
5455
5500
|
s(:array,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.1.
|
4
|
+
version: 2.3.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whitequark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|
@@ -136,76 +136,6 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 0.8.2
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: coveralls
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: json_pure
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: mime-types
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '1.25'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '1.25'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: rest-client
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - "~>"
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: 1.6.7
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - "~>"
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: 1.6.7
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: simplecov-sublime-ruby-coverage
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
139
|
- !ruby/object:Gem::Dependency
|
210
140
|
name: gauntlet
|
211
141
|
requirement: !ruby/object:Gem::Requirement
|