pry-theme 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 657593d26a0afa7197bdeda4e33dac70dd3d13b5
4
- data.tar.gz: eb3bf3c8dbc7c5a7f16b97027f7ea856d1efb33a
3
+ metadata.gz: 915606c125b12d2db78eb2fbcc80a733abb5d97e
4
+ data.tar.gz: c74ffb434932c0e71a84d9892e677b88398ac169
5
5
  SHA512:
6
- metadata.gz: 5f3b617dab0c190ab3bbad3c8d00914f528b9235fecd8ad8895f9085d7243f71d79dfdcaef26ac5690d531ca2da841d45cc06e637456208f4d6c58edb074819b
7
- data.tar.gz: 08fa73ba0512df853a2892c5f264cb830c77a3575f0a7d6719767ee169efe58511a55e9d530ef0b93f7aac9af799cbf94b48b0f4085fed83235e7dec3b3caa96
6
+ metadata.gz: 8b85ec4855ee1e104b5c0df4ab64d470e8678112ca6b5ceef3087befed492010bb7b6f117c20cf93b9ccfcb8e35e4eeef8b7e55d2301893cdf7499a405d67360
7
+ data.tar.gz: b7b7f6c96befaeb1ffc5ad4d642b45fc204bd0cf76033075b2976e2c168465ddc31dcf0030fd7f3cbfe76324729d8e71573ddef57a46d27923eaf1368b417383
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Pry Theme changelog
2
2
  ===================
3
3
 
4
+ ### v1.1.0 (June 13, 2014)
5
+
6
+ * Added `theme_options` config hash. It is a general config for Pry Theme
7
+ * Added option that enables painting hash keys as symbols.
8
+ [→](https://github.com/kyrylo/pry-theme/issues/30)
9
+
10
+ ```ruby
11
+ {foo: 1, :bar => 2}
12
+ # ^ ^
13
+ # | |
14
+ # key symbol
15
+ ```
16
+
17
+ By default `foo` and `bar` have different colours. If you put this inside your
18
+ `.pryrc`, then the key will have the same colour as the symbol.
19
+
20
+ ```ruby
21
+ Pry.config.theme_options = {:paint_key_as_symbol => true}
22
+ ```
23
+
4
24
  ### v1.0.3 (May 12, 2014)
5
25
 
6
26
  * Fixed error when Pry.config.theme is set to a theme that doesn't exist
data/Gemfile CHANGED
@@ -1,2 +1,14 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
  gemspec
3
+
4
+ group :development, :test do
5
+ gem 'pry', '0.10.0rc1'
6
+ end
7
+
8
+ group :development do
9
+ gem 'rake', '~> 10.1'
10
+ end
11
+
12
+ group :test do
13
+ gem 'bacon', '~> 1.2'
14
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.3
1
+ 1.1.0
data/lib/pry-theme.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
 
3
+ require 'pry-theme/config'
3
4
  require 'pry-theme/theme_list'
4
5
  require 'pry-theme/when_started_hook'
5
6
  require 'pry-theme/hex'
@@ -142,7 +142,7 @@ module PryTheme
142
142
  opt.run do |opts, args|
143
143
 
144
144
  if opts.present?(:c)
145
- stagger_output Preview.new(ThemeList.current_theme).long
145
+ _pry_.pager.page Preview.new(ThemeList.current_theme).long
146
146
  elsif args.empty?
147
147
  output.puts ThemeList.current_theme.name
148
148
  end
@@ -166,7 +166,7 @@ module PryTheme
166
166
  ].each { |m| __send__(m, cmd) }
167
167
 
168
168
  cmd.add_callback(:empty) do
169
- stagger_output opts.help
169
+ _pry_.pager.page opts.help
170
170
  end
171
171
  end
172
172
 
@@ -183,15 +183,15 @@ module PryTheme
183
183
 
184
184
  def display_colors(color_model)
185
185
  case color_model
186
- when 256 then (stagger_output ColorTable.t256)
187
- when 16 then (stagger_output ColorTable.t16)
188
- when 8 then (stagger_output ColorTable.t8)
186
+ when 256 then _pry_.pager.page(ColorTable.t256)
187
+ when 16 then _pry_.pager.page(ColorTable.t16)
188
+ when 8 then _pry_.pager.page(ColorTable.t8)
189
189
  end
190
190
  end
191
191
 
192
192
  def show_local_list
193
193
  previews = ThemeList.themes.map { |theme| Preview.new(theme).short }
194
- stagger_output previews.join("\n")
194
+ _pry_.pager.page(previews.join("\n"))
195
195
  end
196
196
 
197
197
  def show_remote_list
@@ -216,7 +216,7 @@ module PryTheme
216
216
 
217
217
  out += response.body + "\n\n"
218
218
  }
219
- stagger_output out.chomp
219
+ _pry_.pager.page(out.chomp)
220
220
  end
221
221
 
222
222
  def json_body(address)
@@ -0,0 +1,35 @@
1
+ module PryTheme
2
+ class Config
3
+ class Executor
4
+ # @note The method amends the default behaviour of CodeRay.
5
+ #
6
+ # Sets the colour of the key token to the colour of the symbol token (akin to
7
+ # Pygments).
8
+ # @example
9
+ # {foo: 1, :bar => 2}
10
+ # # ^ ^
11
+ # # | |
12
+ # # key symbol
13
+ # Without this patch keys and symbols have generally different colours. It's
14
+ # impossible to set the colour of the key token, but with help of this method
15
+ # you can make it look like a symbol.
16
+ # @return [void]
17
+ # @see https://github.com/kyrylo/pry-theme/issues/30
18
+ def paint_key_as_symbol
19
+ token_colors = CodeRay::Encoders::Terminal::TOKEN_COLORS
20
+ token_colors[:key] = token_colors[:symbol]
21
+ end
22
+ end
23
+
24
+ def initialize(options)
25
+ @executor = Executor.new
26
+ @options = options
27
+ end
28
+
29
+ def apply
30
+ @options.each do |key, value|
31
+ @executor.__send__(key) if value
32
+ end
33
+ end
34
+ end
35
+ end
@@ -10,10 +10,16 @@ module PryTheme
10
10
  display_warning(_pry_) if Pry.config.theme
