simple_captcha2 0.3.3 → 0.3.4

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: 82daa59541bc47e50ecfb13d95b1672d953b0b79
4
- data.tar.gz: 217de8368d88deb6720440ee8a69124ddbbcef83
3
+ metadata.gz: f7e289c77c2ba483a5f6a97578cc107ce7b6429d
4
+ data.tar.gz: e9bbd53602642e958644e2daeefaca5f260cab40
5
5
  SHA512:
6
- metadata.gz: 0885a9d47688ebeb81930e1cb7716ad3c7aa3c453f67c067961985f05b232ee8b53c930709899c340ec3c172d921388cdd93410aafbdfaaa155db5f1fac57cba
7
- data.tar.gz: f293939ccb2a80ce257ea200ed711fcfbbfd13bd5ed2cf526136d23b25187ac63a86a7b439b228140cbe13e2fac15845539c3dcec846901dde1b7887b7194d89
6
+ metadata.gz: 5da26157f9f1dbc8df22fed158939865e01b813e94506dda4ee329359fd5bee28f64c5e576b7c13604a582fa09e43884dd7550330f224f761165cf936d4c30c2
7
+ data.tar.gz: 2e5330b6f248b00862c1eb36c4c6568ff743ced1e42f2ed8ba020300db067b1a8bad39926808e694b369314f6de16b4ac663e7108e9c6f97311a072c8224e424
@@ -63,6 +63,12 @@ module SimpleCaptcha
63
63
  mattr_accessor :noise
64
64
  @@noise = 0
65
65
 
66
+ mattr_accessor :extra_response_headers
67
+ @@extra_response_headers = {}
68
+
69
+ mattr_accessor :partial_path
70
+ @@partial_path = 'simple_captcha/simple_captcha'
71
+
66
72
  def self.add_image_style(name, params = [])
67
73
  SimpleCaptcha::ImageHelpers.image_styles.update(name.to_s => params)
68
74
  end
@@ -36,7 +36,7 @@ module SimpleCaptcha
36
36
  html[:placeholder] = options[:placeholder] || I18n.t('simple_captcha.placeholder')
37
37
 
38
38
  text_field(:captcha, html) +
39
- hidden_field(:captcha_key, {:value => options[:field_value]})
39
+ hidden_field(:captcha_key, {:value => options[:field_value], :id => simple_captch_hidden_field_id(options)})
40
40
  end
41
41
  end
42
42
  end
@@ -79,12 +79,13 @@ module SimpleCaptcha
79
79
 
80
80
  status = 200
81
81
  id = request.params['id']
82
+ captcha_hidden_field_id = simple_captch_hidden_field_id(id)
82
83
 
83
84
  body = %Q{
84
85
  $("##{id}").attr('src', '#{url}');
85
- $("#captcha_key").attr('value', '#{key}');
86
+ $("##{ captcha_hidden_field_id }").attr('value', '#{key}');
86
87
  }
87
- headers = {'Content-Type' => 'text/javascript; charset=utf-8', "Content-Disposition" => "inline; filename='captcha.js'", "Content-Length" => body.length.to_s}
88
+ headers = {'Content-Type' => 'text/javascript; charset=utf-8', "Content-Disposition" => "inline; filename='captcha.js'", "Content-Length" => body.length.to_s}.merge(SimpleCaptcha.extra_response_headers)
88
89
  [status, headers, [body]]
89
90
  end
90
91
  end
@@ -29,7 +29,7 @@ module SimpleCaptcha #:nodoc
29
29
  end
30
30
 
31
31
  def self.generate_key(*args)
32
- args << Time.now.to_s
32
+ args << (Time.now.to_f * 1_000_000_000).to_s
33
33
  Digest::SHA1.hexdigest(args.join)
34
34
  end
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleCaptcha
2
- VERSION = "0.3.3".freeze
2
+ VERSION = "0.3.4".freeze
3
3
  end
@@ -42,7 +42,11 @@ module SimpleCaptcha #:nodoc
42
42
  # Find more detailed examples with sample images here on my blog http://EXPRESSICA.com
43
43
  #
44
44
  # All Feedbacks/CommentS/Issues/Queries are welcome.
45
- def show_simple_captcha(options={})
45
+ def show_simple_captcha(options = {})
46
+ render :partial => SimpleCaptcha.partial_path, :locals => { :simple_captcha_options => simple_captcha_options(options) }
47
+ end
48
+
49
+ def simple_captcha_options(options = {})
46
50
  key = simple_captcha_key(options[:object])
47
51
  if options[:multiple] === false
48
52
  # It's not the first captcha, we only need to return the key
@@ -58,8 +62,6 @@ module SimpleCaptcha #:nodoc
58
62
  :field => simple_captcha_field(options),
59
63
  :refresh_button => simple_captcha_refresh_button(options),
60
64
  }.merge(options)
61
-
62
- render :partial => 'simple_captcha/simple_captcha', :locals => { :simple_captcha_options => defaults }
63
65
  end
64
66
 
65
67
  private
@@ -76,6 +78,10 @@ module SimpleCaptcha #:nodoc
76
78
 
77
79
  query = defaults.to_query
78
80
  path = "/simple_captcha?code=#{simple_captcha_key}&#{query}"
81
+ build_url(options, path)
82
+ end
83
+
84
+ def build_url(options, path)
79
85
  if defined?(request) && request
80
86
  "#{request.protocol}#{request.host_with_port}#{ENV['RAILS_RELATIVE_URL_ROOT']}#{path}"
81
87
  else
@@ -90,10 +96,10 @@ module SimpleCaptcha #:nodoc
90
96
 
91
97
  if options[:object]
92
98
  text_field(options[:object], :captcha, html.merge(:value => '')) +
93
- hidden_field(options[:object], :captcha_key, {:value => options[:field_value]})
99
+ hidden_field(options[:object], :captcha_key, {:value => options[:field_value], :id => simple_captch_hidden_field_id(options)})
94
100
  else
95
101
  text_field_tag(:captcha, nil, html) +
96
- hidden_field_tag(:captcha_key, options[:field_value])
102
+ hidden_field_tag(:captcha_key, options[:field_value], :id => simple_captch_hidden_field_id(options))
97
103
  end
98
104
  end
99
105
 
@@ -103,13 +109,19 @@ module SimpleCaptcha #:nodoc
103
109
 
104
110
  text = options[:refresh_button_text] || I18n.t('simple_captcha.refresh_button_text', default: 'Refresh')
105
111
 
106
- link_to(text, "#{ENV['RAILS_RELATIVE_URL_ROOT']}/simple_captcha?id=#{simple_captcha_image_id(options)}", html)
112
+ url = build_url(options, "/simple_captcha?id=#{simple_captcha_image_id(options)}")
113
+ link_to(text, url, html)
107
114
  end
108
115
 
109
116
  def simple_captcha_image_id(options={})
110
117
  "simple_captcha-#{options[:field_value][0..10]}"
111
118
  end
112
119
 
120
+ def simple_captch_hidden_field_id(image_id)
121
+ image_id = simple_captcha_image_id(image_id) if image_id.is_a?(Hash)
122
+ "simple-captcha-hidden-field-#{ image_id }"
123
+ end
124
+
113
125
  def set_simple_captcha_data(key, options={})
114
126
  code_type = options[:code_type]
115
127
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_captcha2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavlo Galeta
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-01-28 00:00:00.000000000 Z
13
+ date: 2015-02-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails