credit_card_type_field 1.5 → 2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|