happy_phone_number 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,6 +37,11 @@ Or in uppercase if you prefer:
37
37
  <%= @contact.happy_phone(:FR) %>
38
38
  #=> "01 23 45 67 89"
39
39
 
40
+ Or maybe with a string:
41
+
42
+ <%= @contact.happy_phone('fr') %>
43
+ #=> "01 23 45 67 89"
44
+
40
45
  If you want an international format:
41
46
 
42
47
  <%= @contact.happy_inter_phone(:fr) %>
@@ -75,19 +80,16 @@ Now, imagine you live in Belgium, where phone numbers could have 2 formats:
75
80
  And if *Happy Phone Number* don't know your country, you could use a
76
81
  **mask formatting**:
77
82
 
78
- <%= @contact.happy_phone("#### ###-###") %>
83
+ <%= @contact.happy_mask_phone("#### ###-###") %>
79
84
  #=> "0123 456-789"
80
85
 
81
- ### Caveats
82
-
83
- *Mask formatting* doesn't work for international phone number format.
84
86
 
85
87
  Install
86
88
  -------------------------
87
89
 
88
90
  Add this line in your Gemfile:
89
91
 
90
- gem 'happy_phone_number', :git => 'git://github.com/lkdjiin/happy_phone_number.git'
92
+ gem 'happy_phone_number'
91
93
 
92
94
 
93
95
  Usage
@@ -18,13 +18,16 @@ require 'happy_phone_number/base_format'
18
18
  # <%= @contact.happy_phone(:fr) %>
19
19
  # # => "01 23 45 67 89"
20
20
  #
21
+ # <%= @contact.happy_phone('fr') %>
22
+ # # => "01 23 45 67 89"
23
+ #
21
24
  # <%= @contact.happy_inter_phone(:fr) %>
22
25
  # # => "+33 1 23 45 67 89"
23
26
  #
24
27
  # <%= @contact.happy_phone(:be) %>
25
28
  # # => "03 111 22 33"
26
29
  #
27
- # <%= @contact.happy_phone("#### ###-###") %>
30
+ # <%= @contact.happy_mask_phone("#### ###-###") %>
28
31
  # # => "0123 456-789"
29
32
  module HappyPhoneNumber
30
33
  extend ActiveSupport::Concern
@@ -39,23 +42,29 @@ module HappyPhoneNumber
39
42
 
40
43
  # Public: Format a phone number from a model.
41
44
  #
42
- # args[0] - Either a Symbol country or a String formatting mask.
43
- # A country symbol must be in ISO 3166-1-alpha-2 format,
45
+ # args[0] - Either a Symbol|String country or a String formatting mask.
46
+ # A country must be in ISO 3166-1-alpha-2 format,
44
47
  # both lower and upper case are valids.
45
48
  # block - Not used.
46
49
  #
47
50
  # Signature
48
51
  #
49
- # happy_<field>(country_or_mask, separator)
50
- # happy_inter_<field>(country_or_mask, separator)
52
+ # happy_<field>(country, separator)
53
+ # happy_inter_<field>(country, separator)
54
+ # happy_mask_<field>(mask)
51
55
  #
52
- # field - A field name of the model that holds a phone number as a
53
- # string.
56
+ # field - A field name of the model that holds a phone number as a
57
+ # string.
58
+ # country - Symbol or String in ISO 3166-1-alpha-2 format.
59
+ # separator - A String used to separate groups of number.
60
+ # mask - A String formatting mask.
54
61
  #
55
62
  # Returns the String formatted phone number.
56
63
  def method_missing(meth, *args, &block)
57
64
  if meth.to_s =~ /^happy_inter_(.+)$/
58
65
  happy_format(:international, $1, *args)
66
+ elsif meth.to_s =~ /^happy_mask_(.+)$/
67
+ happy_format(:mask, $1, *args)
59
68
  elsif meth.to_s =~ /^happy_(.+)$/
60
69
  happy_format(:national, $1, *args)
61
70
  else
@@ -76,7 +85,7 @@ module HappyPhoneNumber
76
85
 
77
86
  # Launch the formatting process.
78
87
  #
79
- # type - Either :national or :international.
88
+ # type - Either :national, :international or :mask.
80
89
  # meth - The String field from the model.
81
90
  # args - Argument(s) passed to the formatting method, like a country,
82
91
  # a mask string, the separator.
@@ -8,9 +8,9 @@ module HappyPhoneNumber
8
8
  # Internal: Initialize the formatter facade.
9
9
  #
10
10
  # phone - A String phone number to format.
11
- # type - Either :national or :international.
12
- # country_or_mask - If it's a country, must be a two-letters Symbol.
13
- # If it's a String, it is considered as a mask.
11
+ # type - :national | :international | :mask.
12
+ # country_or_mask - The country as Symbol or String in
13
+ # ISO 3166-1-alpha-2, or a String mask.
14
14
  # separator - Optional, a String to separate groups of digits
15
15
  # the final result.
16
16
  def initialize phone, type, country_or_mask, separator
@@ -24,7 +24,7 @@ module HappyPhoneNumber
24
24
  #
25
25
  # Returns the String formatted phone number.
26
26
  def format
27
- if @country_or_mask.class == String
27
+ if @type == :mask
28
28
  use_mask
29
29
  else
30
30
  use_formatter
@@ -1,3 +1,3 @@
1
1
  module HappyPhoneNumber
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: happy_phone_number
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-08 00:00:00.000000000 Z
12
+ date: 2013-05-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails