Skip to content
Snippets Groups Projects
Commit 5f486c36 authored by Arnaud Levy's avatar Arnaud Levy
Browse files

url becomes value

parent dc9ed434
No related branches found
No related tags found
Loading
class ContactDetails::Base
attr_accessor :url, :label
attr_accessor :value, :label
def initialize(string)
@string = string.to_s
return if @string.blank?
prepare_url
prepare_value
prepare_label
end
def present?
url.present?
value.present?
end
protected
def prepare_url
@url = @string.dup
def prepare_value
@value = @string.dup
end
def prepare_label
......
......@@ -3,8 +3,8 @@ class ContactDetails::Email < ContactDetails::Base
protected
def prepare_url
@url = "#{PREFIX}#{@string}"
def prepare_value
@value = "#{PREFIX}#{@string}"
end
end
\ No newline at end of file
......@@ -3,14 +3,14 @@ class ContactDetails::Phone < ContactDetails::Base
protected
def prepare_url
def prepare_value
super
@url.remove! ' '
@url.remove! '.'
@url = "#{PREFIX}#{@url}"
@value.remove! ' '
@value.remove! '.'
@value = "#{PREFIX}#{@value}"
end
def prepare_label
@label = @url.remove PREFIX
@label = @value.remove PREFIX
end
end
\ No newline at end of file
......@@ -4,16 +4,16 @@ class ContactDetails::Twitter < ContactDetails::Base
protected
def prepare_url
def prepare_value
super
@url.remove! DOMAIN if @url.start_with? DOMAIN
@url.remove! URL if @url.start_with? URL
@url.delete_suffix! '/'
@url.delete_prefix! '/'
@url = "#{URL}#{@url}"
@value.remove! DOMAIN if @value.start_with? DOMAIN
@value.remove! URL if @value.start_with? URL
@value.delete_suffix! '/'
@value.delete_prefix! '/'
@value = "#{URL}#{@value}"
end
def prepare_label
@label = @url.remove URL
@label = @value.remove URL
end
end
\ No newline at end of file
......@@ -3,12 +3,12 @@ class ContactDetails::Website < ContactDetails::Base
protected
def prepare_url
def prepare_value
super
@url = "#{PROTOCOL}#{@url}" unless @url.start_with? PROTOCOL
@value = "#{PROTOCOL}#{@value}" unless @value.start_with? PROTOCOL
end
def prepare_label
@label = @url.remove PROTOCOL
@label = @value.remove PROTOCOL
end
end
\ No newline at end of file
......@@ -4,5 +4,5 @@ if detail.present?
%>
<%= variable %>:
label: <%= detail.label %>
url: <%= detail.url %>
value: <%= detail.value %>
<% end %>
\ No newline at end of file
......@@ -5,85 +5,85 @@ class ContactDetailsTest < ActiveSupport::TestCase
test "country nil" do
detail = ContactDetails::Country.new nil
assert_nil detail.label
assert_nil detail.url
assert_nil detail.value
end
test "country FR" do
detail = ContactDetails::Country.new 'FR'
assert_equal 'France', detail.label
assert_equal 'FR', detail.url
assert_equal 'FR', detail.value
end
test "email nil" do
detail = ContactDetails::Email.new nil
assert_nil detail.label
assert_nil detail.url
assert_nil detail.value
end
test "email arnaud.levy@noesya.coop" do
detail = ContactDetails::Email.new 'arnaud.levy@noesya.coop'
assert_equal 'arnaud.levy@noesya.coop', detail.label
assert_equal 'mailto:arnaud.levy@noesya.coop', detail.url
assert_equal 'mailto:arnaud.levy@noesya.coop', detail.value
end
test "twitter nil" do
detail = ContactDetails::Twitter.new nil
assert_nil detail.label
assert_nil detail.url
assert_nil detail.value
end
test "twitter handle" do
detail = ContactDetails::Twitter.new 'arnaudlevy'
assert_equal 'arnaudlevy', detail.label
assert_equal 'https://twitter.com/arnaudlevy', detail.url
assert_equal 'https://twitter.com/arnaudlevy', detail.value
end
test "mastodon nil" do
detail = ContactDetails::Mastodon.new nil
assert_nil detail.label
assert_nil detail.url
assert_nil detail.value
end
test "mastodon mastodon.social/@arnaudlevy" do
detail = ContactDetails::Mastodon.new 'mastodon.social/@arnaudlevy'
assert_equal 'mastodon.social/@arnaudlevy', detail.label
assert_equal 'https://mastodon.social/@arnaudlevy', detail.url
assert_equal 'https://mastodon.social/@arnaudlevy', detail.value
end
test "mastodon https://mastodon.social/@arnaudlevy" do
detail = ContactDetails::Mastodon.new 'https://mastodon.social/@arnaudlevy'
assert_equal 'mastodon.social/@arnaudlevy', detail.label
assert_equal 'https://mastodon.social/@arnaudlevy', detail.url
assert_equal 'https://mastodon.social/@arnaudlevy', detail.value
end
test "twitter twitter.com/arnaudlevy" do
detail = ContactDetails::Twitter.new 'twitter.com/arnaudlevy'
assert_equal 'arnaudlevy', detail.label
assert_equal 'https://twitter.com/arnaudlevy', detail.url
assert_equal 'https://twitter.com/arnaudlevy', detail.value
end
test "twitter https://twitter.com/arnaudlevy" do
detail = ContactDetails::Twitter.new 'https://twitter.com/arnaudlevy'
assert_equal 'arnaudlevy', detail.label
assert_equal 'https://twitter.com/arnaudlevy', detail.url
assert_equal 'https://twitter.com/arnaudlevy', detail.value
end
test "website nil" do
detail = ContactDetails::Website.new nil
assert_nil detail.label
assert_nil detail.url
assert_nil detail.value
end
test "website www.noesya.coop" do
detail = ContactDetails::Website.new 'www.noesya.coop'
assert_equal 'www.noesya.coop', detail.label
assert_equal 'https://www.noesya.coop', detail.url
assert_equal 'https://www.noesya.coop', detail.value
end
test "website https://www.noesya.coop" do
detail = ContactDetails::Website.new 'https://www.noesya.coop'
assert_equal 'www.noesya.coop', detail.label
assert_equal 'https://www.noesya.coop', detail.url
assert_equal 'https://www.noesya.coop', detail.value
end
end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment