text-marker 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7be22a3b19e642c2e59ebef47111a8fb13da8a3b
4
- data.tar.gz: 93c6b768bcf3dfdeb5f9b95d1b7f9059133b5ab6
3
+ metadata.gz: a937f76e90d27cbcd5e702f50737a29f4868d7bf
4
+ data.tar.gz: 4a438d011ff7764655f5648d3d6181dce14f74c1
5
5
  SHA512:
6
- metadata.gz: 67a7c7d35243fde2e1f47bb3995b9fa6f5ee94c1f4a77621f9867be205be3d7177821df7be4115e3b380ddc87bfecb7b119554ee8a571ddf005415a2571e49e7
7
- data.tar.gz: f1e3b1f6ea1a03c75a50e7387095de2a1d72c3180b1c56f6a6f0c70da6becf547908bc5e083f1683420347311264d411ec456cf8eadea2f8076f7a63b213dc43
6
+ metadata.gz: dee4617a10db90868f137e4ce9bc1a7af732b9e85370f3146654ca1e5789693a07a4299e0566dc2df6c94289efb35a162b9cae2d21f4c431ae5d267d4570cafd
7
+ data.tar.gz: b7f6026a48e8981874b51a3960212f9768265d5b28dffce7db190f62b6b58b8ab5941e6a012cf95be4a864e7b93e69c85f91c96029d0ae34271621010386ba3e
@@ -2,10 +2,15 @@ require "textmarker/version"
2
2
 
3
3
  module TextMarker
4
4
  class Tag
5
- attr_accessor :tag, :background_color, :text_color
6
- attr_reader :open_tag, :close_tag
5
+ attr_reader :tag, :open_tag, :close_tag, :background_color, :text_color
7
6
 
8
7
  def initialize(tag=:span, background_color=:yellow, text_color=:black)
8
+ @valid_tags = get_valid_html_tags
9
+
10
+ validate_tag(tag)
11
+ validate_color(background_color)
12
+ validate_color(text_color)
13
+
9
14
  @tag = tag
10
15
  @background_color = background_color
11
16
  @text_color = text_color
@@ -18,8 +23,48 @@ module TextMarker
18
23
  generate_open_tag + generate_close_tag
19
24
  end
20
25
 
26
+ def tag=(tag)
27
+ validate_tag(tag)
28
+ @tag = tag
29
+ end
30
+
31
+ def background_color=(background_color)
32
+ validate_color(background_color)
33
+ @background_color = background_color
34
+ end
35
+
36
+ def text_color=(text_color)
37
+ validate_color(text_color)
38
+ @text_color = text_color
39
+ end
40
+
41
+ protected
42
+
43
+ def get_valid_html_tags
44
+ Set.new [:h1, :h2, :h3, :h4, :h5, :h6, :span, :div, :p, :a, :button, :center, :strong, :u, :b, :i]
45
+ end
46
+
21
47
  private
22
48
 
49
+ def validate_tag(tag)
50
+ exception_error_message = ":tag must be one of these html tags "\
51
+ ":h1, :h2, :h3, :h4, :h5, :h6, :span, :div, "\
52
+ ":p, :a, :button, :center, :strong, :u, :b, :i"
53
+ raise(ArgumentError, exception_error_message) unless is_html_tag_valid? tag
54
+ end
55
+
56
+ def validate_color(color)
57
+ array_colors = [:aqua, :black, :blue, :fuchsia, :gray, :green, :lime, :maroon, :navy, :olive, :orange, :purple, :red, :silver, :teal, :white, :yellow]
58
+ exception_error_message = "The color must be a css color value like #ffffff or one of these standard colors "\
59
+ ":aqua, :black, :blue, :fuchsia, :gray, :green, :lime, :maroon, :navy, :olive, "\
60
+ ":orange, :purple, :red, :silver, :teal, :white, :yellow"
61
+ raise(ArgumentError, exception_error_message) if not array_colors.include? color and color.match(/#([a-fA-F0-9]){3}(([a-fA-F0-9]){3})?\b/).nil?
62
+ end
63
+
64
+ def is_html_tag_valid?(tag)
65
+ @valid_tags.include? tag
66
+ end
67
+
23
68
  def generate_open_tag
24
69
  "<#{@tag} style='background_color: #{@background_color}; color: #{@text_color};'>"
25
70
  end
@@ -1,3 +1,3 @@
1
1
  module TextMarker
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,9 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "TextMarker::Tag.new" do
3
+ describe "TextMarker::Tag" do
4
4
  before(:each) do
5
5
  @instance_default = TextMarker::Tag.new
6
6
  @instance = TextMarker::Tag.new :h1, :black, :white
7
+ @exception_error_message_for_tag = ":tag must be one of these html tags "\
8
+ ":h1, :h2, :h3, :h4, :h5, :h6, :span, :div, "\
9
+ ":p, :a, :button, :center, :strong, :u, :b, :i"
10
+ @exception_error_message_for_color = "The color must be a css color value like #ffffff or one of these standard colors "\
11
+ ":aqua, :black, :blue, :fuchsia, :gray, :green, :lime, :maroon, :navy, :olive, "\
12
+ ":orange, :purple, :red, :silver, :teal, :white, :yellow"
7
13
  end
8
14
 
9
15
  it 'Shoud create a Default Tag object' do
@@ -25,4 +31,52 @@ describe "TextMarker::Tag.new" do
25
31
  expect(@instance.text_color).to eq :white
26
32
  expect(@instance.to_s).to eq "<h1 style='background_color: black; color: white;'></h1>"
27
33
  end
34
+
35
+ it 'Should raise a ArgumentException creating Tag' do
36
+ expect { TextMarker::Tag.new :error }.to raise_error(ArgumentError, @exception_error_message_for_tag)
37
+ expect { TextMarker::Tag.new :span, :error }.to raise_error(ArgumentError, @exception_error_message_for_color)
38
+ expect { TextMarker::Tag.new :span, :white, :error }.to raise_error(ArgumentError, @exception_error_message_for_color)
39
+ end
40
+
41
+ it 'Should set tag to :h3' do
42
+ expect(@instance_default.tag).to eq :span
43
+ @instance_default.tag = :h3
44
+ expect(@instance_default.tag).to eq :h3
45
+ end
46
+
47
+ it 'Should set background_color to :black' do
48
+ expect(@instance_default.background_color).to eq :yellow
49
+ @instance_default.background_color = :black
50
+ expect(@instance_default.background_color).to eq :black
51
+ end
52
+
53
+ it 'Should set background_color to #000000' do
54
+ expect(@instance_default.background_color).to eq :yellow
55
+ @instance_default.background_color = '#000000'
56
+ expect(@instance_default.background_color).to eq '#000000'
57
+ end
58
+
59
+ it 'Should set text_color to :white' do
60
+ expect(@instance_default.text_color).to eq :black
61
+ @instance_default.text_color = :white
62
+ expect(@instance_default.text_color).to eq :white
63
+ end
64
+
65
+ it 'Should set background_color to #ffffff' do
66
+ expect(@instance_default.text_color).to eq :black
67
+ @instance_default.text_color = '#ffffff'
68
+ expect(@instance_default.text_color).to eq '#ffffff'
69
+ end
70
+
71
+ it 'Should raise a ArgumentException setting Tag tag' do
72
+ expect { @instance_default.tag = :error }.to raise_error(ArgumentError, @exception_error_message_for_tag)
73
+ end
74
+
75
+ it 'Should raise a ArgumentException setting Tag background_color' do
76
+ expect { @instance_default.background_color = :error }.to raise_error(ArgumentError, @exception_error_message_for_color)
77
+ end
78
+
79
+ it 'Should raise a ArgumentException setting Tag text_color' do
80
+ expect { @instance_default.text_color = :error }.to raise_error(ArgumentError, @exception_error_message_for_color)
81
+ end
28
82
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: text-marker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geison Goes