-
-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add visual_honeypots option; controller method with more options; mor…
…e specs
- Loading branch information
Showing
45 changed files
with
502 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
.bundle | ||
pkg | ||
.rvmrc | ||
Gemfile.lock | ||
Gemfile.lock | ||
spec/dummy/log/*.log | ||
spec/dummy/tmp/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
module InvisibleCaptcha | ||
module FormHelpers | ||
def invisible_captcha(method) | ||
@template.invisible_captcha(self.object_name, method) | ||
def invisible_captcha(honeypot) | ||
@template.invisible_captcha(self.object_name, honeypot) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
require 'spec_helper' | ||
|
||
describe InvisibleCaptcha::ControllerExt, type: :controller do | ||
render_views | ||
|
||
before { @controller = TopicsController.new } | ||
|
||
it 'with spam' do | ||
post :create, topic: { subtitle: 'foo' } | ||
|
||
expect(response.body).to be_blank | ||
end | ||
|
||
it 'with no spam' do | ||
post :create, topic: { title: 'foo' } | ||
|
||
expect(response.body).to be_present | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Dummy App | ||
|
||
Dummy Rails Application to test `Invisible Captcha`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#!/usr/bin/env rake | ||
# Add your own tasks in files placed in lib/tasks ending in .rake, | ||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||
|
||
require File.expand_path('../config/application', __FILE__) | ||
|
||
Dummy::Application.load_tasks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// This is a manifest file that'll be compiled into application.js, which will include all the files | ||
// listed below. | ||
// | ||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, | ||
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. | ||
// | ||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the | ||
// the compiled file. | ||
// | ||
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD | ||
// GO AFTER THE REQUIRES BELOW. | ||
// | ||
//= require jquery | ||
//= require jquery_ujs | ||
//= require_tree . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/* | ||
* This is a manifest file that'll be compiled into application.css, which will include all the files | ||
* listed below. | ||
* | ||
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | ||
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. | ||
* | ||
* You're free to add application-wide styles to this file and they'll appear at the top of the | ||
* compiled file, but it's generally better to create a new file per style scope. | ||
* | ||
*= require_self | ||
*= require_tree . | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
class ApplicationController < ActionController::Base | ||
protect_from_forgery | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
class TopicsController < ApplicationController | ||
invisible_captcha honeypot: :subtitle, only: :create | ||
|
||
def new | ||
@topic = Topic.new | ||
end | ||
|
||
def create | ||
@topic = Topic.new(params[:topic]) | ||
|
||
if @topic.valid? | ||
redirect_to new_topic_path, notice: 'OK!' | ||
else | ||
render action: 'new' | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
module ApplicationHelper | ||
end |
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
class Topic | ||
include ActiveModel::Validations | ||
include ActiveModel::Conversion | ||
|
||
attr_accessor :title, :body, :subtitle | ||
|
||
validates :subtitle, invisible_captcha: true | ||
|
||
def initialize(attributes = {}) | ||
attributes.each do |name, value| | ||
send("#{name}=", value) | ||
end | ||
end | ||
|
||
def persisted? | ||
false | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>Dummy</title> | ||
<%= stylesheet_link_tag "application", :media => "all" %> | ||
<%= javascript_include_tag "application" %> | ||
<%= csrf_meta_tags %> | ||
</head> | ||
<body> | ||
|
||
<%= yield %> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<h1>New topic</h1> | ||
|
||
<%= form_for(@topic) do |f| %> | ||
<%= f.invisible_captcha :subtitle %> | ||
<%#= invisible_captcha %> | ||
|
||
<div class="field"> | ||
<%= f.label :title %><br /> | ||
<%= f.text_field :title %> | ||
</div> | ||
<div class="field"> | ||
<%= f.label :body %><br /> | ||
<%= f.text_area :body %> | ||
</div> | ||
<div class="actions"> | ||
<%= f.submit %> | ||
</div> | ||
<% end %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# This file is used by Rack-based servers to start the application. | ||
|
||
require ::File.expand_path('../config/environment', __FILE__) | ||
run Dummy::Application |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
require File.expand_path('../boot', __FILE__) | ||
|
||
require 'action_controller/railtie' | ||
require 'action_view/railtie' | ||
require 'action_mailer/railtie' | ||
require 'active_model/railtie' | ||
|
||
Bundler.require(*Rails.groups) | ||
|
||
require 'invisible_captcha' | ||
|
||
module Dummy | ||
class Application < Rails::Application | ||
config.encoding = 'utf-8' | ||
config.filter_parameters += [:password] | ||
config.assets.enabled = true | ||
config.assets.version = '1.0' | ||
end | ||
end | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Set up gems listed in the Gemfile. | ||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__) | ||
|
||
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) | ||
$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Load the rails application | ||
require File.expand_path('../application', __FILE__) | ||
|
||
# Initialize the rails application | ||
Dummy::Application.initialize! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
Dummy::Application.configure do | ||
# Settings specified here will take precedence over those in config/application.rb | ||
|
||
# In the development environment your application's code is reloaded on | ||
# every request. This slows down response time but is perfect for development | ||
# since you don't have to restart the web server when you make code changes. | ||
config.cache_classes = false | ||
|
||
# Log error messages when you accidentally call methods on nil. | ||
config.whiny_nils = true | ||
|
||
# Show full error reports and disable caching | ||
config.consider_all_requests_local = true | ||
config.action_controller.perform_caching = false | ||
|
||
# Don't care if the mailer can't send | ||
config.action_mailer.raise_delivery_errors = false | ||
|
||
# Print deprecation notices to the Rails logger | ||
config.active_support.deprecation = :log | ||
|
||
# Only use best-standards-support built into browsers | ||
config.action_dispatch.best_standards_support = :builtin | ||
|
||
# Do not compress assets | ||
config.assets.compress = false | ||
|
||
# Expands the lines which load the assets | ||
config.assets.debug = true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
Dummy::Application.configure do | ||
# Settings specified here will take precedence over those in config/application.rb | ||
|
||
# Code is not reloaded between requests | ||
config.cache_classes = true | ||
|
||
# Full error reports are disabled and caching is turned on | ||
config.consider_all_requests_local = false | ||
config.action_controller.perform_caching = true | ||
|
||
# Disable Rails's static asset server (Apache or nginx will already do this) | ||
config.serve_static_assets = false | ||
|
||
# Compress JavaScripts and CSS | ||
config.assets.compress = true | ||
|
||
# Don't fallback to assets pipeline if a precompiled asset is missed | ||
config.assets.compile = false | ||
|
||
# Generate digests for assets URLs | ||
config.assets.digest = true | ||
|
||
# Defaults to nil and saved in location specified by config.assets.prefix | ||
# config.assets.manifest = YOUR_PATH | ||
|
||
# Specifies the header that your server uses for sending files | ||
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache | ||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx | ||
|
||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | ||
# config.force_ssl = true | ||
|
||
# See everything in the log (default is :info) | ||
# config.log_level = :debug | ||
|
||
# Prepend all log lines with the following tags | ||
# config.log_tags = [ :subdomain, :uuid ] | ||
|
||
# Use a different logger for distributed setups | ||
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) | ||
|
||
# Use a different cache store in production | ||
# config.cache_store = :mem_cache_store | ||
|
||
# Enable serving of images, stylesheets, and JavaScripts from an asset server | ||
# config.action_controller.asset_host = "http://assets.example.com" | ||
|
||
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) | ||
# config.assets.precompile += %w( search.js ) | ||
|
||
# Disable delivery errors, bad email addresses will be ignored | ||
# config.action_mailer.raise_delivery_errors = false | ||
|
||
# Enable threaded mode | ||
# config.threadsafe! | ||
|
||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to | ||
# the I18n.default_locale when a translation can not be found) | ||
config.i18n.fallbacks = true | ||
|
||
# Send deprecation notices to registered listeners | ||
config.active_support.deprecation = :notify | ||
|
||
# Log the query plan for queries taking more than this (works | ||
# with SQLite, MySQL, and PostgreSQL) | ||
# config.active_record.auto_explain_threshold_in_seconds = 0.5 | ||
end |
Oops, something went wrong.