jazz_fingers 1.0.0 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f303845ae64b80312267fb5d81515ecaa31b0de3
4
- data.tar.gz: 63d21f69ea114302c01cbe867abb6dfec829a9ed
3
+ metadata.gz: aaecd076918e8c0a873af5007079f239c6da8b94
4
+ data.tar.gz: 19fb8b5fdb8ef30f55e9737f9bcb6344dc2253b3
5
5
  SHA512:
6
- metadata.gz: 3af3c692c957104534bf4ce2c1bab348c936b635d817e21a460ee27787c0161b25edacba4c845e6238bf6ff82e41beab0e36dd2c340c88e665f32e92d754c0bf
7
- data.tar.gz: 9fba66e645e51368223c0b2d0296c6b0ca2e477890a8719cf1c05f791dafcb4d5760e320bb94f579a1033c39236159493142c0ea006c65341c903ca0e358704b
6
+ metadata.gz: f6e8dc5f3708373499ac583f108d7fd55ae4b6efca65a5af5b8c65f1345ce49300ef2d832a6556aa1ef03c39f89a7581b65c67c45ad575d8a4cb8bbf7d61a58d
7
+ data.tar.gz: 52ca34d63cbb53f6580728581edd113ea56b588ed9addbceea459f72327172243c004e0dcd8ca810d04bc934f3259322894b50199b922e60f6d2cb9889382158
data/.hound.yml CHANGED
@@ -10,9 +10,6 @@ Style/Encoding:
10
10
  Style/FormatString:
11
11
  Enabled: false
12
12
 
13
- Style/HashSyntax:
14
- EnforcedStyle: hash_rockets
15
-
16
13
  Style/SignalException:
17
14
  EnforcedStyle: only_raise
18
15
 
data/.rubocop.yml CHANGED
@@ -10,9 +10,6 @@ Style/Encoding:
10
10
  Style/FormatString:
11
11
  Enabled: false
12
12
 
13
- Style/HashSyntax:
14
- EnforcedStyle: hash_rockets
15
-
16
13
  Style/SignalException:
17
14
  EnforcedStyle: only_raise
18
15
 
data/CHANGELOG.md CHANGED
@@ -1,7 +1,20 @@
1
+ ## 2.0.0 (2015-05-31)
2
+
3
+ * Add alias to the most used commands
4
+ * Update [pry-byebug][pry-byebug] to ~> v3.1
5
+ * Improve abstraction by creating models to handle specific responsibilities
6
+ * Add configuration to enable/disable [pry-coolline][pry-coolline]
7
+ * Add configuration to enable/disable [awesome_print][awesome_print]
8
+ * Remove [pry-rails][pry-rails] dependency
9
+ * Remove [railties][railties] dependency
10
+
11
+ ## 1.0.0 (2015-02-05)
12
+ * Downgrade [pry-byebug][pry-byebug] to v1.3.3
13
+
1
14
  ## 0.5.5 (2015-02-03)
2
15
 
3
16
  * Update [pry-byebug][pry-byebug] to v2.0.0
4
- * Update [awesome-print][awesome-print] to v1.6.1
17
+ * Update [awesome_print][awesome_print] to v1.6.1
5
18
 
6
19
  ## 0.5.4 (2014-11-06)
7
20
 
@@ -139,3 +152,4 @@
139
152
  [pry-debugger]: https://github.com/nixme/pry-debugger
140
153
  [pry-rails]: https://github.com/rweng/pry-rails
141
154
  [pry-byebug]: https://github.com/deivid-rodriguez/pry-byebug
155
+ [railties]: https://github.com/rails/rails
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source 'http://rubygems.org'
1
+ source "http://rubygems.org"
2
2
 
3
3
  gemspec
data/README.md CHANGED
@@ -3,16 +3,14 @@ Jazz Fingers
3
3
 
4
4
  This repo is a fork, with updates and bug fixes based on [`jazz_hands`](https://github.com/nixme/jazz_hands).
5
5
 
6
- Spending hours in the rails console? Spruce it up and show off those
7
- hard-working hands!
6
+ Spending hours in the pry console? Spruce it up and show off those
7
+ hard-working fingers!
8
8
 
9
9
  **jazz_fingers** is an opinionated set of console-related gems and a bit of glue:
10
10
 
11
11
  * [**Pry**][pry] for a powerful shell alternative to IRB.
12
12
  * [**Awesome Print**][awesome_print] for stylish pretty print.
13
13
  * [**Hirb**][hirb] for tabular collection output.
14
- * [**Pry Rails**][pry-rails] for additional commands (`show-routes`,
15
- `show-models`, `show-middleware`) in the Rails console.
16
14
  * [**Pry Doc**][pry-doc] to browse Ruby source, including C, directly from the
17
15
  console.
18
16
  * [**Pry Git**][pry-git] to teach the console about git. Diffs, blames, and
@@ -23,7 +21,7 @@ hard-working hands!
23
21
 
24
22
  ## Usage
25
23
 
26
- Ruby 2.0.0+, Rails 3 or 4 only. Add to your project Gemfile:
24
+ Ruby 2.0.0+. Add to your project Gemfile:
27
25
 
28
26
  ```ruby
29
27
  group :development, :test do
@@ -31,7 +29,7 @@ group :development, :test do
31
29
  end
32
30
  ```
33
31
 
34
- That's it. Run `rails console` as usual.
32
+ That's it. Run `pry` as usual.
35
33
 
36
34
  [Hirb][hirb] isn't enabled by default. To use, run `Hirb.enable` in the console.
37
35
 
@@ -43,12 +41,18 @@ X) will work but is not recommended.
43
41
 
44
42
  ## Options
45
43
 
46
- Change the following options by creating an initializer in your Rails project
44
+ Change the following options by creating an initializer
47
45
  Example `config/initializers/jazz_fingers.rb`:
48
46
 
49
47
  ```ruby
50
48
  if defined?(JazzFingers)
51
- JazzFingers.colored_prompt = false
49
+ JazzFingers.configure do |config|
50
+ config.colored_prompt = false
51
+ config.awesome_print = false
52
+ config.coolline = false
53
+ end
54
+
55
+ require 'jazz_fingers/setup'
52
56
  end
53
57
  ```
54
58
 
@@ -70,7 +74,6 @@ mixed encodings.
70
74
  [pry]: http://pry.github.com
71
75
  [awesome_print]: https://github.com/michaeldv/awesome_print
72
76
  [hirb]: https://github.com/cldwalker/hirb
73
- [pry-rails]: https://github.com/rweng/pry-rails
74
77
  [pry-doc]: https://github.com/pry/pry-doc
75
78
  [pry-git]: https://github.com/pry/pry-git
76
79
  [pry-remote]: https://github.com/Mon-Ouie/pry-remote
data/Rakefile CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'bundler/gem_tasks'
3
+ require "bundler/gem_tasks"
data/jazz_fingers.gemspec CHANGED
@@ -1,32 +1,31 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- require File.expand_path('../lib/jazz_fingers/version', __FILE__)
3
+ require File.expand_path("../lib/jazz_fingers/version", __FILE__)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
- gem.name = 'jazz_fingers'
6
+ gem.name = "jazz_fingers"
7
7
  gem.version = JazzFingers::VERSION
8
- gem.author = 'Paulo Henrique Lopes Ribeiro'
9
- gem.email = 'plribeiro3000@gmail.com'
10
- gem.license = 'MIT'
11
- gem.homepage = 'https://github.com/plribeiro3000/jazz_fingers'
12
- gem.summary = 'Exercise those fingers. Pry-based enhancements for the default Rails console.'
8
+ gem.author = "Paulo Henrique Lopes Ribeiro"
9
+ gem.email = "plribeiro3000@gmail.com"
10
+ gem.license = "MIT"
11
+ gem.homepage = "https://github.com/plribeiro3000/jazz_fingers"
12
+ gem.summary = "Exercise those fingers. Pry-based enhancements for the default Rails console."
13
13
  gem.description = "Spending hours in the rails console? Spruce it up and show off those hard-working hands! jazz_fingers replaces IRB with Pry, improves output through awesome_print, and has some other goodies up its sleeves."
