easy-color 0.1.0 → 0.2.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.
Files changed (2) hide show
  1. data/lib/easy-color.rb +36 -26
  2. metadata +1 -1
data/lib/easy-color.rb CHANGED
@@ -29,39 +29,49 @@
29
29
  # POSSIBILITY OF SUCH DAMAGE.
30
30
  ################################################################################
31
31
 
32
- class String
32
+ $color = {
33
+ :black => 30, :red => 31, :green => 32,
34
+ :yellow => 33, :blue => 34, :purple => 35,
35
+ :cyan => 36, :white => 37
36
+ }
37
+ $attrs = {
38
+ :clean => 0, :bold => 1, :underline => 4,
39
+ :blink => 5, :reverse => 7, :conceal => 8
40
+ }
33
41
 
34
- # Normal colors
35
- def black; colorize(self, "\e[0m\e[30"); end
36
- def red; colorize(self, "\e[0m\e[31"); end
37
- def green; colorize(self, "\e[0m\e[32"); end
38
- def yellow; colorize(self, "\e[0m\e[33"); end
39
- def blue; colorize(self, "\e[0m\e[34"); end
40
- def purple; colorize(self, "\e[0m\e[35"); end
41
- def cyan; colorize(self, "\e[0m\e[36"); end
42
- def white; colorize(self, "\e[0m\e[37"); end
42
+ class String
43
43
 
44
- # Fun stuff
45
- def clean; colorize(self, "\e[0"); end
46
- def bold; colorize(self, "\e[1"); end
47
- def underline; colorize(self, "\e[4"); end
48
- def blink; colorize(self, "\e[5"); end
49
- def reverse; colorize(self, "\e[7"); end
50
- def conceal; colorize(self, "\e[8"); end
44
+ def valid(args)
45
+ if args.keys.include? :color and $color.keys.include? args[:color]
46
+ true
47
+ elsif args.keys.include? :attr and $attrs.keys.include? args[:attr]
48
+ true
49
+ else
50
+ false
51
+ end
52
+ end
51
53
 
52
- # Blanking
53
- def clear_scr; colorize(self, "\e[2", mode="J"); end
54
+ def fg(color)
55
+ "\033[#{$color[color]}m#{self}\033[0m" if valid(:color => color)
56
+ end
54
57
 
55
- # Placement
56
- def place(line, column)
57
- colorize(self, "\e[#{line};#{column}", mode='f')
58
+ def bg(color)
59
+ "\033[#{($color[color]+10)}m#{self}\033[0m" if valid(:color => color)
58
60
  end
59
61
 
60
- def save_pos; colorize(self, "\e[", mode='s'); end
61
- def return_pos; colorize(self, "\e[", mode='u'); end
62
+ def attr(attr)
63
+ "\033[#{($attrs[attr])}m#{self}\033[0m" if valid(:attr => attr)
64
+ end
62
65
 
63
- def colorize(text, color_code, mode='m')
64
- "#{color_code}#{mode}#{text}\e[0m"
66
+ def method_missing(m, *args, &block)
67
+ if $color.keys.include?(m)
68
+ fg(m)
69
+ elsif $attrs.keys.include?(m)
70
+ attr(m)
71
+ else
72
+ raise NoMethodError, "Undefined method '#{m.inspect}'."
73
+ end
65
74
  end
66
75
 
67
76
  end
77
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy-color
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: