dye 0.1.0 → 0.1.1
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/README.rdoc +4 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/dye.rb +25 -28
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -38,6 +38,9 @@ Easy ANSI code coloring for strings in libraries.
|
|
38
38
|
# and use it on the instance
|
39
39
|
any_instance.dye "any string", :any_style
|
40
40
|
|
41
|
+
# alternative no-color string
|
42
|
+
Dye.dye ' reversed ', '=== reversed ===', :reversed
|
43
|
+
|
41
44
|
# back to plain text
|
42
45
|
plain_text = Dye.strip_ansi(ansi_string)
|
43
46
|
|
@@ -114,7 +117,7 @@ so Dye will output non strict ansi by default. If you want to have strict ansi y
|
|
114
117
|
|
115
118
|
Dye.strict_ansi = true
|
116
119
|
|
117
|
-
or you can set the
|
120
|
+
or you can set the DYE_STRICT_ANSI environment variable for a system wide setting.
|
118
121
|
|
119
122
|
=== Color
|
120
123
|
|
data/Rakefile
CHANGED
@@ -20,7 +20,7 @@ task :install, :force do |t, args|
|
|
20
20
|
File.open('VERSION', 'w') {|f| f.puts version }
|
21
21
|
gem_name = "#{name}-#{version}.gem"
|
22
22
|
sh %(gem build #{name}.gemspec)
|
23
|
-
sh %(gem install #{gem_name} --local)
|
23
|
+
sh %(gem install #{gem_name} --local --no-rdoc --no-ri)
|
24
24
|
puts <<-EOS.gsub(/^ {6}/, '')
|
25
25
|
|
26
26
|
*******************************************************************************
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/dye.rb
CHANGED
@@ -1,20 +1,9 @@
|
|
1
|
-
class
|
1
|
+
class Module
|
2
2
|
|
3
3
|
def define_dye_method(custom_styles={})
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
case
|
8
|
-
when custom_styles.has_key?(name)
|
9
|
-
Dye.sgr_names_to_codes *custom_styles[name]
|
10
|
-
when Dye::BASIC_SGR.has_key?(name)
|
11
|
-
Dye::BASIC_SGR[name]
|
12
|
-
else
|
13
|
-
raise Dye::UnknownSgrCode.new(name)
|
14
|
-
end
|
15
|
-
end.flatten
|
16
|
-
Dye.apply_codes string, *codes
|
17
|
-
end
|
4
|
+
define_method(:dye) do |*args|
|
5
|
+
Dye.send :apply_styles, custom_styles, *args
|
6
|
+
end
|
18
7
|
end
|
19
8
|
|
20
9
|
end
|
@@ -66,26 +55,33 @@ module Dye
|
|
66
55
|
@strict_ansi = !!ENV['DYE_STRICT_ANSI']
|
67
56
|
attr_accessor :strict_ansi
|
68
57
|
|
69
|
-
def dye(
|
70
|
-
|
71
|
-
apply_codes string, sgr_names_to_codes(*sgr_names)
|
58
|
+
def dye(*args)
|
59
|
+
apply_styles( {}, *args )
|
72
60
|
end
|
73
61
|
|
74
62
|
def strip_ansi(string)
|
75
63
|
string.gsub(/\e\[[\d;]+m/, '')
|
76
64
|
end
|
77
65
|
|
78
|
-
|
79
|
-
names.map do |n|
|
80
|
-
next if n.nil?
|
81
|
-
code = n.is_a?(Symbol) ? BASIC_SGR[n] : n
|
82
|
-
raise UnknownSgrCode.new(n) unless code.is_a?(Integer) && (0..109).include?(code)
|
83
|
-
code
|
84
|
-
end
|
85
|
-
end
|
66
|
+
private
|
86
67
|
|
87
|
-
def
|
88
|
-
|
68
|
+
def apply_styles(custom_styles, *args)
|
69
|
+
if args[1].is_a?(String)
|
70
|
+
string, no_color_string, *names = args
|
71
|
+
else
|
72
|
+
string, *names = args
|
73
|
+
end
|
74
|
+
return no_color_string||string unless color?
|
75
|
+
codes = names.map do |name|
|
76
|
+
sgr = custom_styles.has_key?(name) ? custom_styles[name] : name
|
77
|
+
sgr = [sgr] unless sgr.is_a?(Array)
|
78
|
+
sgr.map do |n|
|
79
|
+
next if n.nil?
|
80
|
+
code = n.is_a?(Symbol) ? BASIC_SGR[n] : n
|
81
|
+
raise UnknownSgrCode.new(n) unless code.is_a?(Integer) && (0..109).include?(code)
|
82
|
+
code
|
83
|
+
end
|
84
|
+
end.flatten.compact
|
89
85
|
return string if codes.empty?
|
90
86
|
if strict_ansi
|
91
87
|
string.match(/^\e\[[\d;]+m.*\e\[0m$/m) ?
|
@@ -97,4 +93,5 @@ module Dye
|
|
97
93
|
sprintf("\e[0m%s%s\e[0m", codes.map{|c| "\e[#{c}m" }.join, string)
|
98
94
|
end
|
99
95
|
end
|
96
|
+
|
100
97
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dye
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Domizio Demichelis
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01
|
18
|
+
date: 2011-02-01 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|