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 ADDED
@@ -0,0 +1,9 @@
1
+ source "http://rubygems.org"
2
+ gem "rails", ">= 3.0.0"
3
+ gem "rmagick"
4
+
5
+ group :development do
6
+ gem "bundler", "~> 1.0.0"
7
+ gem "jeweler", "~> 1.5.1"
8
+ gem "cover_me"
9
+ end
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
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 [name of plugin creator]
1
+ Copyright (c) 2010 Marco Scholl
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -1,20 +1,15 @@
1
- == EasyCaptcha
1
+ = EasyCaptcha
2
2
  A simple captcha implementation for rails 3 based on rmagick
3
3
 
4
4
  == Installation
5
- To install easy_captcha
6
- gem install easy_captcha
5
+ add to Gemfile
6
+ gem 'easy_captcha'
7
7
 
8
- Add following line to routes.rb
9
- get :captcha => EasyCaptcha::Controller
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 write this in "config/initializers/easy_captcha.rb", if you want to customize the default configuration
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
- == License
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, released under the MIT license
95
+ Copyright (c) 2010 Marco Scholl. See LICENSE.txt for further details.
data/Rakefile CHANGED
@@ -1,52 +1,48 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gemspec|
7
- gemspec.name = "easy_captcha"
8
- gemspec.summary = "Captcha-Plugin for Rails"
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
- Spec::Rake::SpecTask.new(:rcov) do |spec|
29
- spec.libs << 'lib' << 'spec'
30
- spec.pattern = 'spec/**/*_spec.rb'
31
- spec.rcov = true
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
- task :spec => :check_dependencies
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
- begin
37
- require 'reek/adapters/rake_task'
38
- Reek::RakeTask.new do |t|
39
- t.fail_on_error = true
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 :default => :spec
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.2.5
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.2.5"
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{2010-12-07}
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
- "MIT-LICENSE",
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.add_development_dependency(%q<rspec>, [">= 1.2.9"])
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<rspec>, [">= 1.2.9"])
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<rspec>, [">= 1.2.9"])
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
@@ -90,6 +90,7 @@ module EasyCaptcha
90
90
 
91
91
  # called by rails after initialize
92
92
  def init
93
+ require 'easy_captcha/routes'
93
94
  ActiveRecord::Base.send :include, ModelHelpers
94
95
  ActionController::Base.send :include, ControllerHelpers
95
96
  ActionView::Base.send :include, ViewHelpers
@@ -1,6 +1,5 @@
1
1
  module EasyCaptcha
2
2
  # captcha controller
3
- # get :captcha => EasyCaptcha::Controller
4
3
  class Controller < ActionController::Base
5
4
  # captcha action send the generated image to browser
6
5
  def captcha
@@ -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 = File.open(files.at(Kernel.rand(files.size)))
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
- def captcha
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
@@ -0,0 +1,10 @@
1
+ module ActionDispatch #:nodoc:
2
+ module Routing #:nodoc:
3
+ class Mapper #:nodoc:
4
+ # call to add default captcha root
5
+ def captcha_route
6
+ match "captcha" => EasyCaptcha::Controller, :via => :get
7
+ end
8
+ end
9
+ end
10
+ 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 = args.extract_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
- - 2
8
- - 5
9
- version: 0.2.5
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: 2010-12-07 00:00:00 +01:00
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: rspec
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
- - 2
31
- - 9
32
- version: 1.2.9
74
+ version: 1.5.1
33
75
  type: :development
34
- version_requirements: *id001
76
+ prerelease: false
77
+ version_requirements: *id004
35
78
  - !ruby/object:Gem::Dependency
36
- name: rails
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- version_requirements: *id002
104
+ prerelease: false
105
+ version_requirements: *id006
50
106
  - !ruby/object:Gem::Dependency
51
107
  name: rmagick
52
- prerelease: false
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
- version_requirements: *id003
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
- - MIT-LICENSE
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"