Skip to content

Commit

Permalink
Replace UIColor.from_html with String.to_color
Browse files Browse the repository at this point in the history
  • Loading branch information
seanhotw committed Sep 29, 2012
1 parent 6fc8054 commit 1422da6
Show file tree
Hide file tree
Showing 15 changed files with 53 additions and 46 deletions.
2 changes: 1 addition & 1 deletion lib/simple_view/builders/helpers/has_background_color.rb
Expand Up @@ -2,7 +2,7 @@ module SimpleView
module Builders
module HasBackgroundColor
def setBackgroundColor(color)
@view.backgroundColor = color_with(color)
@view.backgroundColor = color.to_color
end
alias_method :setBackground_color, :setBackgroundColor
end
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_view/builders/helpers/has_color.rb
Expand Up @@ -2,7 +2,7 @@ module SimpleView
module Builders
module HasColor
def setColor(color)
@view.color = color_with(color)
@view.color = color.to_color
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_view/builders/helpers/has_text_color.rb
Expand Up @@ -2,7 +2,7 @@ module SimpleView
module Builders
module HasTextColor
def setTextColor(color)
@view.textColor = color_with(color)
@view.textColor = color.to_color
end
alias_method :setText_color, :setTextColor
end
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_view/builders/helpers/has_tint_color.rb
Expand Up @@ -2,7 +2,7 @@ module SimpleView
module Builders
module HasTintColor
def setTintColor(color)
@view.tintColor = color_with(color)
@view.tintColor = color.to_color
end
alias_method :setTint_color, :setTintColor
end
Expand Down
6 changes: 3 additions & 3 deletions lib/simple_view/builders/ui_label_builder.rb
Expand Up @@ -4,17 +4,17 @@ class UILabelBuilder < UIViewBuilder
include SimpleView::Builders::HasFont

def setTextColor(color)
@view.textColor = color_with(color)
@view.textColor = color.to_color
end
alias_method :setText_color, :setTextColor

def setHighlightedTextColor(color)
@view.highlightedTextColor = color_with(color)
@view.highlightedTextColor = color.to_color
end
alias_method :setHighlighted_text_color, :setHighlightedTextColor

def setShadowColor(color)
@view.shadowColor = color_with(color)
@view.shadowColor = color.to_color
end
alias_method :setShadow_color, :setShadowColor
end
Expand Down
4 changes: 2 additions & 2 deletions lib/simple_view/builders/ui_progress_view_builder.rb
Expand Up @@ -15,12 +15,12 @@ def setTrackImage(image)
end

def setProgressTintColor(color)
@view.progressTintColor = color_with(color)
@view.progressTintColor = color.to_color
end
alias_method :setProgress_tint_color, :setProgressTintColor

def setTrackTintColor(color)
@view.trackTintColor = color_with(color)
@view.trackTintColor = color.to_color
end
alias_method :setTrack_tint_color, :setTrackTintColor
end
Expand Down
6 changes: 3 additions & 3 deletions lib/simple_view/builders/ui_slider_builder.rb
Expand Up @@ -34,17 +34,17 @@ def setMaximumValueImage(image)
end

def setMinimumTrackTintColor(color)
@view.minimumTrackTintColor = color_with(color)
@view.minimumTrackTintColor = color.to_color
end
alias_method :setMinimum_track_tint_color, :setMinimumTrackTintColor

def setMaximumTrackTintColor(color)
@view.maximumTrackTintColor = color_with(color)
@view.maximumTrackTintColor = color.to_color
end
alias_method :setMaximum_track_tint_color, :setMaximumTrackTintColor

def setThumbTintColor(color)
@view.thumbTintColor = color_with(color)
@view.thumbTintColor = color.to_color
end
alias_method :setThumb_tint_color, :setThumbTintColor
end
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_view/builders/ui_switch_builder.rb
Expand Up @@ -2,7 +2,7 @@ module SimpleView
module Builders
class UISwitchBuilder < UIControlBuilder
def setOnTintColor(color)
@view.onTintColor = color_with(color)
@view.onTintColor = color.to_color
end
alias_method :setOn_tint_color, :setOnTintColor
end
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_view/builders/ui_tab_bar_builder.rb
Expand Up @@ -12,7 +12,7 @@ def setSelectedImage(image)
end

def setSelectedImageTintColor(color)
@view.selectedImageTintColor = color_with(color)
@view.selectedImageTintColor = color.to_color
end
alias_method :setSelected_image_tint_color, :setSelectedImageTintColor
end
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_view/builders/ui_table_view_builder.rb
Expand Up @@ -7,7 +7,7 @@ def view_for_class(klass, options = {})
end

def setSeparatorColor color
@view.separatorColor = color_with(color)
@view.separatorColor = color.to_color
end
alias_method :setSeparator_color, :setSeparatorColor
end
Expand Down
4 changes: 0 additions & 4 deletions lib/simple_view/builders/ui_view_builder.rb
Expand Up @@ -60,10 +60,6 @@ def font_with font
font.is_a?(String) ? UIFont.parse(font) : font
end

def color_with color
color.is_a?(String) ? UIColor.from_html(color) : color
end

def image_with image
image.is_a?(String) ? UIImage.imageNamed(image) : image
end
Expand Down
19 changes: 19 additions & 0 deletions lib/simple_view/extensions/string.rb
@@ -0,0 +1,19 @@
module SimpleView
module String
def to_color
html_colour = self.gsub(%r{[#;]}, '')
case html_colour.size
when 3
colours = html_colour.scan(%r{[0-9A-Fa-f]}).map { |el| (el * 2).to_i(16) }
when 6
colours = html_colour.scan(%r<[0-9A-Fa-f]{2}>).map { |el| el.to_i(16) }
else
raise ArgumentError
end

::UIColor.colorWithRed(colours[0]/255.0, green: colours[1]/255.0, blue: colours[2]/255.0, alpha: 1)
end
end
end

String.send(:include, SimpleView::String)
21 changes: 7 additions & 14 deletions lib/simple_view/extensions/ui_color.rb
@@ -1,16 +1,9 @@
class UIColor
# reference: http://color.rubyforge.org/
def self.from_html html_colour
html_colour = html_colour.gsub(%r{[#;]}, '')
case html_colour.size
when 3
colours = html_colour.scan(%r{[0-9A-Fa-f]}).map { |el| (el * 2).to_i(16) }
when 6
colours = html_colour.scan(%r<[0-9A-Fa-f]{2}>).map { |el| el.to_i(16) }
else
raise ArgumentError
module SimpleView
module UIColor
def to_color
self
end

UIColor.colorWithRed(colours[0]/255.0, green: colours[1]/255.0, blue: colours[2]/255.0, alpha: 1)
end
end
end

UIColor.send(:include, SimpleView::UIColor)
7 changes: 7 additions & 0 deletions spec/extensions/string_spec.rb
@@ -0,0 +1,7 @@
describe "SimpleView::String" do
describe "#to_color" do
it "should convert string to UIColor" do
"#f00".to_color.should == UIColor.redColor
end
end
end
18 changes: 5 additions & 13 deletions spec/extensions/ui_color_spec.rb
@@ -1,16 +1,8 @@
describe "UIColor" do
describe "#from_html" do
it "should convert HTML hex color to UIColor" do
color = UIColor.from_html("#f00")
r = Pointer.new(:float)
g = Pointer.new(:float)
b = Pointer.new(:float)
a = Pointer.new(:float)
color.getRed(r, green: g, blue: b, alpha: a)
r[0].should == 1
g[0].should == 0
b[0].should == 0
a[0].should == 1
describe "SimpleView::UIColor" do
describe "#to_color" do
it "should return self" do
color = UIColor.redColor
color.to_color.should == color
end
end
end

0 comments on commit 1422da6

Please sign in to comment.