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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5cdc65dfb777071aaebf63bc2f66b46d666f4efe
4
- data.tar.gz: 3ca67eda3f99b8ee73305b41aacdfcc3d0afe72f
3
+ metadata.gz: 5c1ebdcf64f856f20831709ee43bd00f41bb0bd4
4
+ data.tar.gz: 73e9733ca24c878a9e1e7849ea626e17fc211d17
5
5
  SHA512:
6
- metadata.gz: ff022c024e0cc487c9a8913d863c2d7a4a86f3e08aebd0a0c881425edc7c858faa882e84413f9a629661fdc5d9f98b8b2731608c815ac2f24269202d77ea0081
7
- data.tar.gz: 2753f314dcf327468fe0f09e8262da089b4d0b7fcf34477231ddfae7b5adc9917bd29aa1488e2b5f6a9e4888651b0edf3a556872f377a4e16bf1e1ba55d2adbf
6
+ metadata.gz: adb97ef9e5c6e4f9349cc8108f5569503e663cc6f931091f51986610bddad7efc649ba71ceb4a0b1e8e634b694dfe34b9bb5e8ec0f30a90eda6b712bbb7d3a3e
7
+ data.tar.gz: 66ad4162d949facec49f1fa34884698150b3656c4fe3a7fa14fd9d9432d7b0f5001b6df6087f96245bf4c3017b9a9f244a9b2b5346d9f16103a03d9606aa26f2
data/Gemfile CHANGED
@@ -7,4 +7,5 @@ gem 'simple_form'
7
7
  # gem 'formtastic'
8
8
  # gem 'formtastic-bootstrap'
9
9
  gem 'rake'
10
- gem 'rails', '~> 3.2.0'
10
+ gem 'rails', '~> 3.2.0'
11
+ gem 'selenium-webdriver', '2.25.0'
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
 
@@ -1,3 +1,3 @@
1
1
  module CreditCardField
2
- VERSION = "1.5"
2
+ VERSION = "2.0"
3
3
  end
@@ -3,42 +3,28 @@ module CreditCardTypeField
3
3
 
4
4
  module FormHelper
5
5
  def credit_card_type_field(method, options = {})
6
- append_js = options[:js].nil? ? true : options[:js]
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
- append_js = options[:js].nil? ? true : options[:js]
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, card_number_field_name: 'card_number' %>
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
- window.CreditCardField = {
17
- keyup: (e)->
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: '1.5'
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-19 00:00:00.000000000 Z
11
+ date: 2013-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake