easy_captcha 0.2.5 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +9 -0
- data/Gemfile.lock +88 -0
- data/{MIT-LICENSE → LICENSE.txt} +1 -1
- data/README.rdoc +20 -14
- data/Rakefile +36 -40
- data/VERSION +1 -1
- data/easy_captcha.gemspec +25 -6
- data/lib/easy_captcha.rb +1 -0
- data/lib/easy_captcha/controller.rb +0 -1
- data/lib/easy_captcha/controller_helpers.rb +6 -1
- data/lib/easy_captcha/model_helpers.rb +6 -4
- data/lib/easy_captcha/routes.rb +10 -0
- data/lib/easy_captcha/view_helpers.rb +2 -1
- data/lib/generators/easy_captcha/install_generator.rb +23 -0
- data/lib/generators/templates/easy_captcha.rb +44 -0
- metadata +82 -19
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
abstract (1.0.0)
|
5
|
+
actionmailer (3.0.3)
|
6
|
+
actionpack (= 3.0.3)
|
7
|
+
mail (~> 2.2.9)
|
8
|
+
actionpack (3.0.3)
|
9
|
+
activemodel (= 3.0.3)
|
10
|
+
activesupport (= 3.0.3)
|
11
|
+
builder (~> 2.1.2)
|
12
|
+
erubis (~> 2.6.6)
|
13
|
+
i18n (~> 0.4)
|
14
|
+
rack (~> 1.2.1)
|
15
|
+
rack-mount (~> 0.6.13)
|
16
|
+
rack-test (~> 0.5.6)
|
17
|
+
tzinfo (~> 0.3.23)
|
18
|
+
activemodel (3.0.3)
|
19
|
+
activesupport (= 3.0.3)
|
20
|
+
builder (~> 2.1.2)
|
21
|
+
i18n (~> 0.4)
|
22
|
+
activerecord (3.0.3)
|
23
|
+
activemodel (= 3.0.3)
|
24
|
+
activesupport (= 3.0.3)
|
25
|
+
arel (~> 2.0.2)
|
26
|
+
tzinfo (~> 0.3.23)
|
27
|
+
activeresource (3.0.3)
|
28
|
+
activemodel (= 3.0.3)
|
29
|
+
activesupport (= 3.0.3)
|
30
|
+
activesupport (3.0.3)
|
31
|
+
arel (2.0.7)
|
32
|
+
builder (2.1.2)
|
33
|
+
configatron (2.6.4)
|
34
|
+
yamler (>= 0.1.0)
|
35
|
+
cover_me (1.0.0.rc5)
|
36
|
+
configatron
|
37
|
+
hashie
|
38
|
+
erubis (2.6.6)
|
39
|
+
abstract (>= 1.0.0)
|
40
|
+
git (1.2.5)
|
41
|
+
hashie (0.4.0)
|
42
|
+
i18n (0.5.0)
|
43
|
+
jeweler (1.5.2)
|
44
|
+
bundler (~> 1.0.0)
|
45
|
+
git (>= 1.2.5)
|
46
|
+
rake
|
47
|
+
mail (2.2.15)
|
48
|
+
activesupport (>= 2.3.6)
|
49
|
+
i18n (>= 0.4.0)
|
50
|
+
mime-types (~> 1.16)
|
51
|
+
treetop (~> 1.4.8)
|
52
|
+
mime-types (1.16)
|
53
|
+
polyglot (0.3.1)
|
54
|
+
rack (1.2.1)
|
55
|
+
rack-mount (0.6.13)
|
56
|
+
rack (>= 1.0.0)
|
57
|
+
rack-test (0.5.7)
|
58
|
+
rack (>= 1.0)
|
59
|
+
rails (3.0.3)
|
60
|
+
actionmailer (= 3.0.3)
|
61
|
+
actionpack (= 3.0.3)
|
62
|
+
activerecord (= 3.0.3)
|
63
|
+
activeresource (= 3.0.3)
|
64
|
+
activesupport (= 3.0.3)
|
65
|
+
bundler (~> 1.0)
|
66
|
+
railties (= 3.0.3)
|
67
|
+
railties (3.0.3)
|
68
|
+
actionpack (= 3.0.3)
|
69
|
+
activesupport (= 3.0.3)
|
70
|
+
rake (>= 0.8.7)
|
71
|
+
thor (~> 0.14.4)
|
72
|
+
rake (0.8.7)
|
73
|
+
rmagick (2.13.1)
|
74
|
+
thor (0.14.6)
|
75
|
+
treetop (1.4.9)
|
76
|
+
polyglot (>= 0.3.1)
|
77
|
+
tzinfo (0.3.24)
|
78
|
+
yamler (0.1.0)
|
79
|
+
|
80
|
+
PLATFORMS
|
81
|
+
ruby
|
82
|
+
|
83
|
+
DEPENDENCIES
|
84
|
+
bundler (~> 1.0.0)
|
85
|
+
cover_me
|
86
|
+
jeweler (~> 1.5.1)
|
87
|
+
rails (>= 3.0.0)
|
88
|
+
rmagick
|
data/{MIT-LICENSE → LICENSE.txt}
RENAMED
data/README.rdoc
CHANGED
@@ -1,20 +1,15 @@
|
|
1
|
-
|
1
|
+
= EasyCaptcha
|
2
2
|
A simple captcha implementation for rails 3 based on rmagick
|
3
3
|
|
4
4
|
== Installation
|
5
|
-
|
6
|
-
gem
|
5
|
+
add to Gemfile
|
6
|
+
gem 'easy_captcha'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
Add following line to application_controller.rb
|
12
|
-
after_filter lambda { session.delete(:captcha) }
|
13
|
-
|
14
|
-
The last filter is a critical security measurement! Every request after displaying the captcha-image must prevent this filter from being executed.
|
8
|
+
after bundle execute
|
9
|
+
rails g easy_captcha:install
|
15
10
|
|
16
11
|
== Configuration
|
17
|
-
You can
|
12
|
+
You can configure easy_captcha in "config/initializers/easy_captcha.rb", if you want to customize the default configuration
|
18
13
|
|
19
14
|
EasyCaptcha.setup do |config|
|
20
15
|
|
@@ -73,17 +68,28 @@ You can write this in "config/initializers/easy_captcha.rb", if you want to cust
|
|
73
68
|
<p><%= submit_tag 'Validate' %></p>
|
74
69
|
<% end %>
|
75
70
|
|
76
|
-
== Example
|
71
|
+
== Example app
|
77
72
|
You find an example app under: http://github.com/traxanos/easy_captcha_example
|
78
73
|
|
79
74
|
== History
|
80
75
|
* 0.1 Init
|
81
76
|
* 0.2 Cache support for high frequented sites
|
77
|
+
* 0.3 use generators, optimizations, update licence to same of all my plugins
|
82
78
|
|
83
79
|
== Maintainers
|
84
80
|
|
85
81
|
* Marco Scholl (http://github.com/traxanos)
|
86
82
|
|
87
|
-
==
|
83
|
+
== Contributing to EasyCaptcha
|
84
|
+
|
85
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
86
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
87
|
+
* Fork the project
|
88
|
+
* Start a feature/bugfix branch
|
89
|
+
* Commit and push until you are happy with your contribution
|
90
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
91
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
92
|
+
|
93
|
+
== Copyright
|
88
94
|
|
89
|
-
Copyright (c) 2010 Marco Scholl
|
95
|
+
Copyright (c) 2010 Marco Scholl. See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
@@ -1,52 +1,48 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require '
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
gemspec.description = "Captcha-Plugin for Rails"
|
10
|
-
gemspec.email = "develop@marco-scholl.de"
|
11
|
-
gemspec.homepage = "http://github.com/traxanos/easy_captcha"
|
12
|
-
gemspec.authors = ["Marco Scholl"]
|
13
|
-
gemspec.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
-
gemspec.add_runtime_dependency "rails", ">= 3.0.0"
|
15
|
-
gemspec.add_runtime_dependency "rmagick"
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
20
9
|
end
|
10
|
+
require 'rake'
|
21
11
|
|
22
|
-
require 'spec/rake/spectask'
|
23
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
24
|
-
spec.libs << 'lib' << 'spec'
|
25
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
26
|
-
end
|
27
12
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
require 'jeweler'
|
14
|
+
Jeweler::Tasks.new do |gem|
|
15
|
+
gem.name = "easy_captcha"
|
16
|
+
gem.homepage = "http://github.com/traxanos/easy_captcha"
|
17
|
+
gem.license = "MIT"
|
18
|
+
gem.summary = "Captcha-Plugin for Rails"
|
19
|
+
gem.description = "Captcha-Plugin for Rails"
|
20
|
+
gem.email = "develop@marco-scholl.de"
|
21
|
+
gem.authors = ["Marco Scholl"]
|
22
|
+
gem.add_runtime_dependency 'rails', '>= 3.0.0'
|
23
|
+
gem.add_runtime_dependency 'rmagick'
|
32
24
|
end
|
25
|
+
Jeweler::RubygemsDotOrgTasks.new
|
33
26
|
|
34
|
-
|
27
|
+
require 'rake/testtask'
|
28
|
+
Rake::TestTask.new(:test) do |test|
|
29
|
+
test.libs << 'lib' << 'test'
|
30
|
+
test.pattern = 'test/**/test_*.rb'
|
31
|
+
test.verbose = true
|
32
|
+
end
|
35
33
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
t.verbose = false
|
41
|
-
t.source_files = 'lib/**/*.rb'
|
42
|
-
end
|
43
|
-
rescue LoadError
|
44
|
-
task :reek do
|
45
|
-
abort "Reek is not available. In order to run reek, you must: sudo gem install reek"
|
34
|
+
namespace :cover_me do
|
35
|
+
task :report do
|
36
|
+
require 'cover_me'
|
37
|
+
CoverMe.complete!
|
46
38
|
end
|
47
39
|
end
|
48
40
|
|
49
|
-
task :
|
41
|
+
task :test do
|
42
|
+
Rake::Task['cover_me:report'].invoke
|
43
|
+
end
|
44
|
+
|
45
|
+
task :default => :test
|
50
46
|
|
51
47
|
require 'rake/rdoctask'
|
52
48
|
Rake::RDocTask.new do |rdoc|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/easy_captcha.gemspec
CHANGED
@@ -5,18 +5,21 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{easy_captcha}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Marco Scholl"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-01-26}
|
13
13
|
s.description = %q{Captcha-Plugin for Rails}
|
14
14
|
s.email = %q{develop@marco-scholl.de}
|
15
15
|
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
16
17
|
"README.rdoc"
|
17
18
|
]
|
18
19
|
s.files = [
|
19
|
-
"
|
20
|
+
"Gemfile",
|
21
|
+
"Gemfile.lock",
|
22
|
+
"LICENSE.txt",
|
20
23
|
"README.rdoc",
|
21
24
|
"Rakefile",
|
22
25
|
"VERSION",
|
@@ -27,13 +30,17 @@ Gem::Specification.new do |s|
|
|
27
30
|
"lib/easy_captcha/controller.rb",
|
28
31
|
"lib/easy_captcha/controller_helpers.rb",
|
29
32
|
"lib/easy_captcha/model_helpers.rb",
|
33
|
+
"lib/easy_captcha/routes.rb",
|
30
34
|
"lib/easy_captcha/view_helpers.rb",
|
35
|
+
"lib/generators/easy_captcha/install_generator.rb",
|
36
|
+
"lib/generators/templates/easy_captcha.rb",
|
31
37
|
"resources/captcha.ttf",
|
32
38
|
"spec/easy_captcha_spec.rb",
|
33
39
|
"spec/spec.opts",
|
34
40
|
"spec/spec_helper.rb"
|
35
41
|
]
|
36
42
|
s.homepage = %q{http://github.com/traxanos/easy_captcha}
|
43
|
+
s.licenses = ["MIT"]
|
37
44
|
s.require_paths = ["lib"]
|
38
45
|
s.rubygems_version = %q{1.3.7}
|
39
46
|
s.summary = %q{Captcha-Plugin for Rails}
|
@@ -47,16 +54,28 @@ Gem::Specification.new do |s|
|
|
47
54
|
s.specification_version = 3
|
48
55
|
|
49
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
|
-
s.
|
57
|
+
s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
|
58
|
+
s.add_runtime_dependency(%q<rmagick>, [">= 0"])
|
59
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
60
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
61
|
+
s.add_development_dependency(%q<cover_me>, [">= 0"])
|
51
62
|
s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
|
52
63
|
s.add_runtime_dependency(%q<rmagick>, [">= 0"])
|
53
64
|
else
|
54
|
-
s.add_dependency(%q<
|
65
|
+
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
66
|
+
s.add_dependency(%q<rmagick>, [">= 0"])
|
67
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
68
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
69
|
+
s.add_dependency(%q<cover_me>, [">= 0"])
|
55
70
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
56
71
|
s.add_dependency(%q<rmagick>, [">= 0"])
|
57
72
|
end
|
58
73
|
else
|
59
|
-
s.add_dependency(%q<
|
74
|
+
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
75
|
+
s.add_dependency(%q<rmagick>, [">= 0"])
|
76
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
77
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
78
|
+
s.add_dependency(%q<cover_me>, [">= 0"])
|
60
79
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
61
80
|
s.add_dependency(%q<rmagick>, [">= 0"])
|
62
81
|
end
|
data/lib/easy_captcha.rb
CHANGED
@@ -14,7 +14,7 @@ module EasyCaptcha
|
|
14
14
|
FileUtils.mkdir_p(EasyCaptcha.cache_temp_dir)
|
15
15
|
files = Dir.glob(EasyCaptcha.cache_temp_dir + "*")
|
16
16
|
unless files.size < EasyCaptcha.cache_size
|
17
|
-
file
|
17
|
+
file = File.open(files.at(Kernel.rand(files.size)))
|
18
18
|
session[:captcha] = File.basename(file.path)
|
19
19
|
|
20
20
|
if file.mtime < EasyCaptcha.cache_expire.ago
|
@@ -41,5 +41,10 @@ module EasyCaptcha
|
|
41
41
|
session[:captcha].to_s.upcase == code.to_s.upcase
|
42
42
|
end
|
43
43
|
|
44
|
+
# reset the captcha code in session for security after each request
|
45
|
+
def reset_last_captcha_code!
|
46
|
+
session.delete(:captcha)
|
47
|
+
end
|
48
|
+
|
44
49
|
end
|
45
50
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module EasyCaptcha
|
2
|
-
module ModelHelpers
|
2
|
+
module ModelHelpers #:nodoc:
|
3
3
|
# helper class for ActiveRecord
|
4
4
|
def self.included(base) #:nodoc:
|
5
5
|
base.extend ClassMethods
|
6
6
|
end
|
7
7
|
|
8
|
-
module ClassMethods
|
8
|
+
module ClassMethods #:nodoc:
|
9
9
|
# to activate model captcha validation
|
10
10
|
def acts_as_easy_captcha
|
11
11
|
include InstanceMethods
|
@@ -13,11 +13,13 @@ module EasyCaptcha
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
module InstanceMethods
|
17
|
-
|
16
|
+
module InstanceMethods #:nodoc:
|
17
|
+
|
18
|
+
def captcha #:nodoc:
|
18
19
|
""
|
19
20
|
end
|
20
21
|
|
22
|
+
# validate captcha
|
21
23
|
def valid_captcha?
|
22
24
|
errors.add(:captcha, :invalid) if @captcha.blank? or @captcha_verification.blank? or @captcha.to_s.upcase != @captcha_verification.to_s.upcase
|
23
25
|
end
|
@@ -3,7 +3,8 @@ module EasyCaptcha
|
|
3
3
|
module ViewHelpers
|
4
4
|
# generate an image_tag for captcha image
|
5
5
|
def captcha_tag(*args)
|
6
|
-
options =
|
6
|
+
options = { :alt => 'captcha' }
|
7
|
+
options.merge! args.extract_options!
|
7
8
|
image_tag(captcha_path(:i => Time.now.to_i), options)
|
8
9
|
end
|
9
10
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module EasyCaptcha
|
2
|
+
module Generators #:nodoc:
|
3
|
+
class InstallGenerator < Rails::Generators::Base #:nodoc:
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
desc "Install easy_captcha"
|
7
|
+
|
8
|
+
def copy_initializer #:nodoc:
|
9
|
+
template "easy_captcha.rb", "config/initializers/easy_captcha.rb"
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_devise_routes #:nodoc:
|
13
|
+
route 'captcha_route'
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_after_filter #:nodoc:
|
17
|
+
inject_into_class "app/controllers/application_controller.rb", ApplicationController do
|
18
|
+
" # reset captcha code after each request for security\n after_filter :reset_last_captcha_code!\n\n"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
EasyCaptcha.setup do |config|
|
2
|
+
# Cache
|
3
|
+
# config.cache = true
|
4
|
+
# Cache temp dir from Rails.root
|
5
|
+
# config.cache_temp_dir = Rails.root + 'tmp' + 'captchas'
|
6
|
+
# Cache size
|
7
|
+
# config.cache_size = 500
|
8
|
+
# Cache expire
|
9
|
+
# config.cache_expire = 1.days
|
10
|
+
|
11
|
+
# Chars
|
12
|
+
# config.chars = %w(2 3 4 5 6 7 9 A C D E F G H J K L M N P Q R S T U X Y Z)
|
13
|
+
# Length
|
14
|
+
# config.length = 6
|
15
|
+
# Font
|
16
|
+
# config.font_size = 24
|
17
|
+
# config.font_fill_color = '#333333'
|
18
|
+
# config.font_stroke_color = '#000000'
|
19
|
+
# config.font_stroke = 0
|
20
|
+
# config.font_family = File.expand_path('../../resources/afont.ttf', __FILE__)
|
21
|
+
|
22
|
+
# Image
|
23
|
+
#config.image_height = 40
|
24
|
+
#config.image_width = 140
|
25
|
+
#config.image_background_color = "#FFFFFF"
|
26
|
+
|
27
|
+
# Wave
|
28
|
+
# config.wave = true
|
29
|
+
# config.wave_length = (60..100)
|
30
|
+
# config.wave_amplitude = (3..5)
|
31
|
+
|
32
|
+
# Sketch
|
33
|
+
# config.sketch = true
|
34
|
+
# config.sketch_radius = 3
|
35
|
+
# config.sketch_sigma = 1
|
36
|
+
|
37
|
+
# Implode
|
38
|
+
# config.implode = 0.1
|
39
|
+
|
40
|
+
# Blur
|
41
|
+
# config.blur = true
|
42
|
+
# config.blur_radius = 1
|
43
|
+
# config.blur_sigma = 2
|
44
|
+
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 3
|
8
|
+
- 0
|
9
|
+
version: 0.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Marco Scholl
|
@@ -14,28 +14,83 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-26 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
22
|
-
prerelease: false
|
21
|
+
name: rails
|
23
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
26
25
|
- - ">="
|
27
26
|
- !ruby/object:Gem::Version
|
28
27
|
segments:
|
28
|
+
- 3
|
29
|
+
- 0
|
30
|
+
- 0
|
31
|
+
version: 3.0.0
|
32
|
+
type: :runtime
|
33
|
+
prerelease: false
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rmagick
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
version: "0"
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: bundler
|
50
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 1
|
57
|
+
- 0
|
58
|
+
- 0
|
59
|
+
version: 1.0.0
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: jeweler
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 1
|
72
|
+
- 5
|
29
73
|
- 1
|
30
|
-
|
31
|
-
- 9
|
32
|
-
version: 1.2.9
|
74
|
+
version: 1.5.1
|
33
75
|
type: :development
|
34
|
-
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: *id004
|
35
78
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
79
|
+
name: cover_me
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
type: :development
|
37
89
|
prerelease: false
|
38
|
-
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rails
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
39
94
|
none: false
|
40
95
|
requirements:
|
41
96
|
- - ">="
|
@@ -46,11 +101,11 @@ dependencies:
|
|
46
101
|
- 0
|
47
102
|
version: 3.0.0
|
48
103
|
type: :runtime
|
49
|
-
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: *id006
|
50
106
|
- !ruby/object:Gem::Dependency
|
51
107
|
name: rmagick
|
52
|
-
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
108
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
54
109
|
none: false
|
55
110
|
requirements:
|
56
111
|
- - ">="
|
@@ -59,7 +114,8 @@ dependencies:
|
|
59
114
|
- 0
|
60
115
|
version: "0"
|
61
116
|
type: :runtime
|
62
|
-
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: *id007
|
63
119
|
description: Captcha-Plugin for Rails
|
64
120
|
email: develop@marco-scholl.de
|
65
121
|
executables: []
|
@@ -67,9 +123,12 @@ executables: []
|
|
67
123
|
extensions: []
|
68
124
|
|
69
125
|
extra_rdoc_files:
|
126
|
+
- LICENSE.txt
|
70
127
|
- README.rdoc
|
71
128
|
files:
|
72
|
-
-
|
129
|
+
- Gemfile
|
130
|
+
- Gemfile.lock
|
131
|
+
- LICENSE.txt
|
73
132
|
- README.rdoc
|
74
133
|
- Rakefile
|
75
134
|
- VERSION
|
@@ -80,15 +139,18 @@ files:
|
|
80
139
|
- lib/easy_captcha/controller.rb
|
81
140
|
- lib/easy_captcha/controller_helpers.rb
|
82
141
|
- lib/easy_captcha/model_helpers.rb
|
142
|
+
- lib/easy_captcha/routes.rb
|
83
143
|
- lib/easy_captcha/view_helpers.rb
|
144
|
+
- lib/generators/easy_captcha/install_generator.rb
|
145
|
+
- lib/generators/templates/easy_captcha.rb
|
84
146
|
- resources/captcha.ttf
|
85
147
|
- spec/easy_captcha_spec.rb
|
86
148
|
- spec/spec.opts
|
87
149
|
- spec/spec_helper.rb
|
88
150
|
has_rdoc: true
|
89
151
|
homepage: http://github.com/traxanos/easy_captcha
|
90
|
-
licenses:
|
91
|
-
|
152
|
+
licenses:
|
153
|
+
- MIT
|
92
154
|
post_install_message:
|
93
155
|
rdoc_options: []
|
94
156
|
|
@@ -99,6 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
99
161
|
requirements:
|
100
162
|
- - ">="
|
101
163
|
- !ruby/object:Gem::Version
|
164
|
+
hash: 3005660918227227729
|
102
165
|
segments:
|
103
166
|
- 0
|
104
167
|
version: "0"
|