ztk 1.4.0 → 1.4.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.
Files changed (3) hide show
  1. data/lib/ztk/ansi.rb +17 -3
  2. data/lib/ztk/version.rb +1 -1
  3. metadata +3 -3
data/lib/ztk/ansi.rb CHANGED
@@ -54,7 +54,9 @@ module ZTK
54
54
  :bold => 1
55
55
  }
56
56
 
57
- def self.build_ansi_methods(hash)
57
+ ANSI_REGEX = /\e\[(?:(?:[349]|10)[0-7]|[0-9]|[34]8;5;\d{1,3})?m/
58
+
59
+ def build_ansi_methods(hash)
58
60
  hash.each do |key, value|
59
61
  define_method(key) do |string=nil, &block|
60
62
  result = Array.new
@@ -75,11 +77,23 @@ module ZTK
75
77
  end
76
78
  end
77
79
 
78
- build_ansi_methods(COLOR_MATRIX)
79
- build_ansi_methods(ATTRIBUTE_MATRIX)
80
+ def uncolor(string=nil)
81
+ if block_given?
82
+ yield.to_str.gsub(ANSI_REGEX, '')
83
+ elsif string.respond_to?(:to_str)
84
+ string.to_str.gsub(ANSI_REGEX, '')
85
+ elsif respond_to?(:to_str)
86
+ to_str.gsub(ANSI_REGEX, '')
87
+ else
88
+ ''
89
+ end
90
+ end
80
91
 
81
92
  extend self
82
93
 
94
+ build_ansi_methods(COLOR_MATRIX)
95
+ build_ansi_methods(ATTRIBUTE_MATRIX)
96
+
83
97
  end
84
98
 
85
99
  end
data/lib/ztk/version.rb CHANGED
@@ -21,6 +21,6 @@
21
21
  module ZTK
22
22
 
23
23
  # ZTK Version String
24
- VERSION = "1.4.0"
24
+ VERSION = "1.4.1"
25
25
 
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ztk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -247,7 +247,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  segments:
249
249
  - 0
250
- hash: 1701561932137543849
250
+ hash: -4161660178397173415
251
251
  required_rubygems_version: !ruby/object:Gem::Requirement
252
252
  none: false
253
253
  requirements:
@@ -256,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
256
  version: '0'
257
257
  segments:
258
258
  - 0
259
- hash: 1701561932137543849
259
+ hash: -4161660178397173415
260
260
  requirements: []
261
261
  rubyforge_project:
262
262
  rubygems_version: 1.8.25