shiny 0.2.1 → 0.3.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.
@@ -41,6 +41,17 @@ Some other html effect examples:
41
41
  "overline".html.overline
42
42
  "line-through".html.line_through
43
43
 
44
+ Some terminal helper examples: (include Shiny::Helpers)
45
+
46
+ say("green day?", :color => :green)
47
+ say("fail!", :type => :error)
48
+
49
+ log("for later") # default: logfile.log
50
+ log("there please", "myfile.log")
51
+
52
+ wrap("I'm not alone") # surrounded with the default: # char
53
+ wrap("Oh...", "*") # surrounded with the * char
54
+
44
55
  == Note on Patches/Pull Requests
45
56
 
46
57
  * Fork the project.
@@ -1,4 +1,5 @@
1
1
  require 'shiny/core_ext/string'
2
+ require 'shiny/helpers'
2
3
 
3
4
  module Shiny
4
5
  end
@@ -1,9 +1,9 @@
1
1
  module Shiny
2
- # Shiny::ANSI gives you some common ansi escape sequences, which
3
- # are available over a defined proxy method called 'shell', in
4
- # the core ruby String class.
2
+ # The ansi class serve a great list of color and a few format
3
+ # methods. To get an overview of all the generetad method, just look
4
+ # at the CODES hash
5
5
  #
6
- # Some colors examples:
6
+ # Some color examples:
7
7
  #
8
8
  # puts "magenta".shell.magenta
9
9
  # puts "bold blue".shell.bold.blue
@@ -21,43 +21,43 @@ module Shiny
21
21
 
22
22
  # ansi escape sequences list
23
23
  CODES = {
24
- 'black' => "\e[30m",
25
- 'red' => "\e[31m",
26
- 'green' => "\e[32m",
27
- 'yellow' => "\e[33m",
28
- 'blue' => "\e[34m",
29
- 'magenta' => "\e[35m",
30
- 'cyan' => "\e[36m",
31
- 'white' => "\e[37m",
32
- 'bright_black' => "\e[90m",
33
- 'bright_red' => "\e[91m",
34
- 'bright_green' => "\e[92m",
35
- 'bright_yellow' => "\e[93m",
36
- 'bright_blue' => "\e[94m",
37
- 'bright_magenta' => "\e[95m",
38
- 'bright_cyan' => "\e[96m",
39
- 'bright_white' => "\e[97m",
40
- 'on_black' => "\e[40m",
41
- 'on_red' => "\e[41m",
42
- 'on_green' => "\e[42m",
43
- 'on_yellow' => "\e[43m",
44
- 'on_blue' => "\e[44m",
45
- 'on_magenta' => "\e[45m",
46
- 'on_cyan' => "\e[46m",
47
- 'on_white' => "\e[47m",
48
- 'on_bright_black' => "\e[100m",
49
- 'on_bright_red' => "\e[101m",
50
- 'on_bright_green' => "\e[102m",
51
- 'on_bright_yellow' => "\e[103m",
52
- 'on_bright_blue' => "\e[104m",
53
- 'on_bright_magenta' => "\e[105m",
54
- 'on_bright_cyan' => "\e[106m",
55
- 'on_bright_white' => "\e[107m",
56
- 'reset' => "\e[0m",
57
- 'bold' => "\e[1m",
58
- 'underline' => "\e[4m",
59
- 'negative' => "\e[7m",
60
- 'blink' => "\e[5m"
24
+ :black => "\e[30m",
25
+ :red => "\e[31m",
26
+ :green => "\e[32m",
27
+ :yellow => "\e[33m",
28
+ :blue => "\e[34m",
29
+ :magenta => "\e[35m",
30
+ :cyan => "\e[36m",
31
+ :white => "\e[37m",
32
+ :bright_black => "\e[90m",
33
+ :bright_red => "\e[91m",
34
+ :bright_green => "\e[92m",
35
+ :bright_yellow => "\e[93m",
36
+ :bright_blue => "\e[94m",
37
+ :bright_magenta => "\e[95m",
38
+ :bright_cyan => "\e[96m",
39
+ :bright_white => "\e[97m",
40
+ :on_black => "\e[40m",
41
+ :on_red => "\e[41m",
42
+ :on_green => "\e[42m",
43
+ :on_yellow => "\e[43m",
44
+ :on_blue => "\e[44m",
45
+ :on_magenta => "\e[45m",
46
+ :on_cyan => "\e[46m",
47
+ :on_white => "\e[47m",
48
+ :on_bright_black => "\e[100m",
49
+ :on_bright_red => "\e[101m",
50
+ :on_bright_green => "\e[102m",
51
+ :on_bright_yellow => "\e[103m",
52
+ :on_bright_blue => "\e[104m",
53
+ :on_bright_magenta => "\e[105m",
54
+ :on_bright_cyan => "\e[106m",
55
+ :on_bright_white => "\e[107m",
56
+ :reset => "\e[0m",
57
+ :bold => "\e[1m",
58
+ :underline => "\e[4m",
59
+ :negative => "\e[7m",
60
+ :blink => "\e[5m"
61
61
  }
