credit_card_type_field 1.5 → 2.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.
- checksums.yaml +4 -4
- data/Gemfile +2 -1
- data/README.md +2 -3
- data/lib/credit_card_type_field/version.rb +1 -1
- data/lib/credit_card_type_field/view_helper.rb +4 -18
- data/spec/dummy/app/views/credit_cards/new.html.erb +3 -3
- data/vendor/assets/javascripts/credit_card_type_field.js.coffee +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5c1ebdcf64f856f20831709ee43bd00f41bb0bd4
|
|
4
|
+
data.tar.gz: 73e9733ca24c878a9e1e7849ea626e17fc211d17
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: adb97ef9e5c6e4f9349cc8108f5569503e663cc6f931091f51986610bddad7efc649ba71ceb4a0b1e8e634b694dfe34b9bb5e8ec0f30a90eda6b712bbb7d3a3e
|
|
7
|
+
data.tar.gz: 66ad4162d949facec49f1fa34884698150b3656c4fe3a7fa14fd9d9432d7b0f5001b6df6087f96245bf4c3017b9a9f244a9b2b5346d9f16103a03d9606aa26f2
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -38,12 +38,12 @@ Support form_for and simple_form_for. Examples:
|
|
|
38
38
|
<% end %>
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Specify the credit card number name and supported credit card types
|
|
41
|
+
Specify the credit card number name and supported credit card types. Target is the field that you input the credit card number.
|
|
42
42
|
|
|
43
43
|
```ruby
|
|
44
44
|
<%= form_for @credit_card do |f| %>
|
|
45
45
|
<%= f.text_field :card_no %>
|
|
46
|
-
<%= f.credit_card_type_field :card_type, card_number_field_name: 'card_no', accept_types: %w(visa master) %>
|
|
46
|
+
<%= f.credit_card_type_field :card_type, card_number_field_name: 'card_no', accept_types: %w(visa master), data: {target: '#card_no'} %>
|
|
47
47
|
<% end %>
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -51,7 +51,6 @@ Done! CreditCardTypeField gem will add javascript keyup event listening to the c
|
|
|
51
51
|
credit card is according to the credit card number. At present, only visa master american_express diners_club are supported.
|
|
52
52
|
|
|
53
53
|
## TODO
|
|
54
|
-
add credit_card_type_tag
|
|
55
54
|
|
|
56
55
|
add DEMO
|
|
57
56
|
|
|
@@ -3,42 +3,28 @@ module CreditCardTypeField
|
|
|
3
3
|
|
|
4
4
|
module FormHelper
|
|
5
5
|
def credit_card_type_field(method, options = {})
|
|
6
|
-
|
|
7
|
-
options[:card_number_field_name] ||= 'credit_card_no'
|
|
8
|
-
field_name = "#{@object_name}\\\\[#{options[:card_number_field_name]}\\\\]"
|
|
6
|
+
raise 'please specify data target' unless options.has_key?(:data)
|
|
9
7
|
options[:accept_types] ||= %w(visa master american_express diners_club)
|
|
10
8
|
html = '<ul class="credit-card-type clearfix">'.html_safe
|
|
11
9
|
options[:accept_types].each {|type| html << "<li class=\"icon #{type} #{'active' if self.object.try(method) == type}\">#{type.camelize}</li>".html_safe }
|
|
12
10
|
html << %Q(<li class="icon not_valid #{'active' unless self.object.try(method)}">Invalid Card</li>
|
|
13
11
|
<li class="hint not_valid"><strong>Not a Valid Credit Card Number</strong></li>
|
|
14
12
|
</ul>).html_safe
|
|
15
|
-
html << hidden_field(method, rel: 'credit-card-type')
|
|
16
|
-
html << %Q(
|
|
17
|
-
<script>
|
|
18
|
-
$('input[rel=credit-card-type]').closest('form').find('input[name=#{field_name}]').keyup(CreditCardField.keyup);
|
|
19
|
-
</script>
|
|
20
|
-
).html_safe if append_js
|
|
13
|
+
html << hidden_field(method, rel: 'credit-card-type', data: options[:data])
|
|
21
14
|
html
|
|
22
15
|
end
|
|
23
16
|
end
|
|
24
17
|
|
|
25
18
|
module FormTagHelper
|
|
26
19
|
def credit_card_type_field_tag(name, value = nil, options = {})
|
|
27
|
-
|
|
28
|
-
options[:card_number_field_name] ||= 'credit_card_no'
|
|
29
|
-
field_name = options[:card_number_field_name]
|
|
20
|
+
raise 'please specify data target' unless options.has_key?(:data)
|
|
30
21
|
options[:accept_types] ||= %w(visa master american_express diners_club)
|
|
31
22
|
html = '<ul class="credit-card-type clearfix">'.html_safe
|
|
32
23
|
options[:accept_types].each {|type| html << "<li class=\"icon #{type} #{'active' if value == type}\">#{type.camelize}</li>".html_safe }
|
|
33
24
|
html << %Q(<li class="icon not_valid">Invalid Card</li>
|
|
34
25
|
<li class="hint not_valid"><strong>Not a Valid Credit Card Number</strong></li>
|
|
35
26
|
</ul>).html_safe
|
|
36
|
-
html << hidden_field_tag(name, value, rel: 'credit-card-type')
|
|
37
|
-
html << %Q(
|
|
38
|
-
<script>
|
|
39
|
-
$('input[rel=credit-card-type]').closest('form').find('input[name=#{field_name}]').keyup(CreditCardField.keyup);
|
|
40
|
-
</script>
|
|
41
|
-
).html_safe if append_js
|
|
27
|
+
html << hidden_field_tag(name, value, rel: 'credit-card-type', data: options[:data])
|
|
42
28
|
html
|
|
43
29
|
end
|
|
44
30
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<%= form_for @credit_card, html: {id: 'credit-card-form1'} do |f| %>
|
|
2
2
|
<%= f.text_field :credit_card_no, id: 'card-no-1' %>
|
|
3
|
-
<%= f.credit_card_type_field :card_type %>
|
|
3
|
+
<%= f.credit_card_type_field :card_type, data: {target: '#card-no-1'} %>
|
|
4
4
|
<% end %>
|
|
5
5
|
|
|
6
6
|
<%= form_for @credit_card, html: {id: 'credit-card-form2'} do |f| %>
|
|
7
7
|
<%= f.text_field :card_number, id: 'card-no-2' %>
|
|
8
|
-
<%= f.credit_card_type_field :card_type,
|
|
8
|
+
<%= f.credit_card_type_field :card_type, data: {target: '#card-no-1'} %>
|
|
9
9
|
<% end %>
|
|
10
10
|
|
|
11
11
|
<%= form_tag '', id: 'credit-card-form3' do %>
|
|
12
12
|
<%= text_field_tag 'credit_card_no', '', id: 'card-no-3' %>
|
|
13
|
-
<%= credit_card_type_field_tag('credit_card_type') %>
|
|
13
|
+
<%= credit_card_type_field_tag('credit_card_type', data: {target: '#card-no-1'}) %>
|
|
14
14
|
<% end %>
|
|
@@ -13,11 +13,11 @@ class @CreditCardType
|
|
|
13
13
|
return 'diners_club' if dinerCard.test(@card_number)
|
|
14
14
|
'not_valid'
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
$ ->
|
|
17
|
+
target = $('input[rel=credit-card-type]').data('target')
|
|
18
|
+
$('input[rel=credit-card-type]').closest('form').find(target).keyup (e) ->
|
|
18
19
|
cardType = new CreditCardType($(this).val()).cardType()
|
|
19
20
|
form = $(this).closest('form')
|
|
20
21
|
form.find(".credit-card-type li").removeClass('active')
|
|
21
22
|
form.find(".credit-card-type .#{cardType}").addClass('active')
|
|
22
|
-
form.find('input[rel=credit-card-type]').val(cardType)
|
|
23
|
-
}
|
|
23
|
+
form.find('input[rel=credit-card-type]').val(cardType)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: credit_card_type_field
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '
|
|
4
|
+
version: '2.0'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- benzhang
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2013-07-
|
|
11
|
+
date: 2013-07-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|