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 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