14
14
 
15
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
15
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
16
16
  gem.files = `git ls-files`.split("\n")
17
17
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- gem.require_paths = ['lib']
18
+ gem.require_paths = ["lib"]
19
19
 
20
20
  # Dependencies
21
- gem.required_ruby_version = '>= 2.0'
22
- gem.add_runtime_dependency 'pry', '~> 0.10'
23
- gem.add_runtime_dependency 'pry-rails', '~> 0.3'
24
- gem.add_runtime_dependency 'pry-doc', '~> 0.6'
25
- gem.add_runtime_dependency 'pry-git', '~> 0.2'
26
- gem.add_runtime_dependency 'pry-remote', '>= 0.1.7'
27
- gem.add_runtime_dependency 'pry-byebug', '1.3.3'
28
- gem.add_runtime_dependency 'hirb', '~> 0.7'
29
- gem.add_runtime_dependency 'pry-coolline', '~> 0.2'
30
- gem.add_runtime_dependency 'awesome_print', '~> 1.6.1'
31
- gem.add_runtime_dependency 'railties', '>= 3.0', '< 5.0'
21
+ gem.required_ruby_version = ">= 2.0"
22
+ gem.add_runtime_dependency "pry", "~> 0.10"
23
+ gem.add_runtime_dependency "pry-doc", "~> 0.6"
24
+ gem.add_runtime_dependency "pry-git", "~> 0.2"
25
+ gem.add_runtime_dependency "pry-remote", ">= 0.1.7"
26
+ gem.add_runtime_dependency "pry-byebug", "~> 3.1"
27
+ gem.add_runtime_dependency "hirb", "~> 0.7"
28
+ gem.add_runtime_dependency "pry-coolline", "~> 0.2"
29
+ gem.add_runtime_dependency "awesome_print", "~> 1.6"
30
+ gem.add_development_dependency "rubocop"
32
31
  end
@@ -0,0 +1,40 @@
1
+ module JazzFingers
2
+ class Configuration
3
+ attr_writer :colored_prompt, :prompt_separator, :coolline, :awesome_print
4
+
5
+ # Color the prompt?
6
+ #
7
+ # A different setting than Pry.color since some may like colored output, but a
8
+ # plain prompt.
9
+ #
10
+ # Default: 'true' for GNU readline or rb-readline which correctly count line
11
+ # widths with color codes when using \001 and \002 hints. 'false' for
12
+ # libedit-based wrapper (standard on OS X unless ruby is explicitly compiled
13
+ # otherwise).
14
+ def colored_prompt
15
+ return (Readline::VERSION !~ /EditLine/) && Pry.color if @colored_prompt.nil?
16
+
17
+ @colored_prompt
18
+ end
19
+
20
+ # Separator between application name and input in the prompt.
21
+ #
22
+ # Default: right angle quote, or '>' when using rb-readline which doesn't
23
+ # handle mixed encodings well.
24
+ def prompt_separator
25
+ @prompt_separator ||= defined?(RbReadline) ? ">" : "\u00BB"
26
+ end
27
+
28
+ def coolline?
29
+ return false if @coolline.nil?
30
+
31
+ @coolline
32
+ end
33
+
34
+ def awesome_print?
35
+ return true if @awesome_print.nil?
36
+
37
+ @awesome_print
38
+ end
39
+ end
40
+ end
@@ -1,18 +1,15 @@
1
- require 'hirb'
2
- require 'pry'
3
-
4
1
  class << Hirb::View
5
2
  alias_method :enable_output_method_existing, :enable_output_method
6
3
  alias_method :disable_output_method_existing, :disable_output_method
7
4
 
8
5
  def enable_output_method
9
6
  @output_method = true
10
- JazzFingers._hirb_output = true
7
+ JazzFingers.config.awesome_print = true
11
8
  enable_output_method_existing
12
9
  end
13
10
 
14
11
  def disable_output_method
15
- JazzFingers._hirb_output = false
12
+ JazzFingers.config.awesome_print = false
16
13
  disable_output_method_existing
17
14
  end
18
15
  end
@@ -0,0 +1,27 @@
1
+ require "pry-coolline"
2
+ require "coderay"
3
+
4
+ module JazzFingers
5
+ class Input
6
+ class << self
7
+ def config
8
+ {
9
+ cool: cool_input
10
+ }
11
+ end
12
+
13
+ def cool_input
14
+ Coolline.new do |c|
15
+ c.transform_proc = proc do
16
+ CodeRay.scan(c.line, :ruby).term
17
+ end
18
+
19
+ c.completion_proc = proc do
20
+ word = c.completed_word
21
+ Object.constants.map(&:to_s).select { |w| w.start_with?(word) }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ require "awesome_print"
2
+
3
+ module JazzFingers
4
+ class Print
5
+ class << self
6
+ def config
7
+ lambda do |_output, value, pry_object|
8
+ return if Hirb::View.view_or_page_output(value)
9
+ pretty = value.ai(indent: 2)
10
+ pry_object.pager.page("=> #{pretty}")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,76 @@
1
+ module JazzFingers
2
+ class Prompt
3
+ def initialize(options = {})
4
+ @colored = options.fetch(:colored)
5
+ @separator = options.fetch(:separator)
6
+ end
7
+
8
+ def colored?
9
+ @colored
10
+ end
11
+
12
+ def red_text(text)
13
+ return text.to_s unless colored?
14
+
15
+ "\001\e[0;31m\002#{text}\001\e[0m\002"
16
+ end
17
+
18
+ def blue_text(text)
19
+ return text.to_s unless colored?
20
+
21
+ "\001\e[0;34m\002#{text}\001\e[0m\002"
22
+ end
23
+
24
+ def bold_text(text)
25
+ return text.to_s unless colored?
26
+
27
+ "\001\e[1m\002#{text}\001\e[0m\002"
28
+ end
29
+
30
+ def separator
31
+ red_text(@separator)
32
+ end
33
+
34
+ def name
35
+ if respond_to?(:app)
36
+ name = "(#{app.class.parent_name.underscore})"
37
+ else
38
+ name = "(jazz_fingers)"
39
+ end
40
+
41
+ blue_text(name)
42
+ end
43
+
44
+ def line_number(pry)
45
+ "[#{bold_text(pry.input_array.size)}]"
46
+ end
47
+
48
+ def text(object, level)
49
+ level = 0 if level < 0
50
+ text = Pry.view_clip(object)
51
+
52
+ if text == "main"
53
+ ""
54
+ else
55
+ "(#{'../' * level}#{text})"
56
+ end
57
+ end
58
+
59
+ def main_prompt
60
+ lambda do |_object, _level, pry|
61
+ "#{RUBY_VERSION} #{name}#{line_number(pry)} #{separator} "
62
+ end
63
+ end
64
+
65
+ def block_prompt
66
+ lambda do |_object, level, pry|
67
+ spaces = " " * level
68
+ "#{RUBY_VERSION} #{name}#{line_number(pry)} * #{spaces}"
69
+ end
70
+ end
71
+
72
+ def config
73
+ [main_prompt, block_prompt]
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,9 @@
1
+ # JazzFingers dance
2
+ Pry.print = JazzFingers.print if JazzFingers.config.awesome_print?
3
+ Pry.prompt = JazzFingers.prompt
4
+ Pry.input = JazzFingers.input if JazzFingers.config.coolline?
5
+
6
+ # Command Shortcuts
7
+ Pry.commands.alias_command('c', 'continue')
8
+ Pry.commands.alias_command('s', 'step')
9
+ Pry.commands.alias_command('n', 'next')
@@ -1,3 +1,3 @@
1
1
  module JazzFingers
2
- VERSION = '1.0.0'
2
+ VERSION = "2.0.0"
3
3
  end
data/lib/jazz_fingers.rb CHANGED
@@ -1,34 +1,38 @@
1
- require 'jazz_fingers/version'
2
- require 'jazz_fingers/railtie' if defined?(Rails)
3
- require 'active_support'
4
- require 'readline'
1
+ require "hirb"
2
+ require "pry"
3
+ require "pry-doc"
4
+ require "pry-git"
5
+ require "pry-remote"
6
+ require "readline"
7
+ require "jazz_fingers/hirb_ext"
5
8
 
6
9
  module JazzFingers
10
+ autoload :Configuration, "jazz_fingers/configuration"
11
+ autoload :Input, "jazz_fingers/input"
12
+ autoload :Print, "jazz_fingers/print"
13
+ autoload :Prompt, "jazz_fingers/prompt"
14
+ autoload :VERSION, "jazz_fingers/version"
7
15
 
8
- ### Options ###
16
+ class << self
17
+ def print
18
+ @print ||= Print.config
19
+ end
9
20
 
10
- # Color the prompt?
11
- #
12
- # A different setting than Pry.color since some may like colored output, but a
13
- # plain prompt.
14
- #
15
- # Default: 'true' for GNU readline or rb-readline which correctly count line
16
- # widths with color codes when using \001 and \002 hints. 'false' for
17
- # libedit-based wrapper (standard on OS X unless ruby is explicitly compiled
18
- # otherwise).
19
- #
20
- mattr_accessor :colored_prompt
21
- self.colored_prompt = (Readline::VERSION !~ /EditLine/)
21
+ def prompt
22
+ @prompt ||= Prompt.new(colored: config.colored_prompt, separator: config.prompt_separator)
23
+ @prompt.config
24
+ end
22
25
 
23
- # Separator between application name and input in the prompt.
24
- #
25
- # Default: right angle quote, or '>' when using rb-readline which doesn't
26
- # handle mixed encodings well.
27
- #
28
- mattr_accessor :prompt_separator
29
- self.prompt_separator = defined?(RbReadline) ? '>' : "\u00BB"
26
+ def input
27
+ @input ||= Input.config
28
+ end
30
29
 
31
- ### Internal methods ###
30
+ def configure
31
+ yield @config ||= Configuration.new
32
+ end
32
33
 
33
- mattr_accessor :_hirb_output
34
+ def config
35
+ @config ||= Configuration.new
36
+ end
37
+ end
34
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jazz_fingers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Henrique Lopes Ribeiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-05 00:00:00.000000000 Z
11
+ date: 2015-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.10'
27
- - !ruby/object:Gem::Dependency
28
- name: pry-rails
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.3'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.3'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: pry-doc
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +70,16 @@ dependencies:
84
70
  name: pry-byebug
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - '='
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 1.3.3
75
+ version: '3.1'
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - '='
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 1.3.3
82
+ version: '3.1'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: hirb
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -128,34 +114,28 @@ dependencies:
128
114
  requirements:
129
115
  - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: 1.6.1
117
+ version: '1.6'
132
118
  type: :runtime
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: 1.6.1
124
+ version: '1.6'
139
125
  - !ruby/object:Gem::Dependency
140
- name: railties
126
+ name: rubocop
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
129
  - - ">="
144
130
  - !ruby/object:Gem::Version
145
- version: '3.0'
146
- - - "<"
147
- - !ruby/object:Gem::Version
148
- version: '5.0'
149
- type: :runtime
131
+ version: '0'
132
+ type: :development
150
133
  prerelease: false
151
134
  version_requirements: !ruby/object:Gem::Requirement
152
135
  requirements:
153
136
  - - ">="
154
137
  - !ruby/object:Gem::Version
155
- version: '3.0'
156
- - - "<"
157
- - !ruby/object:Gem::Version
158
- version: '5.0'
138
+ version: '0'
159
139
  description: Spending hours in the rails console? Spruce it up and show off those
