pry-try 0.1.3 → 0.2.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 +4 -4
- data/README.md +20 -6
- data/exe/pry-try +43 -2
- data/lib/pry-try/version.rb +1 -1
- data/pry-try.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be4107b9a3260e37eab98cd327a3ce9cd76133c
|
4
|
+
data.tar.gz: ecb09c7a053714d9ecdb747ea6d9de8b52c9fa65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a493f0705ccdeadf414858b67727abcf293c5b627eb40d6f3edb29fd907c6bf5357b24f1ea0c85817aca04d1c22d551c3b3674cef504b0ae5c1a2e3750e5172a
|
7
|
+
data.tar.gz: b043e9a41d84205dca42dfe001946af3817fe591cfe07cc27a23cabb4f22abfe10ea9d00401bb5ff6cc67dba190904f06e34f1cc4bd4f3c8fa9f00fc47225f6c
|
data/README.md
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
# pry-try
|
2
2
|
|
3
|
-
|
3
|
+
Open a pry-session with the gems you want to try.
|
4
4
|
|
5
5
|
## Usage
|
6
6
|
|
7
|
-
This gem should
|
7
|
+
This gem should supports the following usecases:
|
8
8
|
|
9
9
|
### pipe-in a script
|
10
10
|
|
11
11
|
```bash
|
12
|
-
# piped-in content is evaluated
|
12
|
+
# piped-in content is evaluated in a new pry-session:
|
13
13
|
$ echo '@a = 1' | pry-try
|
14
14
|
[1] pry(main)> @a =1
|
15
|
+
1
|
15
16
|
[2] pry(main)>
|
16
17
|
|
17
18
|
# handy to share scripts with others:
|
@@ -20,32 +21,45 @@ $ curl <path-to-raw-gist> | pry-try
|
|
20
21
|
|
21
22
|
### try a gem
|
22
23
|
|
24
|
+
Start a new pry-session with the requested gems loaded:
|
25
|
+
|
23
26
|
```bash
|
24
27
|
$ pry-try activesupport
|
25
|
-
Fetching gem metadata from https://rubygems.org
|
28
|
+
Fetching gem metadata from https://rubygems.org/.........
|
26
29
|
Fetching version metadata from https://rubygems.org/.
|
27
30
|
Resolving dependencies...
|
28
31
|
Using concurrent-ruby 1.0.5
|
29
32
|
Using i18n 0.8.1
|
30
33
|
Using minitest 5.10.1
|
31
34
|
Using thread_safe 0.3.6
|
35
|
+
Using coderay 1.1.1
|
36
|
+
Using method_source 0.8.2
|
37
|
+
Using slop 3.6.0
|
32
38
|
Using bundler 1.14.5
|
33
39
|
Using tzinfo 1.2.2
|
40
|
+
Using pry 0.10.4
|
34
41
|
Using activesupport 5.0.2
|
35
|
-
=> [Gem::Dependency.new("activesupport", Gem::Requirement.new([">= 0"]), :runtime)]
|
36
42
|
[2] pry(main)> 1.second
|
37
43
|
=> 1 second
|
38
44
|
```
|
39
45
|
|
46
|
+
Request a specific version, like you would do in a Gemfile:
|
47
|
+
```bash
|
48
|
+
$ pry-try activesupport '~>4.2'
|
49
|
+
# or multiple gems:
|
50
|
+
$ pry-try activesupport '~>4.2' redis
|
51
|
+
```
|
52
|
+
|
40
53
|
### try a gem within a pry-session
|
41
54
|
|
42
55
|
```bash
|
43
56
|
# given
|
44
57
|
$ pry
|
45
|
-
[1] pry(main)> try 'activesupport'
|
58
|
+
[1] pry(main)> .pry-try 'activesupport'
|
46
59
|
...
|
47
60
|
[2] pry(main)> 1.second
|
48
61
|
=> 1 second
|
62
|
+
# ^D lets you return to the original pry-session
|
49
63
|
```
|
50
64
|
|
51
65
|
|
data/exe/pry-try
CHANGED
@@ -1,7 +1,48 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
VERSION_LIKE_RE = [Gem::Requirement::PATTERN, /v?\d+\.\d+/, /^\h+$/].freeze
|
4
|
+
|
5
|
+
def parse_args(args)
|
6
|
+
args.each_with_object([]) do |arg, obj|
|
7
|
+
matches_arg = arg.method(:match).to_proc
|
8
|
+
if VERSION_LIKE_RE.detect(&matches_arg)
|
9
|
+
obj[-1] << arg
|
10
|
+
else
|
11
|
+
obj << [arg]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
REQUIREMENTS = {
|
17
|
+
'rails' => %w(rails/all active_support/all),
|
18
|
+
'activerecord' => %w(active_record),
|
19
|
+
'activesupport' => %w(active_support/all),
|
20
|
+
}.freeze
|
21
|
+
|
22
|
+
gems = parse_args(ARGV).map do |gem|
|
23
|
+
if r = REQUIREMENTS[gem.first]
|
24
|
+
gem << {:require => r}
|
25
|
+
else
|
26
|
+
gem
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
3
30
|
if $stdin.tty?
|
4
|
-
|
31
|
+
require 'tempfile'
|
32
|
+
require 'yaml'
|
33
|
+
script = Tempfile.new.tap do |f|
|
34
|
+
File.write(f, <<CODEZ.gsub(/\n+ *(?=\S)/, ';'))
|
35
|
+
require 'bundler/inline'
|
36
|
+
|
37
|
+
gemfile(true) do
|
38
|
+
source 'https://rubygems.org'
|
39
|
+
gem 'pry'
|
40
|
+
YAML.load(#{YAML.dump(gems).inspect}).each {|gargs| gem(*gargs) }
|
41
|
+
end
|
42
|
+
$stdin = $stdin.reopen '/dev/tty';
|
43
|
+
CODEZ
|
44
|
+
end
|
45
|
+
exec %{cat #{script.path} | pry}
|
5
46
|
else
|
6
|
-
exec %{script
|
47
|
+
exec %{script=$(cat;echo; echo '$stdin = $stdin.reopen "/dev/tty";'); printf "${script}" | pry}
|
7
48
|
end
|
data/lib/pry-try/version.rb
CHANGED
data/pry-try.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
+
spec.add_dependency "pry", "~>0.10"
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.14"
|
25
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry-try
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gert Goet
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pry
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.10'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.10'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|