galetahub-simple_captcha 0.1.1 → 0.1.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.
data/README.rdoc CHANGED
@@ -24,6 +24,10 @@ backward compatibility with previous versions of Rails.
24
24
 
25
25
  ==Installation
26
26
 
27
+ gem "galetahub-simple_captcha", :require => "simple_captcha"
28
+
29
+ or
30
+
27
31
  gem 'simple_captcha', :git => 'git://github.com/galetahub/simple-captcha.git'
28
32
 
29
33
  ==Setup
data/Rakefile CHANGED
@@ -20,22 +20,3 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
20
20
  rdoc.rdoc_files.include('README')
21
21
  rdoc.rdoc_files.include('lib/**/*.rb')
22
22
  end
23
-
24
- begin
25
- require 'jeweler'
26
- Jeweler::Tasks.new do |gemspec|
27
- gemspec.name = "galetahub-simple_captcha"
28
- gemspec.version = '0.1.1'
29
- gemspec.summary = "SimpleCaptcha is the simplest and a robust captcha plugin."
30
- gemspec.description = "SimpleCaptcha is available to be used with Rails 3 or above and also it provides the backward compatibility with previous versions of Rails."
31
- gemspec.email = "superp1987@gmail.com"
32
- gemspec.homepage = "http://github.com/galetahub/simple-captcha"
33
- gemspec.authors = ["Pavlo Galeta", "Igor Galeta"]
34
- gemspec.files = FileList["[A-Z]*", "{lib}/**/*", "{app}/**/*", "{config}/**/*", "{test}/**/*"]
35
- gemspec.rubyforge_project = "simple_captcha"
36
- end
37
-
38
- Jeweler::GemcutterTasks.new
39
- rescue LoadError
40
- puts "Jeweler not available. Install it with: gem install jeweler"
41
- end
@@ -12,6 +12,7 @@ module SimpleCaptcha
12
12
  autoload :CustomFormBuilder, 'simple_captcha/formtastic'
13
13
 
14
14
  autoload :SimpleCaptchaData, 'simple_captcha/simple_captcha_data'
15
+ autoload :Middleware, 'simple_captcha/middleware'
15
16
 
16
17
  mattr_accessor :image_size
17
18
  @@image_size = "100x28"
@@ -48,4 +49,4 @@ module SimpleCaptcha
48
49
  end
49
50
  end
50
51
 
51
- require 'simple_captcha/railtie'
52
+ require 'simple_captcha/engine' if defined?(Rails)
@@ -32,8 +32,8 @@ module SimpleCaptcha #:nodoc
32
32
  def apply_simple_captcha(options = {})
33
33
  options = { :add_to_base => false }.merge(options)
34
34
 
35
- write_inheritable_attribute :simple_captcha_options, options
36
- class_inheritable_reader :simple_captcha_options
35
+ class_attribute :simple_captcha_options
36
+ self.simple_captcha_options = options
37
37
 
38
38
  unless self.is_a?(ClassMethods)
39
39
  include InstanceMethods
@@ -3,7 +3,7 @@ require 'rails'
3
3
  require 'simple_captcha'
4
4
 
5
5
  module SimpleCaptcha
6
- class Railtie < ::Rails::Engine
6
+ class Engine < ::Rails::Engine
7
7
  config.before_initialize do
8
8
  ActiveSupport.on_load :active_record do
9
9
  ActiveRecord::Base.send(:include, SimpleCaptcha::ModelHelpers)
@@ -18,6 +18,8 @@ module SimpleCaptcha
18
18
  Formtastic::SemanticFormHelper.builder = SimpleCaptcha::CustomFormBuilder
19
19
  end
20
20
  end
21
+
22
+ config.app_middleware.use SimpleCaptcha::Middleware
21
23
  end
22
24
  end
23
25
 
@@ -1,5 +1,5 @@
1
1
  module SimpleCaptcha
2
- class CustomFormBuilder < Formtastic::SemanticFormBuilder
2
+ class CustomFormBuilder < Formtastic::FormBuilder
3
3
 
4
4
  private
