pry-theme 0.0.8 → 0.0.9
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.
- data/CHANGELOG.md +16 -0
- data/README.md +14 -3
- data/examples/charcoal-black.prytheme +37 -0
- data/examples/github.prytheme +37 -0
- data/examples/monokai.prytheme +37 -0
- data/examples/pry-classic.prytheme +3 -3
- data/examples/pry-modern.prytheme +2 -2
- data/examples/railscasts.prytheme +37 -0
- data/examples/saturday.prytheme +37 -0
- data/examples/solarized.prytheme +37 -0
- data/examples/tomorrow.prytheme +37 -0
- data/examples/twilight.prytheme +37 -0
- data/examples/zenburn.prytheme +37 -0
- data/lib/pry-theme/commands.rb +73 -20
- data/lib/pry-theme/helper.rb +40 -6
- data/lib/pry-theme/palette.rb +2 -2
- data/lib/pry-theme/version.rb +1 -1
- data/lib/pry-theme/when_started_hook.rb +19 -4
- data/lib/pry-theme.rb +6 -5
- data/pry-theme.gemspec +3 -2
- metadata +27 -2
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
Pry Theme changelog
|
|
2
2
|
===================
|
|
3
3
|
|
|
4
|
+
### v0.0.9 (July 05, 2012)
|
|
5
|
+
|
|
6
|
+
* **HOT**: Added `--install` flag. Now, you can easily install Pry themes from
|
|
7
|
+
Pry Theme Collection via command line (`pry-theme -i nifty-theme`);
|
|
8
|
+
* Added pager for long output. Try `pry-theme -a 256` and you will immediately
|
|
9
|
+
notice the difference;
|
|
10
|
+
* Added more informative output for `--list` flag;
|
|
11
|
+
* Added a bunch of new default themes: solarized, zenburn, twilight, tomorrow,
|
|
12
|
+
saturday, railscasts, monokai, github and charcoal-black;
|
|
13
|
+
* Fixed wrong color name in 256-color palette (`pale_conflower_blue` →
|
|
14
|
+
`pale_cornflower_blue`);
|
|
15
|
+
* Fixed bug with respect to unwanted fall back to the `pry-classic` theme,
|
|
16
|
+
when a user tries to switch to nonexistent theme;
|
|
17
|
+
* Added a feature to `pry-theme` command: when a user invokes `pry-theme`
|
|
18
|
+
command without arguments, it returns name of the current theme.
|
|
19
|
+
|
|
4
20
|
### v0.0.8 (July 02, 2012)
|
|
5
21
|
|
|
6
22
|
* **IMPORTANT**: Changed directory where to store themes! Themes now live in
|
data/README.md
CHANGED
|
@@ -41,7 +41,7 @@ That's all! Launch your Pry and you will see the changes.
|
|
|
41
41
|
|
|
42
42
|
Pry Theme has a command-line interface available via Pry. Just launch Pry and
|
|
43
43
|
start working with it. For example, you can _temporary_ change themes on the
|
|
44
|
-
fly:
|
|
44
|
+
fly (only for the current session):
|
|
45
45
|
|
|
46
46
|
[1] pry(main)> pry-theme pry-classic
|
|
47
47
|
|
|
@@ -62,7 +62,11 @@ if you want to find some themes other than default ones.
|
|
|
62
62
|
|
|
63
63
|
Put your theme file in `$HOME/.pry/themes` directory.
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
If you don't want to bother with routine operations, you can install a theme
|
|
66
|
+
from the Collection with help of `pry-theme -i <name>` command. For example, you
|
|
67
|
+
can install tomorrow-night theme: `pry-theme -i tomorrow-night`.
|
|
68
|
+
|
|
69
|
+
Oh, and don't forget to adjust your `.pryrc`!
|
|
66
70
|
|
|
67
71
|
Limitations
|
|
68
72
|
-----------
|
|
@@ -73,7 +77,7 @@ but with a couple of admonishments. They are listed below.
|
|
|
73
77
|
### OS support
|
|
74
78
|
|
|
75
79
|
* GNU/Linux;
|
|
76
|
-
* Mac OS
|
|
80
|
+
* Mac OS.
|
|
77
81
|
|
|
78
82
|
I hope it runs on Windows too, but I couldn't find any sane terminal, that
|
|
79
83
|
would support 256 colors. Sorry, Windows guys. Please, file an issue, if you
|
|
@@ -93,6 +97,12 @@ Under the hood
|
|
|
93
97
|
Basically, Pry Theme is nothing but a CodeRay color scheme with a human-readable
|
|
94
98
|
syntax.
|
|
95
99
|
|
|
100
|
+
Credits
|
|
101
|
+
-------
|
|
102
|
+
|
|
103
|
+
* Thanks to [banister][johndogg] for bringing the plugin in masses and
|
|
104
|
+
contributing a bunch of themes.
|
|
105
|
+
|
|
96
106
|
License
|
|
97
107
|
-------
|
|
98
108
|
|
|
@@ -105,3 +115,4 @@ The project uses Zlib License. See LICENSE file for more information.
|
|
|
105
115
|
[cli]: https://github.com/kyrylo/pry-theme/wiki/Pry-Theme-CLI
|
|
106
116
|
[wiki]: https://github.com/kyrylo/pry-theme/wiki
|
|
107
117
|
[ptc]: https://github.com/kyrylo/pry-theme-collection
|
|
118
|
+
[johndogg]: https://github.com/banister/ "John Dogg"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : charcoal-black
|
|
4
|
+
version : 3
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : Based on Charcoalblack theme from Emacs
|
|
7
|
+
author : John Mair
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : robin_egg_blue02 (b)
|
|
11
|
+
class_variable : pale_blue03 (b)
|
|
12
|
+
comment : light_grey03
|
|
13
|
+
constant : robin_egg_blue02 (b)
|
|
14
|
+
error : tenne (i)
|
|
15
|
+
float : silver01
|
|
16
|
+
global_variable : robin_egg_blue02
|
|
17
|
+
instance_variable : pale_blue03
|
|
18
|
+
integer : seroburomalinovyj01
|
|
19
|
+
keyword : pale_blue03 (b)
|
|
20
|
+
method : royal_blue05
|
|
21
|
+
predefined_constant : robin_egg_blue02 (b)
|
|
22
|
+
regexp:
|
|
23
|
+
self : alizarin
|
|
24
|
+
content : alizarin
|
|
25
|
+
delimiter : alizarin
|
|
26
|
+
modifier : alizarin
|
|
27
|
+
function : alizarin
|
|
28
|
+
shell:
|
|
29
|
+
self : puce01
|
|
30
|
+
content : puce01
|
|
31
|
+
delimiter : gray02
|
|
32
|
+
string:
|
|
33
|
+
self : bluish03
|
|
34
|
+
modifier : bluish03
|
|
35
|
+
escape : bluish03
|
|
36
|
+
delimiter : bluish03
|
|
37
|
+
symbol : bluish03
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : github
|
|
4
|
+
version : 2
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : Based on github theme
|
|
7
|
+
author : John Mair
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : denim02 (b)
|
|
11
|
+
class_variable : aquamarine02 (b)
|
|
12
|
+
comment : light_grey03
|
|
13
|
+
constant : aquamarine02
|
|
14
|
+
error : tenne (i)
|
|
15
|
+
float : silver01
|
|
16
|
+
global_variable : robin_egg_blue02
|
|
17
|
+
instance_variable : aquamarine02
|
|
18
|
+
integer : aquamarine02
|
|
19
|
+
keyword : seashell (b)
|
|
20
|
+
method : maroon01
|
|
21
|
+
predefined_constant : robin_egg_blue02 (b)
|
|
22
|
+
regexp:
|
|
23
|
+
self : toad_in_love01
|
|
24
|
+
content : toad_in_love01
|
|
25
|
+
delimiter : toad_in_love01
|
|
26
|
+
modifier : toad_in_love01
|
|
27
|
+
function : toad_in_love01
|
|
28
|
+
shell:
|
|
29
|
+
self : puce01
|
|
30
|
+
content : puce01
|
|
31
|
+
delimiter : gray02
|
|
32
|
+
string:
|
|
33
|
+
self : alizarin
|
|
34
|
+
modifier : alizarin
|
|
35
|
+
escape : alizarin
|
|
36
|
+
delimiter : alizarin
|
|
37
|
+
symbol : pale_magenta
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : monokai
|
|
4
|
+
version : 1
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : Based on Wimer Hazenberg's theme
|
|
7
|
+
author : Kyrylo Silin <kyrylosilin@gmail.com>
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : sky01
|
|
11
|
+
class_variable :
|
|
12
|
+
comment : pale_mauve01
|
|
13
|
+
constant : sky01
|
|
14
|
+
error : crimson (i)
|
|
15
|
+
float : amethyst04
|
|
16
|
+
global_variable :
|
|
17
|
+
instance_variable :
|
|
18
|
+
integer : amethyst01
|
|
19
|
+
keyword : crimson
|
|
20
|
+
method : lime01
|
|
21
|
+
predefined_constant : sky01
|
|
22
|
+
regexp:
|
|
23
|
+
self : flax
|
|
24
|
+
content : flax
|
|
25
|
+
delimiter : flax
|
|
26
|
+
modifier : flax
|
|
27
|
+
function : flax
|
|
28
|
+
shell:
|
|
29
|
+
self : flax
|
|
30
|
+
content : flax
|
|
31
|
+
delimiter : flax
|
|
32
|
+
string:
|
|
33
|
+
self : flax
|
|
34
|
+
modifier : flax
|
|
35
|
+
escape : flax
|
|
36
|
+
delimiter : flax
|
|
37
|
+
symbol : old_gold
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
meta:
|
|
3
3
|
theme-name : pry-classic
|
|
4
|
-
version :
|
|
4
|
+
version : 3
|
|
5
5
|
color-depth : 8
|
|
6
|
-
description :
|
|
7
|
-
author : Kyrylo Silin <kyrylosilin@gmail.com
|
|
6
|
+
description : Default Pry theme
|
|
7
|
+
author : Kyrylo Silin <kyrylosilin@gmail.com>, Kornelius Kalnbach
|
|
8
8
|
|
|
9
9
|
theme:
|
|
10
10
|
class : magenta (b)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : railscasts
|
|
4
|
+
version : 5
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : RailsCasts theme
|
|
7
|
+
author : Ryan Fitzgerald, John Mair
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : red
|
|
11
|
+
class_variable : periwinkle (b)
|
|
12
|
+
comment : brass02
|
|
13
|
+
constant : red
|
|
14
|
+
error : green (u) on maroon
|
|
15
|
+
float : lilac01
|
|
16
|
+
global_variable : red
|
|
17
|
+
instance_variable : periwinkle
|
|
18
|
+
integer : cornflower_blue03
|
|
19
|
+
keyword : international_orange (b)
|
|
20
|
+
method : mustard02 (b)
|
|
21
|
+
predefined_constant : sky02
|
|
22
|
+
regexp:
|
|
23
|
+
self : green
|
|
24
|
+
content : green
|
|
25
|
+
delimiter : green
|
|
26
|
+
modifier : green
|
|
27
|
+
function : green
|
|
28
|
+
shell:
|
|
29
|
+
self : toad_in_love
|
|
30
|
+
content : green
|
|
31
|
+
delimiter : green
|
|
32
|
+
string:
|
|
33
|
+
self : pistachio04
|
|
34
|
+
modifier : robin_egg_blue01
|
|
35
|
+
escape : old_gold
|
|
36
|
+
delimiter : pistachio04
|
|
37
|
+
symbol : sky02
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : saturday-night
|
|
4
|
+
version : 4
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : A modification of "tommorow night"
|
|
7
|
+
author : John Mair (banisterfiend)
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : violaceous04
|
|
11
|
+
class_variable : gray05 (b)
|
|
12
|
+
comment : slate_gray
|
|
13
|
+
constant : violaceous04
|
|
14
|
+
error : black (u) on maroon
|
|
15
|
+
float : lilac01
|
|
16
|
+
global_variable : red
|
|
17
|
+
instance_variable : gray05
|
|
18
|
+
integer : cornflower_blue03
|
|
19
|
+
keyword : alizarin
|
|
20
|
+
method : cornflower_blue03
|
|
21
|
+
predefined_constant : cyan
|
|
22
|
+
regexp:
|
|
23
|
+
self : alizarin
|
|
24
|
+
content : alizarin
|
|
25
|
+
delimiter : alizarin
|
|
26
|
+
modifier : lilac01
|
|
27
|
+
function : alizarin
|
|
28
|
+
shell:
|
|
29
|
+
self : toad_in_love
|
|
30
|
+
content : green
|
|
31
|
+
delimiter : green
|
|
32
|
+
string:
|
|
33
|
+
self : old_gold
|
|
34
|
+
modifier : old_gold
|
|
35
|
+
escape : old_gold
|
|
36
|
+
delimiter : old_gold
|
|
37
|
+
symbol : old_gold (b)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : solarized
|
|
4
|
+
version : 3
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : Precision colors for machines and people
|
|
7
|
+
author : Kyrylo Silin <kyrylosilin@gmail.com>, Ethan Schoonover
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : dark_goldenrod
|
|
11
|
+
class_variable : azure01
|
|
12
|
+
comment : wet_asphalt05
|
|
13
|
+
constant : dark_goldenrod
|
|
14
|
+
error : abdel_kerims_beard04
|
|
15
|
+
float : robin_egg_blue01
|
|
16
|
+
global_variable : azure01
|
|
17
|
+
instance_variable : azure01
|
|
18
|
+
integer : robin_egg_blue01
|
|
19
|
+
keyword : gray03 (b)
|
|
20
|
+
method : azure01
|
|
21
|
+
predefined_constant : azure01
|
|
22
|
+
regexp:
|
|
23
|
+
self : tenne
|
|
24
|
+
content : olive_drab
|
|
25
|
+
delimiter : titian
|
|
26
|
+
modifier : titian
|
|
27
|
+
function : black
|
|
28
|
+
shell:
|
|
29
|
+
self :
|
|
30
|
+
content : robin_egg_blue01
|
|
31
|
+
delimiter : titian
|
|
32
|
+
string:
|
|
33
|
+
self : robin_egg_blue01
|
|
34
|
+
modifier :
|
|
35
|
+
escape :
|
|
36
|
+
delimiter : titian
|
|
37
|
+
symbol : robin_egg_blue01
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : tomorrow
|
|
4
|
+
version : 2
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : Based on Tomorrow by Chris Kempson
|
|
7
|
+
author : John Mair
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : gold
|
|
11
|
+
class_variable : flea_belly (b)
|
|
12
|
+
comment : gray03
|
|
13
|
+
constant : gold
|
|
14
|
+
error : tenne (i)
|
|
15
|
+
float : silver01
|
|
16
|
+
global_variable : dark_peach
|
|
17
|
+
instance_variable : alizarin
|
|
18
|
+
integer : tangerine
|
|
19
|
+
keyword : heliotrope03
|
|
20
|
+
method : royal_blue05
|
|
21
|
+
predefined_constant : tangerine
|
|
22
|
+
regexp:
|
|
23
|
+
self : alizarin
|
|
24
|
+
content : old_gold
|
|
25
|
+
delimiter : alizarin
|
|
26
|
+
modifier : old_gold
|
|
27
|
+
function : old_gold
|
|
28
|
+
shell:
|
|
29
|
+
self : puce01
|
|
30
|
+
content : puce01
|
|
31
|
+
delimiter : gray02
|
|
32
|
+
string:
|
|
33
|
+
self : old_gold
|
|
34
|
+
modifier : old_gold
|
|
35
|
+
escape : old_gold
|
|
36
|
+
delimiter : old_gold
|
|
37
|
+
symbol : old_gold
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : twilight
|
|
4
|
+
version : 2
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : Based on Twilight from Emacs color-theme package
|
|
7
|
+
author : John Mair
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : vert_de_peche
|
|
11
|
+
class_variable : pale_cornflower_blue (b)
|
|
12
|
+
comment : gray03
|
|
13
|
+
constant : vert_de_peche
|
|
14
|
+
error : tenne (i)
|
|
15
|
+
float : silver01
|
|
16
|
+
global_variable : pale_cornflower_blue
|
|
17
|
+
instance_variable : cornflower_blue02
|
|
18
|
+
integer : pale_blue01
|
|
19
|
+
keyword : brass02 (b)
|
|
20
|
+
method : ochre (b)
|
|
21
|
+
predefined_constant : pale_cornflower_blue
|
|
22
|
+
regexp:
|
|
23
|
+
self : moss_green
|
|
24
|
+
content : moss_green
|
|
25
|
+
delimiter : moss_green
|
|
26
|
+
modifier : pale_cornflower_blue
|
|
27
|
+
function : moss_green
|
|
28
|
+
shell:
|
|
29
|
+
self : moss_green
|
|
30
|
+
content : moss_green
|
|
31
|
+
delimiter : moss_green
|
|
32
|
+
string:
|
|
33
|
+
self : moss_green
|
|
34
|
+
modifier : pale_cornflower_blue
|
|
35
|
+
escape : moss_green
|
|
36
|
+
delimiter : moss_green
|
|
37
|
+
symbol : chestnut01
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
theme-name : zenburn
|
|
4
|
+
version : 3
|
|
5
|
+
color-depth : 256
|
|
6
|
+
description : A low-contrast color scheme
|
|
7
|
+
author : Kyrylo Silin <kyrylosilin@gmail.com>, Jani Nurminen
|
|
8
|
+
|
|
9
|
+
theme:
|
|
10
|
+
class : dark_peach (b)
|
|
11
|
+
class_variable : dark_peach
|
|
12
|
+
comment : swamp_green01
|
|
13
|
+
constant : dark_peach (b)
|
|
14
|
+
error : tenne (i)
|
|
15
|
+
float : silver01
|
|
16
|
+
global_variable : dark_peach
|
|
17
|
+
instance_variable : dark_peach
|
|
18
|
+
integer : pale_blue01
|
|
19
|
+
keyword : dark_salmon (b)
|
|
20
|
+
method : corn02
|
|
21
|
+
predefined_constant : dark_peach
|
|
22
|
+
regexp:
|
|
23
|
+
self : abdel_kerims_beard01
|
|
24
|
+
content : puce01
|
|
25
|
+
delimiter : gray02
|
|
26
|
+
modifier : gray02
|
|
27
|
+
function :
|
|
28
|
+
shell:
|
|
29
|
+
self :
|
|
30
|
+
content : puce01
|
|
31
|
+
delimiter : gray02
|
|
32
|
+
string:
|
|
33
|
+
self : puce01
|
|
34
|
+
modifier :
|
|
35
|
+
escape :
|
|
36
|
+
delimiter : gray02
|
|
37
|
+
symbol : puce01 (b)
|
data/lib/pry-theme/commands.rb
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
require 'net/https'
|
|
2
|
+
require 'base64'
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
1
5
|
module PryTheme
|
|
2
6
|
Commands = Pry::CommandSet.new do
|
|
3
7
|
|
|
@@ -7,26 +11,22 @@ module PryTheme
|
|
|
7
11
|
banner <<-BANNER
|
|
8
12
|
Usage: pry-theme [OPTIONS] [--help]
|
|
9
13
|
|
|
10
|
-
Change your theme on the fly.
|
|
14
|
+
Change your theme on the fly (for one session).
|
|
11
15
|
|
|
12
16
|
pry-theme pry-modern
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
Show all themes from Pry Theme Collection.
|
|
15
19
|
|
|
16
|
-
pry-theme
|
|
20
|
+
pry-theme -lr
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
Install a theme from Pry Theme Collection.
|
|
19
23
|
|
|
20
|
-
pry-theme -
|
|
24
|
+
pry-theme -i pry-classic
|
|
21
25
|
|
|
22
26
|
Test your current color theme.
|
|
23
27
|
|
|
24
28
|
pry-theme -t
|
|
25
29
|
|
|
26
|
-
Show a list with currently installed themes
|
|
27
|
-
|
|
28
|
-
pry-theme --list
|
|
29
|
-
|
|
30
30
|
Wiki: https://github.com/kyrylo/pry-theme/wiki/Pry-Theme-CLI
|
|
31
31
|
BANNER
|
|
32
32
|
|
|
@@ -34,7 +34,9 @@ module PryTheme
|
|
|
34
34
|
opt.on :a, "all-colors", "Show all available 8/256 colors."
|
|
35
35
|
opt.on :c, "color", "Show information about a specific color (256)."
|
|
36
36
|
opt.on :t, "test", "Test your current theme", :argument => false
|
|
37
|
-
opt.on :l, "list", "Show a list
|
|
37
|
+
opt.on :l, "list", "Show a list of installed themes", :argument => false
|
|
38
|
+
opt.on :r, "remote", "Show a list of themes from Pry Theme Collection", :argument => false
|
|
39
|
+
opt.on :i, "install", "Install a theme from Pry Theme Collection"
|
|
38
40
|
end
|
|
39
41
|
|
|
40
42
|
def process
|
|
@@ -45,9 +47,13 @@ module PryTheme
|
|
|
45
47
|
elsif opts.t?
|
|
46
48
|
test_theme
|
|
47
49
|
elsif opts.l?
|
|
48
|
-
show_list
|
|
50
|
+
opts.r? ? show_remote_list : show_list
|
|
51
|
+
elsif opts.i?
|
|
52
|
+
install_theme
|
|
49
53
|
elsif args[0] =~ /\A\w+-?\w+\z/
|
|
50
54
|
switch_to_theme
|
|
55
|
+
elsif args.empty?
|
|
56
|
+
output.puts "Current theme: #{PryTheme.current_theme}"
|
|
51
57
|
end
|
|
52
58
|
rescue NoPaletteError => no_palette_error
|
|
53
59
|
warn no_palette_error
|
|
@@ -63,7 +69,7 @@ module PryTheme
|
|
|
63
69
|
end
|
|
64
70
|
|
|
65
71
|
def show_palette_colors
|
|
66
|
-
|
|
72
|
+
lputs Palette.new(args[0]).to_a.join("\n")
|
|
67
73
|
end
|
|
68
74
|
|
|
69
75
|
def show_specific_color
|
|
@@ -111,17 +117,18 @@ module PryTheme
|
|
|
111
117
|
end
|
|
112
118
|
end
|
|
113
119
|
end
|
|
114
|
-
# Testing complete.
|
|
120
|
+
# Testing "#{PryTheme.current_theme}" theme complete.
|
|
115
121
|
TEST
|
|
116
122
|
|
|
117
|
-
|
|
123
|
+
lputs colorize_code(example)
|
|
118
124
|
end
|
|
119
125
|
|
|
120
126
|
def show_list
|
|
121
127
|
old_theme = PryTheme.current_theme.dup
|
|
122
128
|
|
|
123
|
-
|
|
124
|
-
theme.
|
|
129
|
+
all_themes = installed_themes.map do |theme|
|
|
130
|
+
theme = File.basename(theme, ".prytheme")
|
|
131
|
+
meta = Theme.new(theme)
|
|
125
132
|
PryTheme.set_theme(theme)
|
|
126
133
|
|
|
127
134
|
chunk = <<-CHUNK
|
|
@@ -132,14 +139,60 @@ class PickMe
|
|
|
132
139
|
end
|
|
133
140
|
CHUNK
|
|
134
141
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
142
|
+
mark_current = "* " if theme == old_theme
|
|
143
|
+
header = make_bold("#{mark_current}[#{theme}]")
|
|
144
|
+
snippet = colorize_code(chunk)
|
|
145
|
+
[header, meta.description, "---", snippet].compact.join("\n")
|
|
139
146
|
end
|
|
147
|
+
|
|
148
|
+
lputs all_themes.join("\n")
|
|
140
149
|
ensure
|
|
141
150
|
PryTheme.set_theme(old_theme)
|
|
142
151
|
end
|
|
152
|
+
|
|
153
|
+
def show_remote_list
|
|
154
|
+
body = {}
|
|
155
|
+
fetch_collection("/") do |http, uri|
|
|
156
|
+
output.puts "Fetching list of themes..."
|
|
157
|
+
response = http.request(Net::HTTP::Get.new(uri.request_uri))
|
|
158
|
+
body = JSON.parse(response.body)
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
i = 0
|
|
162
|
+
remote_themes = body.map do |theme|
|
|
163
|
+
if (name = theme["name"]) =~ /\A[[a-z][0-9]-]+\z/
|
|
164
|
+
"#{i+=1}. #{installed?(name) ? make_bold(name) : name}"
|
|
165
|
+
end
|
|
166
|
+
end.compact
|
|
167
|
+
|
|
168
|
+
lputs remote_themes.join("\n")
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def install_theme
|
|
172
|
+
return unless args[0]
|
|
173
|
+
|
|
174
|
+
body = {}
|
|
175
|
+
fetch_collection("/#{args[0]}/#{args[0]}.prytheme") do |http, uri|
|
|
176
|
+
output.puts "Fetching theme from the collection..."
|
|
177
|
+
response = http.request(Net::HTTP::Get.new(uri.request_uri))
|
|
178
|
+
body = JSON.parse(response.body)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
if body["message"]
|
|
182
|
+
output.puts "Cannot find theme: #{args[0]}"
|
|
183
|
+
return
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
theme = Base64.decode64(body["content"])
|
|
187
|
+
|
|
188
|
+
File.open(local_theme("#{args[0]}.prytheme"), "w") do |f|
|
|
189
|
+
f.puts theme
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
output.puts "Successfully installed #{args[0]}!"
|
|
193
|
+
rescue
|
|
194
|
+
output.puts "An error occurred!"
|
|
195
|
+
end
|
|
143
196
|
end
|
|
144
197
|
|
|
145
198
|
end
|
data/lib/pry-theme/helper.rb
CHANGED
|
@@ -1,13 +1,47 @@
|
|
|
1
1
|
module PryTheme
|
|
2
2
|
module Helper
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
themes = Dir.entries(dir) - %w{ . .. }
|
|
6
|
-
n = themes.size
|
|
4
|
+
module_function
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
def example_themes
|
|
7
|
+
(Dir.entries(EXAMPLES_ROOT) - %w{ . .. })
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def installed_themes
|
|
11
|
+
(Dir.entries(THEME_DIR) - %w{ . .. })
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def installed?(theme)
|
|
15
|
+
installed_themes.any? { |t| /\A#{theme}.prytheme\z/ =~ t }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def lputs(text, out=nil)
|
|
19
|
+
Pry::Helpers::BaseHelpers.stagger_output(text, out)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def make_bold(text)
|
|
23
|
+
Pry::Helpers::Text.bold(text)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def theme_file_version(path)
|
|
27
|
+
version = File.foreach(path) { |line| break line if $. == 4 }
|
|
28
|
+
version.scan(/\d+/)[0].to_i
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def default_theme(name)
|
|
32
|
+
File.join(EXAMPLES_ROOT, name)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def local_theme(name)
|
|
36
|
+
File.join(THEME_DIR, name)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def fetch_collection(path, &block)
|
|
40
|
+
uri = URI.parse(COLLECTION + path)
|
|
41
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
|
42
|
+
http.use_ssl = true
|
|
43
|
+
|
|
44
|
+
yield(http, uri)
|
|
11
45
|
end
|
|
12
46
|
|
|
13
47
|
end
|
data/lib/pry-theme/palette.rb
CHANGED
|
@@ -58,7 +58,7 @@ module PryTheme
|
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
def
|
|
61
|
+
def to_a
|
|
62
62
|
@colors.map { |c| c.to_term(@notation) }
|
|
63
63
|
end
|
|
64
64
|
|
|
@@ -74,7 +74,7 @@ module PryTheme
|
|
|
74
74
|
def init_256_colors
|
|
75
75
|
{
|
|
76
76
|
:term => (0...256).to_a,
|
|
77
|
-
:human => [ :black, :maroon, :toad_in_love, :olive, :navy_blue, :violet_eggplant, :teal, :silver, :gray, :red, :green, :yellow, :blue, :magenta, :cyan, :white, :black, :dark_indigo, :ultramarine01, :ultramarine02, :persian_blue01, :blue, :dark_spring_green, :dark_turquoise, :cerulean_grey01, :denim01, :royal_blue01, :royal_blue02, :toad_in_love01, :sea_green01, :teal01, :cerulean_grey02, :klein_blue, :azure01, :vert_de_pomme01, :jade01, :jade02, :robin_egg_blue01, :bondi_blue, :light_blue01, :vert_de_pomme02, :malachite01, :emerald01, :turquoise, :robin_egg_blue02, :electric01, :green, :spring_green01, :spring_green02, :mint_green01, :aquamarine01, :cyan, :flea_belly, :plum, :indigo, :purple01, :violet01, :persian_blue02, :khaki01, :wet_asphalt01, :seroburomalinovyj01, :denim02, :royal_blue03, :royal_blue04, :olive_drab, :fern_green, :slate_gray, :steel_blue, :cornflower_blue01, :azure02, :grass01, :emerald02, :sea_green02, :robin_egg_blue03, :bluish01, :light_blue02, :vert_de_pomme03, :pale_green01, :emerald03, :aquamarine02, :robin_egg_blue04, :sky01, :bright_green, :malachite02, :spring_green03, :chartreuse01, :aquamarine03, :cyan01, :maroon01, :eggplant01, :violet_eggplant01, :purple02, :violet02, :violet03, :khaki02, :pale_mauve01, :seroburomalinovyj02, :amethyst01, :amethyst02, :heliotrope01, :olive01, :dark_tan, :gray01, :bluish02, :cornflower_blue02, :royal_blue05, :grass02, :asparagus, :swamp_green01, :light_grey01, :bluish03, :cornflower_blue03, :green_yellow01, :pale_green02, :emerald04, :celadon, :pale_blue01, :sky02, :viridian, :vert_de_pomme04, :mint_green02, :chartreuse02, :aquamarine03, :electric02, :bismarck_furious, :eggplant02, :red_violet01, :violet_eggplant02, :bright_violet, :violet04, :ochre, :pale_mauve02, :pale_red_violet01, :orchid01, :amethyst03, :heliotrope02, :dark_goldenrod, :pale_brown, :mountbatten_pink, :lilac01, :wisteria01, :amethyst04, :old_gold, :brass01, :swamp_green02, :light_grey02, :niagara, :wisteria02, :lime01, :pistachio01, :moss_green, :dark_tea_green, :pale_blue02, :
|
|
77
|
+
:human => [ :black, :maroon, :toad_in_love, :olive, :navy_blue, :violet_eggplant, :teal, :silver, :gray, :red, :green, :yellow, :blue, :magenta, :cyan, :white, :black, :dark_indigo, :ultramarine01, :ultramarine02, :persian_blue01, :blue, :dark_spring_green, :dark_turquoise, :cerulean_grey01, :denim01, :royal_blue01, :royal_blue02, :toad_in_love01, :sea_green01, :teal01, :cerulean_grey02, :klein_blue, :azure01, :vert_de_pomme01, :jade01, :jade02, :robin_egg_blue01, :bondi_blue, :light_blue01, :vert_de_pomme02, :malachite01, :emerald01, :turquoise, :robin_egg_blue02, :electric01, :green, :spring_green01, :spring_green02, :mint_green01, :aquamarine01, :cyan, :flea_belly, :plum, :indigo, :purple01, :violet01, :persian_blue02, :khaki01, :wet_asphalt01, :seroburomalinovyj01, :denim02, :royal_blue03, :royal_blue04, :olive_drab, :fern_green, :slate_gray, :steel_blue, :cornflower_blue01, :azure02, :grass01, :emerald02, :sea_green02, :robin_egg_blue03, :bluish01, :light_blue02, :vert_de_pomme03, :pale_green01, :emerald03, :aquamarine02, :robin_egg_blue04, :sky01, :bright_green, :malachite02, :spring_green03, :chartreuse01, :aquamarine03, :cyan01, :maroon01, :eggplant01, :violet_eggplant01, :purple02, :violet02, :violet03, :khaki02, :pale_mauve01, :seroburomalinovyj02, :amethyst01, :amethyst02, :heliotrope01, :olive01, :dark_tan, :gray01, :bluish02, :cornflower_blue02, :royal_blue05, :grass02, :asparagus, :swamp_green01, :light_grey01, :bluish03, :cornflower_blue03, :green_yellow01, :pale_green02, :emerald04, :celadon, :pale_blue01, :sky02, :viridian, :vert_de_pomme04, :mint_green02, :chartreuse02, :aquamarine03, :electric02, :bismarck_furious, :eggplant02, :red_violet01, :violet_eggplant02, :bright_violet, :violet04, :ochre, :pale_mauve02, :pale_red_violet01, :orchid01, :amethyst03, :heliotrope02, :dark_goldenrod, :pale_brown, :mountbatten_pink, :lilac01, :wisteria01, :amethyst04, :old_gold, :brass01, :swamp_green02, :light_grey02, :niagara, :wisteria02, :lime01, :pistachio01, :moss_green, :dark_tea_green, :pale_blue02, :pale_cornflower_blue, :green_yellow02, :green_yellow03, :pistachio02, :chartreuse03, :aquamarine04, :pale_blue03, :titian, :cerise01, :red_violet02, :hot_pink01, :bright_violet, :magenta01, :tenne, :chestnut01, :pale_red_violet02, :orchid02, :orchid03, :heliotrope03, :siena, :dark_salmon, :puce01, :puce2, :violaceous01, :violaceous02, :dark_pear, :brass02, :tan, :pale_chestnut, :lilac02, :wisteria03, :childs_surprise, :vert_de_peche, :flax, :gray_tea_green, :abdel_kerims_beard01, :periwinkle, :lime02, :pistachio03, :pistachio04, :tea_green01, :tea_green02, :pang, :red, :crimson, :cerise02, :hot_pink02, :hot_pink03, :magenta, :international_orange, :alizarin, :dark_pink01, :dark_pink02, :shocked_star, :fuchsia, :tangerine, :salmon, :chestnut02, :pale_red_violet03, :pale_magenta, :violaceous03, :orange, :pink_orange, :saumon, :pink01, :pink02, :violaceous04, :gold, :mustard01, :mustard02, :dark_peach, :pale_pink, :thistle, :yellow, :corn01, :corn02, :perhydor, :lemon_cream, :white, :black01, :black02, :black03, :bistre, :anthracite, :wet_asphalt02, :wet_asphalt03, :wet_asphalt04, :wet_asphalt05, :wet_asphalt06, :wet_asphalt07, :gray01, :gray, :gray02, :gray03, :gray04, :gray05, :light_grey03, :light_grey04, :silver01, :abdel_kerims_beard02, :abdel_kerims_beard03, :abdel_kerims_beard04, :seashell ]
|
|
78
78
|
}
|
|
79
79
|
end
|
|
80
80
|
|
data/lib/pry-theme/version.rb
CHANGED
|
@@ -7,13 +7,28 @@ module PryTheme
|
|
|
7
7
|
def call(target, options, _pry_)
|
|
8
8
|
FileUtils.mkdir_p(THEME_DIR) unless File.exists?(THEME_DIR)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
example_themes.each do |theme|
|
|
11
|
+
# Copy a default theme to theme directory if it isn't there yet. Update
|
|
12
|
+
# an installed theme if a theme from the gem has a more recent version
|
|
13
|
+
# (version determines by theme's meta information).
|
|
14
|
+
if File.exists?(local_theme(theme))
|
|
15
|
+
new_version = theme_file_version(default_theme(theme))
|
|
16
|
+
old_version = theme_file_version(local_theme(theme))
|
|
17
|
+
|
|
18
|
+
if new_version > old_version
|
|
19
|
+
FileUtils.cp(default_theme(theme), THEME_DIR)
|
|
20
|
+
end
|
|
21
|
+
else
|
|
22
|
+
FileUtils.cp(default_theme(theme), THEME_DIR)
|
|
13
23
|
end
|
|
14
24
|
end
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
if Helper.installed?(Pry.config.theme)
|
|
27
|
+
PryTheme.set_theme(Pry.config.theme)
|
|
28
|
+
else
|
|
29
|
+
_pry_.output.puts %{Can't find "#{Pry.config.theme}" theme. Using "#{DEFAULT_THEME_NAME}"}
|
|
30
|
+
PryTheme.set_theme(DEFAULT_THEME_NAME)
|
|
31
|
+
end
|
|
17
32
|
end
|
|
18
33
|
|
|
19
34
|
end
|
data/lib/pry-theme.rb
CHANGED
|
@@ -32,12 +32,13 @@ module PryTheme
|
|
|
32
32
|
# The name of the default theme of Pry Theme.
|
|
33
33
|
DEFAULT_THEME_NAME = "pry-classic"
|
|
34
34
|
|
|
35
|
+
# The URI for GitHub API link to Pry Theme Collection contents.
|
|
36
|
+
COLLECTION = "https://api.github.com/repos/kyrylo/pry-theme-collection/contents"
|
|
37
|
+
|
|
35
38
|
def self.set_theme(theme_name)
|
|
36
|
-
theme = PryTheme.convert(theme_name)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
@current_theme = theme_name
|
|
40
|
-
end
|
|
39
|
+
return unless theme = PryTheme.convert(theme_name)
|
|
40
|
+
::CodeRay::Encoders::Terminal::TOKEN_COLORS.merge!(theme)
|
|
41
|
+
@current_theme = theme_name
|
|
41
42
|
end
|
|
42
43
|
|
|
43
44
|
def self.current_theme
|
data/pry-theme.gemspec
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require './lib/pry-theme/version'
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = "pry-theme"
|
|
@@ -14,5 +14,6 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
s.require_path = "lib"
|
|
15
15
|
s.files = `git ls-files`.split "\n"
|
|
16
16
|
|
|
17
|
-
s.add_runtime_dependency
|
|
17
|
+
s.add_runtime_dependency "pry", "~> 0.9"
|
|
18
|
+
s.add_runtime_dependency "json"
|
|
18
19
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pry-theme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.9
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-07-
|
|
12
|
+
date: 2012-07-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: pry
|
|
@@ -27,6 +27,22 @@ dependencies:
|
|
|
27
27
|
- - ~>
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
29
|
version: '0.9'
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: json
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
34
|
+
requirements:
|
|
35
|
+
- - ! '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
type: :runtime
|
|
39
|
+
prerelease: false
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
30
46
|
description: The plugin enables color theme support for your Pry. No more .pryrc bustling.
|
|
31
47
|
email: kyrylosilin@gmail.com
|
|
32
48
|
executables: []
|
|
@@ -37,8 +53,17 @@ files:
|
|
|
37
53
|
- CHANGELOG.md
|
|
38
54
|
- LICENSE
|
|
39
55
|
- README.md
|
|
56
|
+
- examples/charcoal-black.prytheme
|
|
57
|
+
- examples/github.prytheme
|
|
58
|
+
- examples/monokai.prytheme
|
|
40
59
|
- examples/pry-classic.prytheme
|
|
41
60
|
- examples/pry-modern.prytheme
|
|
61
|
+
- examples/railscasts.prytheme
|
|
62
|
+
- examples/saturday.prytheme
|
|
63
|
+
- examples/solarized.prytheme
|
|
64
|
+
- examples/tomorrow.prytheme
|
|
65
|
+
- examples/twilight.prytheme
|
|
66
|
+
- examples/zenburn.prytheme
|
|
42
67
|
- lib/pry-theme.rb
|
|
43
68
|
- lib/pry-theme/commands.rb
|
|
44
69
|
- lib/pry-theme/helper.rb
|