simple_captcha_audio 0.0.1 → 0.0.2

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: 453083aa1e1b3649b9e8fa96c00bb20a876c2045
4
- data.tar.gz: 9c458b9c3ede79ec478d4035ca726706c36c0c50
3
+ metadata.gz: 744b496bf6cb86d9fd89c876dacfe09800b6a50a
4
+ data.tar.gz: e32903dd4e9cbfa57137d8fad0f35d953ffcd5bf
5
5
  SHA512:
6
- metadata.gz: ac2b760e398554eed39ef566ed97491270a185aecc21a9cab31508428beae811eee456557da57c46756fcaa997a42b74816185032cd02d9ea21ca49242e2db15
7
- data.tar.gz: 0639c3349e0c62cfb142f3a45afd80971d6fc722f035e5597333bef162a404bdf4eb4b9a3ae9e7f91e2731ae124e3b2fe4c07a6be77ac30bf72b704b81db2541
6
+ metadata.gz: ee4426266380ee3a939ad761aa684169dc44efd4a6365ee507b2c91b03653522a0f005318aa160f8ddd09a025de58baba18fd42a1c4e520a0655b8b710f1300c
7
+ data.tar.gz: 241441124d0eb64f258df1a0f5e54c9fbdd32424fafb46479a5c12cad0e78f2f093b40308a3fd9b99d6e8b57cb2dd52a989bb6dd049115b03c940a031324148a
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ * Add rudimentary specs for the instance methods.
2
+
3
+ *Aditya Kapoor*
data/README.md CHANGED
@@ -40,6 +40,13 @@ brew install espeak lame
40
40
  brew install flac sox chromaprint
41
41
  ```
42
42
 
43
+ On ubuntu system
44
+
45
+ ```
46
+ apt-get install espeak lame
47
+ apt-get install libsox-fmt-all sox libchromaprint-dev
48
+ ```
49
+
43
50
  ## Contributing
44
51
 
45
52
  1. Fork it ( https://github.com/[my-github-username]/simple_captcha_audio/fork )
@@ -35,5 +35,34 @@ module SimpleCaptcha
35
35
  [status, headers, body]
36
36
  end
37
37
  end
38
+
39
+ def refresh_code(env)
40
+ request = Rack::Request.new(env)
41
+
42
+ request.session.delete :captcha
43
+ key = simple_captcha_key(nil, request)
44
+ options = {}
45
+ options[:field_value] = set_simple_captcha_data(key, options)
46
+ url = simple_captcha_image_url(key, options)
47
+
48
+ status = 200
49
+ id = request.params['id']
50
+ captcha_hidden_field_id = simple_captch_hidden_field_id(id)
51
+
52
+ audio_id = generate_audio_id(id)
53
+ audio_url = simple_captcha_audio_url(key, options)
54
+
55
+ body = %Q{
56
+ $("##{id}").attr('src', '#{url}');
57
+ $("##{audio_id}").attr('src', '#{audio_url}')
58
+ $("##{ captcha_hidden_field_id }").attr('value', '#{key}');
59
+ }
60
+ 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)
61
+ [status, headers, [body]]
62
+ end
63
+
64
+ def generate_audio_id(id)
65
+ id.gsub('simple_captcha', simple_captcha_id_prefix)
66
+ end
38
67
  end
39
68
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleCaptchaAudio
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -4,9 +4,11 @@ module SimpleCaptcha
4
4
  alias_method :__simple_captcha_options__, :simple_captcha_options
5
5
 
6
6
  def simple_captcha_options(options = {})
7
- key = simple_captcha_key(options[:object])
7
+ super_options = __simple_captcha_options__(options)
8
8
 
9
- __simple_captcha_options__(options).merge({
9
+ key = super_options[:field_value]
10
+
11
+ super_options.merge({
10
12
  audio: simple_captcha_audio(key, options)
11
13
  })
12
14
  end
@@ -15,7 +17,7 @@ module SimpleCaptcha
15
17
  def simple_captcha_audio(simple_captcha_key, options = {})
16
18
  url = simple_captcha_audio_url simple_captcha_key, options: options
17
19
  id = simple_captcha_audio_id(options)
18
- tag('audio', :src => url, :id => id)
20
+ tag('audio', :src => url, :id => id, controls: true)
19
21
  end
20
22
 
21
23
  def simple_captcha_audio_url(simple_captcha_key, options = {})
@@ -28,7 +30,11 @@ module SimpleCaptcha
28
30
  end
29
31
 
30
32
  def simple_captcha_audio_id(options={})
31
- "simple_captcha-audio-#{options[:field_value][0..10]}"
33
+ "#{ simple_captcha_id_prefix }-#{options[:field_value][0..10]}"
34
+ end
35
+
36
+ def simple_captcha_id_prefix
37
+ "simple_captcha-audio"
32
38
  end
33
39
  end
34
40
  end
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", '~> 1.6'
22
22
  spec.add_development_dependency "rake", '~> 10.0'
23
+ spec.add_development_dependency "rspec", '~> 3.3.0'
23
24
  spec.add_dependency "simple_captcha2", '~> 0.3.4'
24
25
  spec.add_dependency "espeak-ruby", '~> 1.0.2'
25
26
  spec.add_dependency "ruby-sox", '~> 0.0.3'
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'simple_captcha/utils'
3
+ require 'simple_captcha_audio/audio_helpers'
4
+
5
+ class TestAudioHelper
6
+ include SimpleCaptcha::AudioHelpers
7
+ end
8
+
9
+ describe SimpleCaptcha::AudioHelpers do
10
+ let(:audio_helper_object) { TestAudioHelper.new }
11
+
12
+ context 'Constants' do
13
+ it { expect(SimpleCaptcha::AudioHelpers::TMP_FILES_PATH).to eq 'tmp/simple_captcha' }
14
+ end
15
+
16
+ context 'Instance Methods' do
17
+ context '#generate_simple_captcha_audio' do
18
+ pending 'TODO: Write without too much mocks and stubs.'
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,8 @@
1
+ RSpec.configure do |config|
2
+ config.expect_with :rspec do |expectations|
3
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
4
+ end
5
+ config.mock_with :rspec do |mocks|
6
+ mocks.verify_partial_doubles = true
7
+ end
8
+ end
data/spec/view_spec.rb ADDED
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ require 'active_support/core_ext/hash'
3
+ require 'action_view'
4
+ require 'simple_captcha/view'
5
+ require 'simple_captcha_audio'
6
+
7
+ class TestView < ActionView::Base
8
+ include SimpleCaptcha::ViewHelper
9
+ end
10
+
11
+ describe SimpleCaptcha::ViewHelper do
12
+ let(:view_helper_object) { TestView.new }
13
+ let(:field_value) { '1234567890' }
14
+ let(:now) { Time.now.to_i }
15
+
16
+ context 'Instance Methods' do
17
+ context 'simple_captcha_options' do
18
+ before { expect(view_helper_object).to receive(:__simple_captcha_options__).and_return({}) }
19
+ it { expect(view_helper_object.simple_captcha_options(field_value: field_value).keys).to include :audio }
20
+ it { expect(view_helper_object.simple_captcha_options(field_value: field_value)[:audio]).to eq "<audio src=\"/simple_captcha?code=&amp;time=#{now}&amp;audio=true\" id=\"simple_captcha-audio-#{ field_value }\" controls=\"controls\" />" }
21
+ end
22
+
23
+ context '#simple_captcha_audio_id' do
24
+ it { expect(view_helper_object.send(:simple_captcha_audio_id, field_value: field_value)).to eq "simple_captcha-audio-#{ field_value }" }
25
+ end
26
+
27
+ context '#simple_captcha_id_prefix' do
28
+ it { expect(view_helper_object.send(:simple_captcha_id_prefix)).to eq 'simple_captcha-audio' }
29
+ end
30
+
31
+ context '#simple_captcha_audio_url' do
32
+ it { expect(view_helper_object.send(:simple_captcha_audio_url, 'some_dummy_id', time: now)).to eq "/simple_captcha?code=some_dummy_id&time=#{now}&audio=true" }
33
+ end
34
+
35
+ context '#simple_captcha_audio' do
36
+ it { expect(view_helper_object.send(:simple_captcha_audio, 'some_dummy_id', time: now, field_value: field_value)).to eq "<audio src=\"/simple_captcha?code=some_dummy_id&amp;time=#{ now }&amp;audio=true\" id=\"simple_captcha-audio-#{ field_value }\" controls=\"controls\" />" }
37
+ end
38
+ end
39
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_captcha_audio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aditya Kapoor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-09 00:00:00.000000000 Z
11
+ date: 2015-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.3.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.3.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: simple_captcha2
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +102,8 @@ extensions: []
88
102
  extra_rdoc_files: []
89
103
  files:
90
104
  - ".gitignore"
105
+ - ".rspec"
106
+ - CHANGELOG.md
91
107
  - Gemfile
92
108
  - LICENSE.txt
93
109
  - README.md
@@ -99,6 +115,9 @@ files:
99
115
  - lib/simple_captcha_audio/view.rb
100
116
  - lib/tasks/clean.rake
101
117
  - simple_captcha_audio.gemspec
118
+ - spec/audio_helpers_spec.rb
119
+ - spec/spec_helper.rb
120
+ - spec/view_spec.rb
102
121
  homepage: https://github.com/aditya-kapoor/simple-captcha-audio
103
122
  licenses:
104
123
  - MIT
@@ -119,9 +138,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
138
  version: '0'
120
139
  requirements: []
121
140
  rubyforge_project:
122
- rubygems_version: 2.2.2
141
+ rubygems_version: 2.4.8
123
142
  signing_key:
124
143
  specification_version: 4
125
144
  summary: Simple Audio Extension to Simple Captcha
126
- test_files: []
127
- has_rdoc:
145
+ test_files:
146
+ - spec/audio_helpers_spec.rb
147
+ - spec/spec_helper.rb
148
+ - spec/view_spec.rb