62
62
 
63
63
  # list of available ansi colors
@@ -66,19 +66,22 @@ module Shiny
66
66
  # list of available ansi effects
67
67
  EFFECTS = ['bold', 'underline', 'negative', 'blink']
68
68
 
69
- # generate instance methods
69
+ # Generate color instance methods
70
+ # See CODES for a list of the created methods
70
71
  CODES.each do |code, value|
71
- next if code == 'reset'
72
- reset = CODES['reset']
72
+ next if code == :reset
73
+ reset = CODES[:reset]
73
74
  class_eval <<-DEF
74
- def #{code}
75
+ def #{code.to_s}
75
76
  @string = "#{value}" + @string + "#{reset}"
76
77
  self
77
78
  end
78
79
  DEF
79
80
  end
80
81
 
81
- # remove all ansi escape sequences
82
+ # Remove all ansi escape sequences from the string
83
+ #
84
+ # @return [String] from ansi escape sequences cleaned
82
85
  def blank
83
86
  @string.gsub(/\e\[[0-9]+m/,'')
84
87
  end
@@ -1,9 +1,15 @@
1
1
  module Shiny
2
2
  class Basic
3
+ # Object initializer
4
+ #
5
+ # @param [String] To assign to @string
3
6
  def initialize(string)
4
7
  @string = string
5
8
  end
6
9
 
10
+ # Object printer
11
+ #
12
+ # @return [String]
7
13
  def to_s
8
14
  @string
9
15
  end
@@ -2,16 +2,22 @@ require 'shiny/basic'
2
2
  require 'shiny/ansi'
3
3
  require 'shiny/html'
4
4
 
5
- # instead to extend the ruby core string class with all the ansi
6
- # escape and html methods, there are two proxy methods called ansi and
7
- # html, to serve all the functionality.
5
+ # Extend the ruby core string class with ansi escape
6
+ # sequences and html methods through two proxy methods
8
7
  class String
8
+
9
+ # Serves ansi escape sequence method through a new ansi object
10
+ #
11
+ # @return [Shiny::ANSI] a new object
9
12
  def ansi
10
13
  Shiny::ANSI.new(self)
11
14
  end
12
15
 
13
16
  alias shell ansi
14
17
 
18
+ # Serves ansi escape sequence method through a new html object
19
+ #
20
+ # @return [Shiny::HTML] a new object
15
21
  def html
16
22
  Shiny::HTML.new(self)
17
23
  end
@@ -0,0 +1,77 @@
1
+ module Shiny
2
+ module Helpers
3
+ # Send a message to the $stdout stream
4
+ #
5
+ # @example Print a message
6
+ # "Shiny.message('What is that?')" #=> "What is that?\n"
7
+ #
8
+ # @example Print message whitout linebreak
9
+ # "Shiny.message('What is that?', :linebreak => false)" #=> "What is that?"
10
+ #
11
+ # @example Print message in red
12
+ # "Shiny.message('red!', :color => :red)" #=> "\e[31mred!\e[0m\n"
13
+ #
14
+ # @example Print a success message
15
+ # "Shiny.message('success', :type => :success)" #=> "\e[32msuccess\e[0m\n"
16
+ #
17
+ # @param [String] the message which should send to $stdout
18
+ # @option options [Boolean] :linebreak ('true')
19
+ # @option options [Symbol] :color ('white') The message color
20
+ # @option options [Symbol] :type The message type ':error' or ':success'
21
+ def say(message, options={})
22
+ options[:linebreak] = true unless options.has_key?(:linebreak)
23
+
24
+ message = message.ansi.send(options[:color]) if options[:color]
25
+ message = format(message, options[:type]) unless options[:color]
26
+ message = message.to_s + "\n" if options[:linebreak]
27
+
28
+ $stdout.print message
29
+ end
30
+
31
+ # Log a message in to a logfile
32
+ #
33
+ # @param [String] the message which should be logged into file
34
+ # @param [String] filename ('logfile.log') the name of the logile
35
+ def log(message, filename="logfile.log")
36
+ File.open(filename, "a+") do |f|
37
+ f << "#{Time.now}: #{message}\n"
38
+ end
39
+ end
40
+
41
+ # Send a linebreak to the $stdout stream
42
+ #
43
+ # @param [Integer] amount ('1') Amount of linebreaks
44
+ def linebreak(amount=1)
45
+ $stdout.print "\n" * amount
46
+ end
47
+
48
+ # Wrap a message with a special sign and send it to the $stdout stream
49
+ #
50
+ # @param [String] the message which should be wrapped
51
+ # @param [String] sign ('#') The character around the message
52
+ def wrap(message, sign="#")
53
+ sign = sign[0] if sign.length > 1
54
+ around = sign * (message.length + 4) + "\n"
55
+
56
+ output = ""
57
+ output << around
58
+ output << "#{sign} #{message} #{sign}\n"
59
+ output << around
60
+
61
+ $stdout.print output
62
+ end
63
+
64
+ private
65
+
66
+ def format(message, type)
67
+ message = case type
68
+ when :error ; message.ansi.send(:red)
69
+ when :success ; message.ansi.send(:green)
70
+ else
71
+ message
72
+ end
73
+ message.to_s
74
+ end
75
+ end
76
+ end
77
+
@@ -1,63 +1,69 @@
1
1
  module Shiny
2
2
  class HTML < Basic
3
- # the 17 w3c supported color names
4
- # http://www.w3.org/TR/CSS21/syndata.html#value-def-color
3
+ # List of the 17 w3c supported color names
4
+ # @see http://www.w3.org/TR/CSS21/syndata.html#value-def-color
5
5
  FORMATS = {
6
- 'black' => '<span style="color: black;">',
7
- 'silver' => '<span style="color: silver;">',
8
- 'gray' => '<span style="color: gray;">,',
9
- 'white' => '<span style="color: white;">',
10
- 'maroon' => '<span style="color: maroon;">',
11
- 'red' => '<span style="color: red;">',
12
- 'purple' => '<span style="color: purple;">',
13
- 'fuchsia' => '<span style="color: fuchsia;">',
14
- 'green' => '<span style="color: green;">',
15
- 'lime' => '<span style="color: lime;">',
16
- 'olive' => '<span style="color: olive;">',
17
- 'yellow' => '<span style="color: yellow;">',
18
- 'navy' => '<span style="color: navy;">',
19
- 'blue' => '<span style="color: blue;">',
20
- 'teal' => '<span style="color: teal;">',
21
- 'aqua' => '<span style="color: aqua;">',
22
- 'orange' => '<span style="color: orange;">',
23
- 'on_black' => '<span style="background-color: black;">',
24
- 'on_silver' => '<span style="background-color: silver;">',
25
- 'on_gray' => '<span style="background-color: gray;">',
26
- 'on_white' => '<span style="background-color: white;">',
27
- 'on_maroon' => '<span style="background-color: maroon;">',
28
- 'on_red' => '<span style="background-color: red;">',
29
- 'on_purple' => '<span style="background-color: purple;">',
30
- 'on_fuchsia' => '<span style="background-color: fuchsia;">',
31
- 'on_green' => '<span style="background-color: green;">',
32
- 'on_lime' => '<span style="background-color: lime;">',
33
- 'on_olive' => '<span style="background-color: olive;">',
34
- 'on_yellow' => '<span style="background-color: yellow;">',
35
- 'on_navy' => '<span style="background-color: navy;">',
36
- 'on_blue' => '<span style="background-color: blue;">',
37
- 'on_teal' => '<span style="background-color: teal;">',
38
- 'on_aqua' => '<span style="background-color: aqua;">',
39
- 'on_orange' => '<span style="background-color: orange;">',
40
- 'bold' => '<span style="font-weight: bold;">',
41
- 'underline' => '<span style="text-decoration: underline;">',
42
- 'overline' => '<span style="text-decoration: overline;">',
43
- 'line_through' => '<span style="text-decoration: line-through;">',
44
- 'blink' => '<span style="text-decoration: blink;">'
6
+ :black => '<span style="color: black;">',
7
+ :silver => '<span style="color: silver;">',
8
+ :gray => '<span style="color: gray;">,',
9
+ :white => '<span style="color: white;">',
10
+ :maroon => '<span style="color: maroon;">',
11
+ :red => '<span style="color: red;">',
12
+ :purple => '<span style="color: purple;">',
13
+ :fuchsia => '<span style="color: fuchsia;">',
14
+ :green => '<span style="color: green;">',
15
+ :lime => '<span style="color: lime;">',
16
+ :olive => '<span style="color: olive;">',
17
+ :yellow => '<span style="color: yellow;">',
18
+ :navy => '<span style="color: navy;">',
19
+ :blue => '<span style="color: blue;">',
20
+ :teal => '<span style="color: teal;">',
21
+ :aqua => '<span style="color: aqua;">',
22
+ :orange => '<span style="color: orange;">',
23
+ :on_black => '<span style="background-color: black;">',
24
+ :on_silver => '<span style="background-color: silver;">',
25
+ :on_gray => '<span style="background-color: gray;">',
26
+ :on_white => '<span style="background-color: white;">',
27
+ :on_maroon => '<span style="background-color: maroon;">',
28
+ :on_red => '<span style="background-color: red;">',
29
+ :on_purple => '<span style="background-color: purple;">',
30
+ :on_fuchsia => '<span style="background-color: fuchsia;">',
31
+ :on_green => '<span style="background-color: green;">',
32
+ :on_lime => '<span style="background-color: lime;">',
33
+ :on_olive => '<span style="background-color: olive;">',
34
+ :on_yellow => '<span style="background-color: yellow;">',
35
+ :on_navy => '<span style="background-color: navy;">',
36
+ :on_blue => '<span style="background-color: blue;">',
37
+ :on_teal => '<span style="background-color: teal;">',
38
+ :on_aqua => '<span style="background-color: aqua;">',
39
+ :on_orange => '<span style="background-color: orange;">',
40
+ :bold => '<span style="font-weight: bold;">',
41
+ :underline => '<span style="text-decoration: underline;">',
42
+ :overline => '<span style="text-decoration: overline;">',
43
+ :line_through => '<span style="text-decoration: line-through;">',
44
+ :blink => '<span style="text-decoration: blink;">'
45
45
  }
46
46
 
47
+ # HTML span begin tag
47
48
  SPAN_BEGIN = "<span>"
49
+
50
+ # HTML span end tag
48
51
  SPAN_END = "</span>"
49
52
 
50
- # generate html format instance methods
53
+ # Generate html format instance methods
54
+ # See FORMATS for a list of created methods
51
55
  FORMATS.each do |name, value|
52
56
  class_eval <<-DEF
53
- def #{name}
57
+ def #{name.to_s}
54
58
  @string = '#{value}' + @string + '#{SPAN_END}'
55
59
  self
56
60
  end
57
61
  DEF
58
62
  end
59
63
 
60
- # remove all html span format tags
64
+ # Remove all html span format tags
65
+ #
66
+ # @return [String] from span tags cleaned
61
67
  def blank
62
68
  @string.gsub(/(<span [^>]+>|<\/span>)/, '')
63
69
  end
@@ -1,88 +1,76 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
3
 
3
4
  describe Shiny do
4
5
 
5
- # overwrite for testing
6
- class Shiny::Basic
7
- def ==(string)
8
- to_s == string
9
- end
10
- end
11
-
12
- describe "#ansi" do
13
- it 'should return a green string' do
14
- "green".shell.green.should == "\e[32mgreen\e[0m"
15
- end
16
-
17
- it 'should return an on yellow string' do
18
- "on yellow".shell.on_yellow.should == "\e[43mon yellow\e[0m"
19
- end
20
-
21
- it 'should return an on bright magenta string' do
22
- "on bright magenta".shell.on_bright_magenta.should == "\e[105mon bright magenta\e[0m"
23
- end
24
-
25
- it 'should return a red on white string' do
26
- "red on white".shell.red.on_white.should == "\e[47m\e[31mred on white\e[0m\e[0m"
27
- end
6
+ include Shiny::Helpers
28
7
 
29
- it 'should return a bright blue string' do
30
- "bright blue".shell.bright_blue.should == "\e[94mbright blue\e[0m"
8
+ describe "#say" do
9
+ it "should print string to the stdout stream" do
10
+ $stdout.should_receive(:print).with("hey dude!\n")
11
+ say("hey dude!")
31
12
  end
32
13
 
33
- it 'should return a black on bright green string' do
34
- "black on bright green".shell.black.on_bright_green.should == "\e[102m\e[30mblack on bright green\e[0m\e[0m"
14
+ it "should print string without a linebreak" do
15
+ $stdout.should_receive(:print).with("hey dude, no linebreak please")
16
+ say("hey dude, no linebreak please", :linebreak => false)
35
17
  end
36
18
 
37
- it 'should return an underlined string' do
38
- "underline".shell.underline.should == "\e[4munderline\e[0m"
19
+ it "should print the string as error formated"do
20
+ $stdout.should_receive(:print).with("\e[31mOh, there is an error!\e[0m\n")
21
+ say("Oh, there is an error!", :type => :error)
39
22
  end
40
23
 
41
- it 'should return a bold string' do
42
- "bold".shell.bold.should == "\e[1mbold\e[0m"
43
- end
44
-
45
- it 'should return a negative string' do
46
- "negative".shell.negative.should == "\e[7mnegative\e[0m"
47
- end
48
-
49
- it 'should return a blinking string' do
50
- "blinking".shell.blink.should == "\e[5mblinking\e[0m"
24
+ it "should print the string as success formated"do
25
+ $stdout.should_receive(:print).with("\e[32mSuccessfully\e[0m\n")
26
+ say("Successfully", :type => :success)
51
27
  end
28
+ end
52
29
 
53
- it 'should clear all ansi escape sequences from string' do
54
- "\e[47m\e[31mred on white\e[0m\e[0m".shell.blank.should == "red on white"
30
+ describe "#linebreak" do
31
+ it "should print a linebreak" do
32
+ $stdout.should_receive(:print).with("\n")
33
+ linebreak
55
34
  end
56
35
 
57
- it 'should run also with the alias method' do
58
- "try the alias method".shell.red.should == "\e[31mtry the alias method\e[0m"
36
+ it "should print 3 linebreaks" do
37
+ $stdout.should_receive(:print).with("\n\n\n")
38
+ linebreak(3)
59
39
  end
60
40
  end
61
41
 
62
- describe "#html" do
63
- it 'should return a bold string' do
64
- "bold".html.bold.should == '<span style="font-weight: bold;">bold</span>'
65
- end
42
+ describe "#wrap" do
43
+ it "should print a wrapped string" do
44
+ output = "#####################\n"
45
+ output += "# Hello I'm wrapped #\n"
46
+ output += "#####################\n"
66
47
 
67
- it 'should return a underlined string' do
68
- "underline".html.underline.should == '<span style="text-decoration: underline;">underline</span>'
48
+ $stdout.should_receive(:print).with(output)
49
+ wrap("Hello I'm wrapped")
69
50
  end
70
51
 
71
- it 'should return a overlined string' do
72
- "overline".html.overline.should == '<span style="text-decoration: overline;">overline</span>'
73
- end
52
+ it "should print a wrapped string with other wrap sign" do
53
+ output = "*********************\n"
54
+ output += "* Hello I'm wrapped *\n"
55
+ output += "*********************\n"
74
56
 
75
- it 'should return a line-through string' do
76
- "line-through".html.line_through.should == '<span style="text-decoration: line-through;">line-through</span>'
57
+ $stdout.should_receive(:print).with(output)
58
+ wrap("Hello I'm wrapped", "*")
77
59
  end
60
+ end
78
61
 
79
- it 'should return a blinking string' do
80
- "blink".html.blink.should == '<span style="text-decoration: blink;">blink</span>'
62
+ describe "#log" do
63
+ it "should log the message in a log file" do
64
+ log("please log me in!")
65
+ File.exists?("logfile.log").should == true
66
+ File.delete("logfile.log")
81
67
  end
82
68
 
83
- it 'should clear all html formats from string' do
84
- '<span style="font-weight: bold;">i\'m blank now!</span>'.html.blank.should == "i'm blank now!"
69
+ it "should log the message to the 'mylogfile.log' file" do
70
+ log("Arrrr, another filename", "mylogfile.log")
71
+ File.exists?("mylogfile.log").should == true
72
+ File.delete("mylogfile.log")
85
73
  end
86
74
  end
87
-
88
75
  end
76
+
@@ -0,0 +1,87 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe String do
4
+
5
+ # overwrite for testing
6
+ class Shiny::Basic
7
+ def ==(string)
8
+ to_s == string
9
+ end
10
+ end
11
+
12
+ describe "#ansi" do
13
+ it 'should return a green string' do
14
+ "green".shell.green.should == "\e[32mgreen\e[0m"
15
+ end
16
+
17
+ it 'should return an on yellow string' do
18
+ "on yellow".shell.on_yellow.should == "\e[43mon yellow\e[0m"
19
+ end
20
+
21
+ it 'should return an on bright magenta string' do
22
+ "on bright magenta".shell.on_bright_magenta.should == "\e[105mon bright magenta\e[0m"
23
+ end
24
+
25
+ it 'should return a red on white string' do
26
+ "red on white".shell.red.on_white.should == "\e[47m\e[31mred on white\e[0m\e[0m"
27
+ end
28
+
29
+ it 'should return a bright blue string' do
30
+ "bright blue".shell.bright_blue.should == "\e[94mbright blue\e[0m"
31
+ end
32
+
33
+ it 'should return a black on bright green string' do
34
+ "black on bright green".shell.black.on_bright_green.should == "\e[102m\e[30mblack on bright green\e[0m\e[0m"
35
+ end
36
+
37
+ it 'should return an underlined string' do
38
+ "underline".shell.underline.should == "\e[4munderline\e[0m"
39
+ end
40
+
41
+ it 'should return a bold string' do
42
+ "bold".shell.bold.should == "\e[1mbold\e[0m"
43
+ end
44
+
45
+ it 'should return a negative string' do
46
+ "negative".shell.negative.should == "\e[7mnegative\e[0m"
47
+ end
48
+
49
+ it 'should return a blinking string' do
50
+ "blinking".shell.blink.should == "\e[5mblinking\e[0m"
51
+ end
52
+
53
+ it 'should clear all ansi escape sequences from string' do
54
+ "\e[47m\e[31mred on white\e[0m\e[0m".shell.blank.should == "red on white"
55
+ end
56
+
57
+ it 'should run also with the alias method' do
58
+ "try the alias method".shell.red.should == "\e[31mtry the alias method\e[0m"
59
+ end
60
+ end
61
+
62
+ describe "#html" do
63
+ it 'should return a bold string' do
64
+ "bold".html.bold.should == '<span style="font-weight: bold;">bold</span>'
65
+ end
66
+
67
+ it 'should return a underlined string' do
68
+ "underline".html.underline.should == '<span style="text-decoration: underline;">underline</span>'
69
+ end
70
+
71
+ it 'should return a overlined string' do
72
+ "overline".html.overline.should == '<span style="text-decoration: overline;">overline</span>'
73
+ end
74
+
75
+ it 'should return a line-through string' do
76
+ "line-through".html.line_through.should == '<span style="text-decoration: line-through;">line-through</span>'
77
+ end
78
+
79
+ it 'should return a blinking string' do
80
+ "blink".html.blink.should == '<span style="text-decoration: blink;">blink</span>'
81
+ end
82
+
83
+ it 'should clear all html formats from string' do
84
+ '<span style="font-weight: bold;">i\'m blank now!</span>'.html.blank.should == "i'm blank now!"
85
+ end
86
+ end
87
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
7
+ - 3
8
8
  - 1
9
- version: 0.2.1
9
+ version: 0.3.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Samuel Tonini
@@ -14,10 +14,24 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-27 00:00:00 +02:00
17
+ date: 2010-11-16 00:00:00 +01:00
18
18
  default_executable:
19
- dependencies: []
20
-
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 2
30
+ - 0
31
+ - 0
32
+ version: 2.0.0
33
+ type: :development
34
+ version_requirements: *id001
21
35
  description: Some common nice and shiny ansi escapse sequences and html format tags for the daily grind in the shell and browser.
22
36
  email: tonini.samuel@gmail.com
23
37
  executables: []
@@ -30,10 +44,12 @@ files:
30
44
  - lib/shiny/ansi.rb
31
45
  - lib/shiny/basic.rb
32
46
  - lib/shiny/core_ext/string.rb
47
+ - lib/shiny/helpers.rb
33
48
  - lib/shiny/html.rb
34
49
  - lib/shiny.rb
35
50
  - spec/shiny_spec.rb
36
51
  - spec/spec_helper.rb
52
+ - spec/string_spec.rb
37
53
  - LICENSE
38
54
  - README.rdoc
39
55
  has_rdoc: true