crayon 0.0.5 → 1.0.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.
data/.document CHANGED
@@ -1,4 +1,4 @@
1
- README.md
2
- LICENSE
3
1
  lib/**/*.rb
4
- spec/**/*.rb
2
+ -
3
+ CHANGELOG.md
4
+ LICENSE
data/.gitignore CHANGED
@@ -0,0 +1,2 @@
1
+ bench.rb
2
+ *.html
@@ -0,0 +1,26 @@
1
+ ### 1.0.0 : 04/21/10
2
+
3
+ * Fixed bug where a method name which has `on_` followed by anything not an allowed color would return an underlined string.
4
+ * Set `method_missing` to return `Crayon` so color methods can be chained.
5
+ * Crayon can handle mixed-case method names.
6
+
7
+ ### 0.0.5 : 04/21/10
8
+
9
+ * Moved functionality from passing variables between methods to using instance variables.
10
+
11
+ ### 0.0.4 : 04/21/10
12
+
13
+ * Adds documentation and hides most helper methods from public documentation.
14
+
15
+ ### 0.0.3 : 04/21/10
16
+
17
+ * Switches documentation from RDoc to Markdown
18
+ * Moves gem dependencies into Gemfile
19
+ * Switches tests over to RSpec
20
+
21
+
22
+ ### 0.0.2 : 03/15/10
23
+
24
+ * Swtiches testing to Tinytest
25
+ * Adds basic functionality
26
+ * Adds sample output file and rake task
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Michael Berkowitz
1
+ Copyright (c) 2010 Michael Berkowitz
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # crayon
2
2
 
3
- ### current version : 0.0.3
3
+ ### current version : 1.0.0
4
4
 
5
5
  [http://github.com/mikowitz/crayon][github]
6
6
 
@@ -50,6 +50,14 @@ By default, a newline is added.
50
50
  Crayon.puts.cyan("Also on the first line, but with a trailing newline")
51
51
  Crayon.blue("On the second line by itself.")
52
52
 
53
+ You can also chain color calls without having to call `Crayon` multiple times
54
+
55
+ Crayon.print.red("red").blue("blue").puts.green("green")
56
+
57
+ `Crayon` will also handle mixed-case method calls
58
+
59
+ Crayon.ReD_ON_gREEN("It's Christmas!")
60
+
53
61
  ## Flexibility
54
62
 
55
63
  The order of elements in the method name is unimportant. For example
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 1.0.0
@@ -27,6 +27,7 @@ module Crayon
27
27
  parse_method_name
28
28
  io.print prepare_string(string)
29
29
  nullify_variables
30
+ Crayon
30
31
  end
31
32
 
32
33
  ##
@@ -35,7 +36,7 @@ module Crayon
35
36
  # Crayon.parse_method_name(:bold_red_on_green) #=> "['red', 'green', ['bold']]"
36
37
  # @private
37
38
  def parse_method_name
38
- @method_name = @method_name.to_s.split("_")
39
+ @method_name = @method_name.to_s.downcase.split("_")
39
40
  @background = parse_background
40
41
  @foreground = parse_foreground
41
42
  @formatting = parse_formatting
@@ -46,7 +47,8 @@ module Crayon
46
47
  _idx = @method_name.index("on")
47
48
  if _idx
48
49
  @method_name.delete("on")
49
- return @method_name.delete_at(_idx)
50
+ _background = @method_name.delete_at(_idx)
51
+ _background if COLORS.keys.include?(_background)
50
52
  end
51
53
  end
52
54
 
@@ -45,6 +45,9 @@ describe "Crayon" do
45
45
  Crayon.newline?.should be
46
46
  end
47
47
  end
48
+ it "chaining color calls should be allowed by return Crayon from method_missing" do
49
+ Crayon.red("OK").should == Crayon
50
+ end
48
51
  describe "method_missing" do
49
52
  describe "should call :prepare string" do
50
53
  before { Crayon.should_receive(:prepare_string).with("hello") }
@@ -79,6 +82,21 @@ describe "Crayon" do
79
82
  test_parse_method_name(:red_green, "red", nil, [])
80
83
  test_parse_method_name(:red_bold_underline, "red", nil, ["bold", "underline"])
81
84
  test_parse_method_name(:underline_on_green_bold, nil, "green", ["underline", "bold"])
85
+
86
+ describe "with mixed-case input" do
87
+ test_parse_method_name(:RED, "red", nil, [])
88
+ test_parse_method_name(:ON_red, nil, "red", [])
89
+ test_parse_method_name(:bOld, nil, nil, ["bold"])
90
+
91
+ test_parse_method_name(:BlUe_on_GREEN, "blue", "green", [])
92
+ test_parse_method_name(:UNDERline_oN_Green_BOLD, nil, "green", ["underline", "bold"])
93
+ end
94
+
95
+ describe "with invalid input" do
96
+ test_parse_method_name(:notacolor, nil, nil, [])
97
+ test_parse_method_name(:on_notacolor, nil, nil, [])
98
+ test_parse_method_name(:blue_on_notacolor, "blue", nil, [])
99
+ end
82
100
  end
83
101
 
84
102
  describe "prepare_string" do
metadata CHANGED
@@ -3,10 +3,10 @@ name: crayon
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
+ - 1
6
7
  - 0
7
8
  - 0
8
- - 5
9
- version: 0.0.5
9
+ version: 1.0.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Michael Berkowitz
@@ -26,10 +26,12 @@ extensions: []
26
26
 
27
27
  extra_rdoc_files:
28
28
  - LICENSE
29
+ - README.html
29
30
  - README.md
30
31
  files:
31
32
  - .document
32
33
  - .gitignore
34
+ - CHANGELOG.md
33
35
  - Gemfile
34
36
  - LICENSE
35
37
  - README.md
@@ -39,6 +41,7 @@ files:
39
41
  - spec/crayon_spec.rb
40
42
  - spec/helper.rb
41
43
  - spec/spec.opts
44
+ - README.html
42
45
  has_rdoc: true
43
46
  homepage: http://github.com/mikowitz/crayon
44
47
  licenses: []