11
11
  ThemeList.activate_theme_intelligently
12
12
  end
13
+
14
+ apply_config
13
15
  end
14
16
 
15
17
  private
16
18
 
19
+ def apply_config
20
+ PryTheme::Config.new(Pry.config.theme_options).apply
21
+ end
22
+
17
23
  # Copy a default theme to theme directory, but only if it isn't there yet.
18
24
  def recreate_user_themes_from_default_ones
19
25
  FileUtils.mkdir_p(USER_THEMES_DIR) unless File.exist?(USER_THEMES_DIR)
data/pry-theme.gemspec CHANGED
@@ -12,10 +12,8 @@ Gem::Specification.new do |s|
12
12
  s.require_path = 'lib'
13
13
  s.files = `git ls-files`.split("\n")
14
14
 
15
- s.add_runtime_dependency 'json', '~> 1.8'
16
- s.add_runtime_dependency 'coderay', '~> 1.1'
15
+ s.add_dependency 'json', '~> 1.8'
16
+ s.add_dependency 'coderay', '~> 1.1'
17
17
 
18
- s.add_development_dependency 'bacon', '~> 1.2'
19
- s.add_development_dependency 'rake', '~> 10.1'
20
- s.add_development_dependency 'pry', '~> 0.9'
18
+ s.add_development_dependency 'bundler', '~> 1.0'
21
19
  end
@@ -82,6 +82,9 @@ describe PryTheme::Command::PryTheme do
82
82
  end
83
83
 
84
84
  describe "'colors' subcommand" do
85
+ before { Pry.config.color = true }
86
+ after { Pry.config.color = false }
87
+
85
88
  if ENV['TERM'] =~ /256color/
86
89
  it "displays colours accordingly to the terminal color support" do
87
90
  table = pry_eval('pry-theme colors')
@@ -0,0 +1,35 @@
1
+ require 'helper'
2
+
3
+ describe PryTheme::Config do
4
+ before do
5
+ @token_colors = CodeRay::Encoders::Terminal::TOKEN_COLORS
6
+ @old_key_token = @token_colors[:key]
7
+ @token_colors[:key].should != @token_colors[:symbol]
8
+ end
9
+
10
+ after do
11
+ CodeRay::Encoders::Terminal::TOKEN_COLORS[:key] = @old_key_token
12
+ end
13
+
14
+ describe "#apply" do
15
+ describe ":paint_key_as_symbol is true" do
16
+ before do
17
+ PryTheme::Config.new(paint_key_as_symbol: true).apply
18
+ end
19
+
20
+ it "sets the key token to the value of the symbol token" do
21
+ @token_colors[:key].should == @token_colors[:symbol]
22
+ end
23
+ end
24
+
25
+ describe ":paint_key_as symbol is false" do
26
+ before do
27
+ PryTheme::Config.new(paint_key_as_symbol: false).apply
28
+ end
29
+
30
+ it "doesn't set the key token to the value of the symbol token" do
31
+ @token_colors[:key].should != @token_colors[:symbol]
32
+ end
33
+ end
34
+ end
35
+ end
data/spec/helper.rb CHANGED
@@ -1,16 +1,13 @@
1
- require 'rubygems'
2
- require 'pry'
1
+ require 'bundler/setup'
3
2
  require 'pry/test/helper'
4
3
 
4
+ Bundler.require :default, :test
5
+
5
6
  Pry.config.theme = nil
6
7
  Pry.config.pager = false
7
8
 
8
- unless Object.const_defined? 'PryTheme'
9
- $:.unshift File.expand_path '../../lib', __FILE__
10
- require 'pry-theme'
11
- end
12
-
13
- require 'bacon'
14
-
15
- puts "Ruby: #{ RUBY_VERSION }; Ruby Engine: #{ defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby' }; " \
16
- "Pry Theme: #{ PryTheme::VERSION }"
9
+ puts(
10
+ "Ruby: #{RUBY_VERSION}; " +
11
+ "Ruby Engine: #{defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'}; " +
12
+ "Pry Theme: #{PryTheme::VERSION}"
13
+ )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyrylo Silin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
11
+ date: 2014-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -39,47 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bacon
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.2'
47
+ version: '1.0'
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
- version: '1.2'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '10.1'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '10.1'
69
- - !ruby/object:Gem::Dependency
70
- name: pry
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.9'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.9'
54
+ version: '1.0'
83
55
  description: The plugin enables color theme support for Pry.
84
56
  email: kyrylosilin@gmail.com
85
57
  executables: []
@@ -103,6 +75,7 @@ files:
103
75
  - lib/pry-theme/colors/color256.rb
104
76
  - lib/pry-theme/colors/color8.rb
105
77
  - lib/pry-theme/commands.rb
78
+ - lib/pry-theme/config.rb
106
79
  - lib/pry-theme/declaration.rb
107
80
  - lib/pry-theme/definition.rb
108
81
  - lib/pry-theme/formattable.rb
@@ -123,6 +96,7 @@ files:
123
96
  - spec/colors/color256_spec.rb
124
97
  - spec/colors/color8_spec.rb
125
98
  - spec/commands_spec.rb
99
+ - spec/config_spec.rb
126
100
  - spec/helper.rb
127
101
  - spec/hex_spec.rb
128
102
  - spec/rgb_spec.rb