160
140
  hard-working hands! jazz_fingers replaces IRB with Pry, improves output through
161
141
  awesome_print, and has some other goodies up its sleeves.
@@ -178,8 +158,12 @@ files:
178
158
  - Rakefile
179
159
  - jazz_fingers.gemspec
180
160
  - lib/jazz_fingers.rb
161
+ - lib/jazz_fingers/configuration.rb
181
162
  - lib/jazz_fingers/hirb_ext.rb
182
- - lib/jazz_fingers/railtie.rb
163
+ - lib/jazz_fingers/input.rb
164
+ - lib/jazz_fingers/print.rb
165
+ - lib/jazz_fingers/prompt.rb
166
+ - lib/jazz_fingers/setup.rb
183
167
  - lib/jazz_fingers/version.rb
184
168
  homepage: https://github.com/plribeiro3000/jazz_fingers
185
169
  licenses:
@@ -1,70 +0,0 @@
1
- require 'awesome_print'
2
- require 'pry'
3
- require 'pry-coolline'
4
- require 'pry-doc'
5
- require 'pry-git'
6
- require 'pry-rails'
7
- require 'pry-remote'
8
- require 'jazz_fingers/hirb_ext'
9
-
10
- module JazzFingers
11
- class Railtie < Rails::Railtie
12
- initializer 'jazz_fingers.initialize' do |app|
13
- silence_warnings do
14
- # We're managing the loading of plugins. So don't let pry autoload them.
15
- Pry.config.should_load_plugins = false
16
-
17
- # Use awesome_print for output, but keep pry's pager. If Hirb is
18
- # enabled, try printing with it first.
19
- Pry.config.print = ->(_output, value, _pry_) do
20
- return if JazzFingers._hirb_output && Hirb::View.view_or_page_output(value)
21
- pretty = value.ai(indent: 2)
22
- _pry_.pager.page("=> #{pretty}")
23
- end
24
-
25
- # Friendlier prompt - line number, app name, nesting levels look like
26
- # directory paths.
27
- #
28
- # Heavy use of lazy lambdas so configuration (like Pry.color) can be
29
- # changed later or even during console usage.
30
- #
31
- # Custom color helpers using hints \001 and \002 so that good readline
32
- # libraries (GNU, rb-readline) correctly ignore color codes when
33
- # calculating line length.
34
-
35
- color = -> { Pry.color && JazzFingers.colored_prompt }
36
- red = ->(text) { color[] ? "\001\e[0;31m\002#{text}\001\e[0m\002" : text.to_s }
37
- blue = ->(text) { color[] ? "\001\e[0;34m\002#{text}\001\e[0m\002" : text.to_s }
38
- bold = ->(text) { color[] ? "\001\e[1m\002#{text}\001\e[0m\002" : text.to_s }
39
-
40
- separator = -> { red.(JazzFingers.prompt_separator) }
41
- name = app.class.parent_name.underscore
42
- colored_name = -> { blue.(name) }
43
-
44
- line = ->(pry) { "[#{bold.(pry.input_array.size)}] " }
45
- target_string = ->(object, level) do
46
- level = 0 if level < 0
47
- unless (string = Pry.view_clip(object)) == 'main'
48
- "(#{'../' * level}#{string})"
49
- else
50
- ''
51
- end
52
- end
53
-
54
- Pry.config.prompt = [
55
- ->(object, level, pry) do # Main prompt
56
- "#{line.(pry)}#{colored_name.()}#{target_string.(object, level)} #{separator.()} "
57
- end,
58
- ->(object, level, pry) do # Wait prompt in multiline input
59
- spaces = ' ' * (
60
- "[#{pry.input_array.size}] ".size + # Uncolored `line.(pry)`
61
- name.size +
62
- target_string.(object, level).size
63
- )
64
- "#{spaces} #{separator.()} "
65
- end
66
- ]
67
- end
68
- end
69
- end
70
- end