simple_captcha_audio 0.0.1 → 0.0.2

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