5
5
 
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+ module SimpleCaptcha
3
+ class Middleware
4
+ include SimpleCaptcha::ImageHelpers
5
+
6
+ def initialize(app, options={})
7
+ @app = app
8
+ self
9
+ end
10
+
11
+ def call(env) # :nodoc:
12
+ if env["REQUEST_METHOD"] == "GET" && captcha_path?(env['PATH_INFO'])
13
+ make_image(env)
14
+ else
15
+ @app.call(env)
16
+ end
17
+ end
18
+
19
+ protected
20
+ def make_image(env, body = '', status = 404)
21
+ request = Rack::Request.new(env)
22
+ code = request.params["code"]
23
+
24
+ if !code.blank? && Utils::simple_captcha_value(code)
25
+ status = 200
26
+ body = generate_simple_captcha_image(code)
27
+ body = File.open(body, "rb")
28
+ end
29
+
30
+ [status, {'Content-Type' => 'image/jpeg', 'Content-Length' => body.size.to_s}, body]
31
+ end
32
+
33
+ def captcha_path?(request_path)
34
+ request_path.include?('/simple_captcha')
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,4 @@
1
+ # encoding: utf-8
2
+ module SimpleCaptcha
3
+ VERSION = "0.1.2".freeze
4
+ end
@@ -62,7 +62,7 @@ module SimpleCaptcha #:nodoc
62
62
  defaults[:time] = options[:time] || Time.now.to_i
63
63
 
64
64
  query = defaults.collect{ |key, value| "#{key}=#{value}" }.join('&')
65
- url = "/simple_captcha/#{simple_captcha_key}?#{query}"
65
+ url = "/simple_captcha?code=#{simple_captcha_key}&#{query}"
66
66
 
67
67
  "<img src='#{url}' alt='captcha' />".html_safe
68
68
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: galetahub-simple_captcha
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pavlo Galeta
@@ -16,12 +16,12 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-08-22 00:00:00 +03:00
19
+ date: 2011-11-02 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
23
23
  description: SimpleCaptcha is available to be used with Rails 3 or above and also it provides the backward compatibility with previous versions of Rails.
24
- email: superp1987@gmail.com
24
+ email: galeta.igor@gmail.com
25
25
  executables: []
26
26
 
27
27
  extensions: []
@@ -29,24 +29,24 @@ extensions: []
29
29
  extra_rdoc_files:
30
30
  - README.rdoc
31
31
  files:
32
- - README.rdoc
33
- - Rakefile
34
- - app/controllers/simple_captcha_controller.rb
35
- - config/routes.rb
36
- - lib/generators/USAGE
37
32
  - lib/generators/simple_captcha_generator.rb
38
33
  - lib/generators/templates/migration.rb
39
34
  - lib/generators/templates/partial.erb
35
+ - lib/generators/USAGE
40
36
  - lib/simple_captcha.rb
41
- - lib/simple_captcha/active_record.rb
37
+ - lib/simple_captcha/engine.rb
38
+ - lib/simple_captcha/utils.rb
42
39
  - lib/simple_captcha/controller.rb
43
- - lib/simple_captcha/form_builder.rb
40
+ - lib/simple_captcha/view.rb
44
41
  - lib/simple_captcha/formtastic.rb
45
- - lib/simple_captcha/image.rb
46
- - lib/simple_captcha/railtie.rb
42
+ - lib/simple_captcha/form_builder.rb
47
43
  - lib/simple_captcha/simple_captcha_data.rb
48
- - lib/simple_captcha/utils.rb
49
- - lib/simple_captcha/view.rb
44
+ - lib/simple_captcha/middleware.rb
45
+ - lib/simple_captcha/version.rb
46
+ - lib/simple_captcha/active_record.rb
47
+ - lib/simple_captcha/image.rb
48
+ - Rakefile
49
+ - README.rdoc
50
50
  - test/simple_captcha_test.rb
51
51
  has_rdoc: true
52
52
  homepage: http://github.com/galetahub/simple-captcha
@@ -77,10 +77,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  version: "0"
78
78
  requirements: []
79
79
 
80
- rubyforge_project: simple_captcha
80
+ rubyforge_project: galetahub-simple_captcha
81
81
  rubygems_version: 1.6.2
82
82
  signing_key:
83
83
  specification_version: 3
84
84
  summary: SimpleCaptcha is the simplest and a robust captcha plugin.
85
- test_files: []
86
-
85
+ test_files:
86
+ - test/simple_captcha_test.rb
@@ -1,17 +0,0 @@
1
- class SimpleCaptchaController < ActionController::Metal
2
- include ActionController::Streaming
3
- include SimpleCaptcha::ImageHelpers
4
-
5
- # GET /simple_captcha
6
- def show
7
- unless params[:id].blank?
8
- send_file(
9
- generate_simple_captcha_image(params[:id]),
10
- :type => 'image/jpeg',
11
- :disposition => 'inline',
12
- :filename => 'simple_captcha.jpg')
13
- else
14
- self.response_body = [404, {"Content-Type" => "text/html"}, ["Not Found"]]
15
- end
16
- end
17
- end
data/config/routes.rb DELETED
@@ -1,3 +0,0 @@
1
- Rails.application.routes.draw do
2
- match '/simple_captcha/:id', :to => 'simple_captcha#show', :as => :simple_captcha
3
- end