pry-theme 1.0.3 → 1.1.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: 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