ru2 2.1.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.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/.travis.yml +7 -0
- data/Appraisals +11 -0
- data/Gemfile +3 -0
- data/MIT-LICENSE +20 -0
- data/README.md +324 -0
- data/Rakefile +11 -0
- data/bin/ru +13 -0
- data/doc/help.erb +33 -0
- data/doc/logo.png +0 -0
- data/gemfiles/activesupport_3.gemfile +7 -0
- data/gemfiles/activesupport_3.gemfile.lock +46 -0
- data/gemfiles/activesupport_4.gemfile +7 -0
- data/gemfiles/activesupport_4.gemfile.lock +53 -0
- data/gemfiles/activesupport_5.gemfile +7 -0
- data/gemfiles/activesupport_5.gemfile.lock +52 -0
- data/lib/ru/array.rb +88 -0
- data/lib/ru/file.rb +94 -0
- data/lib/ru/iterator.rb +56 -0
- data/lib/ru/option_printer.rb +33 -0
- data/lib/ru/process.rb +121 -0
- data/lib/ru/stream.rb +126 -0
- data/lib/ru/version.rb +3 -0
- data/lib/ru.rb +7 -0
- data/ru.gemspec +20 -0
- data/spec/examples/misc_examples_spec.rb +40 -0
- data/spec/examples/sed_examples_spec.rb +95 -0
- data/spec/examples/stream_examples_spec.rb +136 -0
- data/spec/fixtures/files/access.log +5 -0
- data/spec/fixtures/files/bar.txt +1 -0
- data/spec/fixtures/files/foo.txt +3 -0
- data/spec/lib/array_spec.rb +38 -0
- data/spec/lib/iterator_spec.rb +72 -0
- data/spec/lib/process_spec.rb +126 -0
- data/spec/lib/stream_spec.rb +41 -0
- data/spec/spec_helper.rb +20 -0
- data/spec/support/fixtures_helper.rb +6 -0
- data/spec/support/process_helper.rb +30 -0
- metadata +127 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9b2c993f32bd213c93f01412741d905e17055237
|
4
|
+
data.tar.gz: b90d80f68ddf4b166fbf8cddcde0df1fa36b4efd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7121130a3c3bdf3a0a95d2f911ab0b3944f6d014572f77bf587fee9cd79ef387228d848f355ab5de0f041c455196acf40f3cd8770f633f50fee2bfce7bf893ef
|
7
|
+
data.tar.gz: e7d9356db4016936d196ca86ea92c205267698b35717fd0f1ae229328c640583f650c26ac96e2c7e508d46597ddd802e82cd7250ea081ae85157cc6767942e68
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Appraisals
ADDED
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2014 Tom Benner
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,324 @@
|
|
1
|
+
Ru
|
2
|
+
=====
|
3
|
+
Ruby in your shell!
|
4
|
+
|
5
|
+
<img src="https://raw.github.com/tombenner/ru/master/doc/logo.png" />
|
6
|
+
|
7
|
+
[<img src="https://secure.travis-ci.org/tombenner/ru.png" />](http://travis-ci.org/tombenner/ru)
|
8
|
+
|
9
|
+
Overview
|
10
|
+
--------
|
11
|
+
|
12
|
+
Ru brings Ruby's expressiveness, cleanliness, and readability to the command line.
|
13
|
+
|
14
|
+
It lets you avoid looking up pesky options in man pages and Googling how to write a transformation in bash that would take you approximately 1s to write in Ruby.
|
15
|
+
|
16
|
+
For example, to center a file's lines, use [String#center](http://ruby-doc.org/core-2.0/String.html#method-i-center):
|
17
|
+
|
18
|
+
```bash
|
19
|
+
ru 'map(:center, 80)' myfile
|
20
|
+
```
|
21
|
+
|
22
|
+
Using traditional tools, this isn't as easy or readable:
|
23
|
+
|
24
|
+
```bash
|
25
|
+
awk 'printf "%" int(40+length($0)/2) "s\n", $0' myfile
|
26
|
+
```
|
27
|
+
|
28
|
+
For another example, let's compare summing the lines of a list of integers using Ru vs. a traditional approach:
|
29
|
+
|
30
|
+
```bash
|
31
|
+
ru 'map(:to_i).sum' myfile
|
32
|
+
```
|
33
|
+
|
34
|
+
```bash
|
35
|
+
awk '{s+=$1} END {print s}' myfile
|
36
|
+
```
|
37
|
+
|
38
|
+
Any method from Ruby Core and Active Support can be used. Ru also provides new methods (and modifies [#map](#map)) to make transformations easier. Here are some variations on the above example:
|
39
|
+
|
40
|
+
```bash
|
41
|
+
ru 'map(:to_i, 10).sum' myfile
|
42
|
+
ru 'map(:to_i).reduce(&:+)' myfile
|
43
|
+
ru 'each_line.to_i.to_a.sum' myfile
|
44
|
+
ru 'grep(/^\d+$/).map(:to_i).sum' myfile
|
45
|
+
ru 'map { |n| n.to_i }.reduce(&:+)' myfile
|
46
|
+
ru 'reduce(0) { |sum, n| sum + n.to_i }' myfile
|
47
|
+
ru 'each_line.match(/(\d+)/)[1].to_i.to_a.sum' myfile
|
48
|
+
ru 'map { |n| n.to_i }.reduce(0) { |sum, n| sum + n }' myfile
|
49
|
+
```
|
50
|
+
|
51
|
+
See [Examples](#examples) and [Methods](#methods) for more.
|
52
|
+
|
53
|
+
Installation
|
54
|
+
------------
|
55
|
+
|
56
|
+
```bash
|
57
|
+
gem install ru2
|
58
|
+
```
|
59
|
+
|
60
|
+
You can now use Ruby in your shell!
|
61
|
+
|
62
|
+
For example, to sum a list of integers:
|
63
|
+
|
64
|
+
```bash
|
65
|
+
$ printf "2\n3" | ru 'map(:to_i).sum'
|
66
|
+
5
|
67
|
+
```
|
68
|
+
|
69
|
+
Usage
|
70
|
+
-----
|
71
|
+
|
72
|
+
See [Examples](#examples) below, too!
|
73
|
+
|
74
|
+
Ru reads from stdin:
|
75
|
+
|
76
|
+
```bash
|
77
|
+
$ printf "2\n3" | ru 'map(:to_i).sum'
|
78
|
+
5
|
79
|
+
$ cat myfile | ru 'map(:to_i).sum'
|
80
|
+
5
|
81
|
+
```
|
82
|
+
|
83
|
+
Or from file(s):
|
84
|
+
|
85
|
+
```bash
|
86
|
+
$ ru 'map(:to_i).sum' myfile
|
87
|
+
5
|
88
|
+
$ ru 'map(:to_i).sum' myfile myfile
|
89
|
+
10
|
90
|
+
```
|
91
|
+
|
92
|
+
You can also run Ruby code without any input by prepending a `! `:
|
93
|
+
|
94
|
+
```bash
|
95
|
+
$ ru '! 2 + 3'
|
96
|
+
5
|
97
|
+
```
|
98
|
+
|
99
|
+
The code argument is run as if it has `$stdin.each_line.map(&:chomp).` prepended to it. The result is converted to a string and printed. So, if you run `ru 'map(&:to_i).sum'`, you can think of it as running `puts $stdin.each_line.map(&:chomp).map(&:to_i).sum`.
|
100
|
+
|
101
|
+
In addition to the methods provided by Ruby Core and Active Support, Ru provides other methods for performing transformations, like `each_line`, `files`, and `grep`, and it improves `map`. See [Methods](#methods) for more.
|
102
|
+
|
103
|
+
Stream mode
|
104
|
+
-----------
|
105
|
+
If input data is very large or of undefined size it may be better to process it line by line without loading the whole data into memory.
|
106
|
+
This can be done by activating stream mode (which utilizes Enumerator::Lazy) by passing `-s` or `--stream` flag.
|
107
|
+
Note, that in stream mode Ru can process only one file or input stream at a time.
|
108
|
+
|
109
|
+
For example, let's count how many lines there are in the /dev/urandom :)
|
110
|
+
|
111
|
+
```bash
|
112
|
+
$ cat /dev/urandom | ru -s 'inject(0){|a| puts a if a % 100000 == 0; a+1 }'
|
113
|
+
```
|
114
|
+
|
115
|
+
Or how many zeros there are in the /dev/zero :)
|
116
|
+
|
117
|
+
Note, that there are no lines in the stream, so we have to active binary mode by passing `-b` or `--binary` flag.
|
118
|
+
|
119
|
+
```bash
|
120
|
+
$ cat /dev/zero | ru -s -b 'inject(0){|a| puts a if a % 10000000 == 0; a+1 }'
|
121
|
+
```
|
122
|
+
|
123
|
+
As you can see, this allows to read stream or file byte by byte.
|
124
|
+
|
125
|
+
```bash
|
126
|
+
$ echo 'test' > /tmp/test && ru -b 'join(" ")' /tmp/test
|
127
|
+
116 101 115 116 10
|
128
|
+
```
|
129
|
+
|
130
|
+
Note, that memory consumption is constant no matter how long those commands are running.
|
131
|
+
You can interrupt them with Ctrl+C.
|
132
|
+
|
133
|
+
Examples
|
134
|
+
--------
|
135
|
+
|
136
|
+
Let's compare the readability and conciseness of Ru relative to existing tools:
|
137
|
+
|
138
|
+
#### Center lines
|
139
|
+
|
140
|
+
##### ru
|
141
|
+
```bash
|
142
|
+
ru 'map(:center, 80)' myfile
|
143
|
+
```
|
144
|
+
|
145
|
+
##### awk
|
146
|
+
```bash
|
147
|
+
awk 'printf "%" int(40+length($0)/2) "s\n", $0' myfile
|
148
|
+
```
|
149
|
+
|
150
|
+
##### sed
|
151
|
+
[Script](https://www.gnu.org/software/sed/manual/sed.html#Centering-lines)
|
152
|
+
|
153
|
+
#### Sum a list of integers
|
154
|
+
|
155
|
+
##### ru
|
156
|
+
```bash
|
157
|
+
ru 'map(:to_i).sum' myfile
|
158
|
+
```
|
159
|
+
|
160
|
+
##### awk
|
161
|
+
```bash
|
162
|
+
awk '{s+=$1} END {print s}' myfile
|
163
|
+
```
|
164
|
+
|
165
|
+
##### paste
|
166
|
+
```bash
|
167
|
+
paste -s -d+ myfile | bc
|
168
|
+
```
|
169
|
+
|
170
|
+
#### Print the 5th line
|
171
|
+
|
172
|
+
##### ru
|
173
|
+
```bash
|
174
|
+
ru '[4]' myfile
|
175
|
+
```
|
176
|
+
|
177
|
+
##### sed
|
178
|
+
```bash
|
179
|
+
sed '5q;d' myfile
|
180
|
+
```
|
181
|
+
|
182
|
+
#### Print all lines except the first and last
|
183
|
+
|
184
|
+
##### ru
|
185
|
+
```bash
|
186
|
+
ru '[1..-2]' myfile
|
187
|
+
```
|
188
|
+
|
189
|
+
##### sed
|
190
|
+
```bash
|
191
|
+
sed '1d;$d' myfile
|
192
|
+
```
|
193
|
+
|
194
|
+
#### Sort an Apache access log by response time (decreasing, with time prepended)
|
195
|
+
|
196
|
+
##### ru
|
197
|
+
```bash
|
198
|
+
ru 'map { |line| [line[/(\d+)( ".+"){2}$/, 1].to_i, line] }.sort.reverse.map(:join, " ")' access.log
|
199
|
+
```
|
200
|
+
|
201
|
+
##### awk
|
202
|
+
```bash
|
203
|
+
awk --re-interval '{ match($0, /(([^[:space:]]+|\[[^\]]+\]|"[^"]+")[[:space:]]+){7}/, m); print m[2], $0 }' access.log | sort -nk 1
|
204
|
+
```
|
205
|
+
[Source](https://coderwall.com/p/ueazhw)
|
206
|
+
|
207
|
+
Methods
|
208
|
+
-------
|
209
|
+
|
210
|
+
In addition to the methods provided by Ruby Core and Active Support, Ru provides other methods for performing transformations.
|
211
|
+
|
212
|
+
#### each_line
|
213
|
+
|
214
|
+
Provides a shorthand for calling methods on each iteration of the input. Best explained by example:
|
215
|
+
|
216
|
+
```bash
|
217
|
+
ru 'each_line.strip.center(80)' myfile
|
218
|
+
```
|
219
|
+
|
220
|
+
If you'd like to transform it back into a list, call `to_a`:
|
221
|
+
|
222
|
+
```bash
|
223
|
+
ru 'each_line.strip.to_a.map(:center, 80)' myfile
|
224
|
+
```
|
225
|
+
|
226
|
+
#### files
|
227
|
+
|
228
|
+
Converts the lines to `Ru::File` objects (see Ru::File below).
|
229
|
+
|
230
|
+
```bash
|
231
|
+
$ printf "foo.txt" | ru 'files.map(:updated_at).map(:strftime, ""%Y-%m-%d")'
|
232
|
+
2014-11-08
|
233
|
+
```
|
234
|
+
|
235
|
+
#### format(format='l')
|
236
|
+
|
237
|
+
Formats a list of `Ru::File`s. You'll typically call this after calling `files` to transform them into strings:
|
238
|
+
|
239
|
+
```bash
|
240
|
+
$ ru 'files.format'
|
241
|
+
644 tom staff 3 2014-10-26 09:06 bar.txt
|
242
|
+
644 tom staff 11 2014-11-04 08:29 foo.txt
|
243
|
+
```
|
244
|
+
|
245
|
+
The default format, `'l'`, is shown above. It prints `[omode, owner, group, size, date, name]`.
|
246
|
+
|
247
|
+
#### grep
|
248
|
+
|
249
|
+
Selects lines which match the given regex.
|
250
|
+
|
251
|
+
```bash
|
252
|
+
$ printf "john\npaul\ngeorge" | ru 'grep(/o[h|r]/)'
|
253
|
+
john
|
254
|
+
george
|
255
|
+
```
|
256
|
+
|
257
|
+
#### map
|
258
|
+
|
259
|
+
This is the same as [Array#map](http://www.ruby-doc.org/core-2.0/Array.html#method-i-map), but it adds a new syntax that allows you to easily pass arguments to a method. For example:
|
260
|
+
|
261
|
+
```bash
|
262
|
+
$ printf "john\npaul" | ru 'map(:[], 0)'
|
263
|
+
j
|
264
|
+
p
|
265
|
+
$ printf "john\npaul" | ru 'map(:center, 8, ".")'
|
266
|
+
..john..
|
267
|
+
..paul..
|
268
|
+
```
|
269
|
+
|
270
|
+
Note that the examples above can also be performed with `each_line`:
|
271
|
+
|
272
|
+
```bash
|
273
|
+
$ printf "john\npaul" | ru 'each_line[0]'
|
274
|
+
$ printf "john\npaul" | ru 'each_line.center(8, ".")'
|
275
|
+
```
|
276
|
+
|
277
|
+
Ru::File
|
278
|
+
------------
|
279
|
+
|
280
|
+
The [`files`](#files) method returns an enumerable of `Ru::File`s, which are similar to Ruby Core's [`File`](http://ruby-doc.org/core-2.0/File.html). Each one has the following methods:
|
281
|
+
|
282
|
+
* `basename`
|
283
|
+
* `created_at` (alias for ctime)
|
284
|
+
* `ctime`
|
285
|
+
* `extname`
|
286
|
+
* `format` (see the [`format`](#formatformatl) method above)
|
287
|
+
* `ftype`
|
288
|
+
* `gid`
|
289
|
+
* `group`
|
290
|
+
* `mode`
|
291
|
+
* `mtime`
|
292
|
+
* `name` (alias for basename)
|
293
|
+
* `omode`
|
294
|
+
* `owner`
|
295
|
+
* `size`
|
296
|
+
* `to_s` (alias for name)
|
297
|
+
* `uid`
|
298
|
+
* `updated_at` (alias for mtime)
|
299
|
+
* `world_readable?`
|
300
|
+
|
301
|
+
Options
|
302
|
+
-------
|
303
|
+
|
304
|
+
#### -h, --help
|
305
|
+
|
306
|
+
Print a help page.
|
307
|
+
|
308
|
+
#### -v, --version
|
309
|
+
|
310
|
+
Print the installed version of Ru.
|
311
|
+
|
312
|
+
Testing
|
313
|
+
-------
|
314
|
+
|
315
|
+
Ru is tested against Active Support 3, 4 and 5. If you'd like to submit a PR, please be sure to use [Appraisal](https://github.com/thoughtbot/appraisal) to test your changes in all contexts:
|
316
|
+
|
317
|
+
```bash
|
318
|
+
appraisal rspec
|
319
|
+
```
|
320
|
+
|
321
|
+
License
|
322
|
+
-------
|
323
|
+
|
324
|
+
Ru is released under the MIT License. Please see the MIT-LICENSE file for details.
|
data/Rakefile
ADDED
data/bin/ru
ADDED
data/doc/help.erb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
Ru (version <%= version %>)
|
2
|
+
Ruby in your shell!
|
3
|
+
|
4
|
+
Ru brings Ruby's expressiveness, cleanliness, and readability to the command line. It lets you avoid looking up pesky options in man pages and Googling how to write a transformation in bash that would take you approximately 1s to write in Ruby.
|
5
|
+
|
6
|
+
For example, to center a file's lines, use String#center:
|
7
|
+
ru 'map(:center, 80)' myfile
|
8
|
+
|
9
|
+
To sum the lines of a list of integers:
|
10
|
+
ru 'map(:to_i).sum' myfile
|
11
|
+
|
12
|
+
Ru reads from stdin:
|
13
|
+
$ printf "2\n3" | ru 'map(:to_i).sum'
|
14
|
+
5
|
15
|
+
$ cat myfile | ru 'map(:to_i).sum'
|
16
|
+
5
|
17
|
+
|
18
|
+
Or from file(s):
|
19
|
+
$ ru 'map(:to_i).sum' myfile
|
20
|
+
5
|
21
|
+
$ ru 'map(:to_i).sum' myfile myfile
|
22
|
+
10
|
23
|
+
|
24
|
+
You can also run Ruby code without any input by prepending a `! `:
|
25
|
+
$ ru '! 2 + 3'
|
26
|
+
5
|
27
|
+
|
28
|
+
The code argument is run as if it has `$stdin.each_line.map(&:chomp).` prepended to it. The result is converted to a string and printed. So, if you run `ru 'map(:to_i).sum'`, you can think of it as `puts $stdin.each_line.map(&:chomp).map(:to_i).sum`.
|
29
|
+
|
30
|
+
In addition to the methods provided by Ruby Core and Active Support, Ru provides other methods for performing transformations, like `each_line`, `files`, and `grep`.
|
31
|
+
|
32
|
+
To read more, see the README:
|
33
|
+
https://github.com/tombenner/ru
|
data/doc/logo.png
ADDED
Binary file
|
@@ -0,0 +1,46 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../
|
3
|
+
specs:
|
4
|
+
ru2 (2.1.4)
|
5
|
+
activesupport (>= 3.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (3.2.22.5)
|
11
|
+
i18n (~> 0.6, >= 0.6.4)
|
12
|
+
multi_json (~> 1.0)
|
13
|
+
appraisal (1.0.3)
|
14
|
+
bundler
|
15
|
+
rake
|
16
|
+
thor (>= 0.14.0)
|
17
|
+
diff-lcs (1.2.5)
|
18
|
+
i18n (0.7.0)
|
19
|
+
multi_json (1.12.1)
|
20
|
+
rake (12.0.0)
|
21
|
+
rspec (3.5.0)
|
22
|
+
rspec-core (~> 3.5.0)
|
23
|
+
rspec-expectations (~> 3.5.0)
|
24
|
+
rspec-mocks (~> 3.5.0)
|
25
|
+
rspec-core (3.5.4)
|
26
|
+
rspec-support (~> 3.5.0)
|
27
|
+
rspec-expectations (3.5.0)
|
28
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
29
|
+
rspec-support (~> 3.5.0)
|
30
|
+
rspec-mocks (3.5.0)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.5.0)
|
33
|
+
rspec-support (3.5.0)
|
34
|
+
thor (0.19.4)
|
35
|
+
|
36
|
+
PLATFORMS
|
37
|
+
ruby
|
38
|
+
|
39
|
+
DEPENDENCIES
|
40
|
+
activesupport (~> 3.0)
|
41
|
+
appraisal (~> 1.0)
|
42
|
+
rspec (~> 3.1)
|
43
|
+
ru2!
|
44
|
+
|
45
|
+
BUNDLED WITH
|
46
|
+
1.13.6
|
@@ -0,0 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../
|
3
|
+
specs:
|
4
|
+
ru2 (2.1.4)
|
5
|
+
activesupport (>= 3.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (4.2.7.1)
|
11
|
+
i18n (~> 0.7)
|
12
|
+
json (~> 1.7, >= 1.7.7)
|
13
|
+
minitest (~> 5.1)
|
14
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
15
|
+
tzinfo (~> 1.1)
|
16
|
+
appraisal (1.0.3)
|
17
|
+
bundler
|
18
|
+
rake
|
19
|
+
thor (>= 0.14.0)
|
20
|
+
diff-lcs (1.2.5)
|
21
|
+
i18n (0.7.0)
|
22
|
+
json (1.8.3)
|
23
|
+
minitest (5.10.1)
|
24
|
+
rake (12.0.0)
|
25
|
+
rspec (3.5.0)
|
26
|
+
rspec-core (~> 3.5.0)
|
27
|
+
rspec-expectations (~> 3.5.0)
|
28
|
+
rspec-mocks (~> 3.5.0)
|
29
|
+
rspec-core (3.5.4)
|
30
|
+
rspec-support (~> 3.5.0)
|
31
|
+
rspec-expectations (3.5.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.5.0)
|
34
|
+
rspec-mocks (3.5.0)
|
35
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
36
|
+
rspec-support (~> 3.5.0)
|
37
|
+
rspec-support (3.5.0)
|
38
|
+
thor (0.19.4)
|
39
|
+
thread_safe (0.3.5)
|
40
|
+
tzinfo (1.2.2)
|
41
|
+
thread_safe (~> 0.1)
|
42
|
+
|
43
|
+
PLATFORMS
|
44
|
+
ruby
|
45
|
+
|
46
|
+
DEPENDENCIES
|
47
|
+
activesupport (~> 4.0)
|
48
|
+
appraisal (~> 1.0)
|
49
|
+
rspec (~> 3.1)
|
50
|
+
ru2!
|
51
|
+
|
52
|
+
BUNDLED WITH
|
53
|
+
1.13.6
|
@@ -0,0 +1,52 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../
|
3
|
+
specs:
|
4
|
+
ru2 (2.1.4)
|
5
|
+
activesupport (>= 3.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (5.0.0.1)
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
+
i18n (~> 0.7)
|
13
|
+
minitest (~> 5.1)
|
14
|
+
tzinfo (~> 1.1)
|
15
|
+
appraisal (1.0.3)
|
16
|
+
bundler
|
17
|
+
rake
|
18
|
+
thor (>= 0.14.0)
|
19
|
+
concurrent-ruby (1.0.2)
|
20
|
+
diff-lcs (1.2.5)
|
21
|
+
i18n (0.7.0)
|
22
|
+
minitest (5.10.1)
|
23
|
+
rake (12.0.0)
|
24
|
+
rspec (3.5.0)
|
25
|
+
rspec-core (~> 3.5.0)
|
26
|
+
rspec-expectations (~> 3.5.0)
|
27
|
+
rspec-mocks (~> 3.5.0)
|
28
|
+
rspec-core (3.5.4)
|
29
|
+
rspec-support (~> 3.5.0)
|
30
|
+
rspec-expectations (3.5.0)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.5.0)
|
33
|
+
rspec-mocks (3.5.0)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.5.0)
|
36
|
+
rspec-support (3.5.0)
|
37
|
+
thor (0.19.4)
|
38
|
+
thread_safe (0.3.5)
|
39
|
+
tzinfo (1.2.2)
|
40
|
+
thread_safe (~> 0.1)
|
41
|
+
|
42
|
+
PLATFORMS
|
43
|
+
ruby
|
44
|
+
|
45
|
+
DEPENDENCIES
|
46
|
+
activesupport (~> 5.0)
|
47
|
+
appraisal (~> 1.0)
|
48
|
+
rspec (~> 3.1)
|
49
|
+
ru2!
|
50
|
+
|
51
|
+
BUNDLED WITH
|
52
|
+
1.13.6
|