acts_as_textcaptcha 4.6.0 → 4.7.0
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 +4 -4
- data/.github/workflows/build.yml +40 -0
- data/.github/workflows/push_gem.yml +25 -0
- data/Appraisals +2 -14
- data/CHANGELOG.md +9 -1
- data/README.md +10 -17
- data/Rakefile +1 -17
- data/acts_as_textcaptcha.gemspec +2 -9
- data/gemfiles/rails_6.gemfile +2 -4
- data/lib/acts_as_textcaptcha/textcaptcha_api.rb +2 -5
- data/lib/acts_as_textcaptcha/version.rb +1 -1
- metadata +14 -74
- data/.rubocop.yml +0 -1165
- data/.travis.yml +0 -57
- data/gemfiles/rails_3.gemfile +0 -8
- data/gemfiles/rails_4.gemfile +0 -8
- data/gemfiles/rails_5.gemfile +0 -8
- data/gemfiles/rails_7.gemfile +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97a85cf9e199655854243a2a751cd00e4c9c8b45b19eb6ae0b14293b7c1964b2
|
4
|
+
data.tar.gz: a26d0dbfb3a8a6a278099879f432ea2928a4add8388ba818421aaa665482f463
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5756a2a22abc5bceae0a7303cb2f1a13213307d4b02a8e00cc8704ee372e16758f583da250e309858ff52bb4421559cba099459f95c2de2bb41c65813dee17b
|
7
|
+
data.tar.gz: 88acda928cfd9789e5d9334ef2644b2449066024f9f3e6f0e4c2b90ca343e6c298f06f9c82921c8be408a1eb4a187fbdd95811538c640a3b56aa7266366b2b61
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: Tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ "main" ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ "main" ]
|
8
|
+
|
9
|
+
permissions:
|
10
|
+
contents: read
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby-version:
|
17
|
+
- "3.1"
|
18
|
+
- "3.2"
|
19
|
+
- "3.3"
|
20
|
+
- "3.4"
|
21
|
+
gemfile:
|
22
|
+
- Gemfile
|
23
|
+
- gemfiles/rails_6.gemfile
|
24
|
+
exclude:
|
25
|
+
- ruby-version: "3.4"
|
26
|
+
gemfile: gemfiles/rails_6.gemfile
|
27
|
+
runs-on: ubuntu-latest
|
28
|
+
name: ${{ format('Tests (Ruby {0})', matrix.ruby-version) }}
|
29
|
+
continue-on-error: true
|
30
|
+
env:
|
31
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v4
|
34
|
+
- name: Set up Ruby
|
35
|
+
uses: ruby/setup-ruby@v1
|
36
|
+
with:
|
37
|
+
ruby-version: ${{ matrix.ruby-version }}
|
38
|
+
bundler-cache: true
|
39
|
+
- name: Run tests
|
40
|
+
run: bundle exec rake
|
@@ -0,0 +1,25 @@
|
|
1
|
+
name: Publish gem to RubyGems.org
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- v*
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
push:
|
10
|
+
name: Push gem to RubyGems.org
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
permissions:
|
14
|
+
id-token: write
|
15
|
+
contents: write
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v4
|
19
|
+
- name: Set up Ruby
|
20
|
+
uses: ruby/setup-ruby@v1
|
21
|
+
with:
|
22
|
+
bundler-cache: true
|
23
|
+
ruby-version: ruby
|
24
|
+
|
25
|
+
- uses: rubygems/release-gem@v1
|
data/Appraisals
CHANGED
@@ -1,19 +1,7 @@
|
|
1
|
-
appraise "rails-4" do
|
2
|
-
gem "rails", "4.2.11.3"
|
3
|
-
gem "sqlite3", "~> 1.3.5"
|
4
|
-
end
|
5
|
-
|
6
|
-
appraise "rails-5" do
|
7
|
-
gem "rails", "5.2.4.4"
|
8
|
-
gem "sqlite3", "~> 1.4.2"
|
9
|
-
end
|
10
|
-
|
11
1
|
appraise "rails-6" do
|
12
|
-
gem "rails", "6.
|
13
|
-
gem "sqlite3", "~> 1.4.2"
|
2
|
+
gem "rails", "6.1.7.8"
|
14
3
|
end
|
15
4
|
|
16
5
|
appraise "rails-7" do
|
17
|
-
gem "rails", "7.
|
18
|
-
gem "sqlite3", "~> 1.4.2"
|
6
|
+
gem "rails", "7.2.0"
|
19
7
|
end
|
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,13 @@ adheres to [Semantic Versioning][Semver].
|
|
9
9
|
|
10
10
|
- Your contribution here!
|
11
11
|
|
12
|
+
## [4.7.0] - 2024-10-03
|
13
|
+
### Changed
|
14
|
+
- CI covers Latest Rails version 7, 6 and Ruby 3.1 -> 3.4
|
15
|
+
- Removed Apprasial
|
16
|
+
- Added GH workflow
|
17
|
+
- Dropped rubocop, simplecov
|
18
|
+
|
12
19
|
## [4.6.0] - 2022-02-14
|
13
20
|
### Changed
|
14
21
|
- CI covers Latest Rails version 7 and Ruby 3.1
|
@@ -100,7 +107,8 @@ adheres to [Semantic Versioning][Semver].
|
|
100
107
|
- README updated.
|
101
108
|
- Test coverage improved.
|
102
109
|
|
103
|
-
[Unreleased]: https://github.com/matthutchinson/acts_as_textcaptcha/compare/v4.
|
110
|
+
[Unreleased]: https://github.com/matthutchinson/acts_as_textcaptcha/compare/v4.7.0...HEAD
|
111
|
+
[4.7.0]: https://github.com/matthutchinson/acts_as_textcaptcha/compare/v4.6.0...v4.7.0
|
104
112
|
[4.6.0]: https://github.com/matthutchinson/acts_as_textcaptcha/compare/v4.5.2...v4.6.0
|
105
113
|
[4.5.2]: https://github.com/matthutchinson/acts_as_textcaptcha/compare/v4.5.1...v4.5.2
|
106
114
|
[4.5.1]: https://github.com/matthutchinson/acts_as_textcaptcha/compare/v4.5.0...v4.5.1
|
data/README.md
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
## ActAsTextcaptcha
|
2
2
|
|
3
|
+
[](https://github.com/matthutchinson/acts_as_textcaptcha/actions/workflows/build.yml)
|
3
4
|
[](http://rubygems.org/gems/acts_as_textcaptcha)
|
4
|
-
[](https://travis-ci.com/matthutchinson/acts_as_textcaptcha)
|
5
5
|
[](https://depfu.com/github/matthutchinson/acts_as_textcaptcha)
|
6
|
-
[](https://codeclimate.com/github/matthutchinson/acts_as_textcaptcha/maintainability)
|
7
|
-
[](https://codeclimate.com/github/matthutchinson/acts_as_textcaptcha/test_coverage)
|
8
6
|
|
9
7
|
ActsAsTextcaptcha provides spam protection for Rails models with text-based
|
10
8
|
logic question captchas. Questions are fetched from [Rob
|
@@ -18,16 +16,13 @@ are a good idea visit [textcaptcha.com](https://textcaptcha.com).
|
|
18
16
|
|
19
17
|
## Requirements
|
20
18
|
|
21
|
-
* [Ruby](http://ruby-lang.org/) >=
|
22
|
-
* [Rails](http://github.com/rails/rails) >=
|
19
|
+
* [Ruby](http://ruby-lang.org/) >= 3.1
|
20
|
+
* [Rails](http://github.com/rails/rails) >= 6.1
|
23
21
|
* A valid [Rails.cache](http://guides.rubyonrails.org/caching_with_rails.html#cache-stores) (not `:null_store`)
|
24
22
|
|
25
23
|
## Demo
|
26
24
|
|
27
|
-
Try a [working demo here](https://acts-as-textcaptcha
|
28
|
-
Or one-click deploy your own [demo app](https://github.com/matthutchinson/acts_as_textcaptcha_demo) to Heroku.
|
29
|
-
|
30
|
-
[](https://www.heroku.com/deploy?template=https://github.com/matthutchinson/acts_as_textcaptcha_demo/tree/master)
|
25
|
+
Try a [working demo here](https://acts-as-textcaptcha.hiddenloop.dev)!
|
31
26
|
|
32
27
|
## Installation
|
33
28
|
|
@@ -210,8 +205,7 @@ The API may be unresponsive or return an unexpected response. If you've set
|
|
210
205
|
## Development
|
211
206
|
|
212
207
|
Check out this repo and run `bin/setup`, this will install gem dependencies and
|
213
|
-
generate docs. Use `bundle exec rake` to run tests
|
214
|
-
report.
|
208
|
+
generate docs. Use `bundle exec rake` to run tests.
|
215
209
|
|
216
210
|
You can also run `bin/console` for an interactive prompt to experiment with the
|
217
211
|
code.
|
@@ -257,10 +251,11 @@ Covenant](http://contributor-covenant.org) code of conduct. See
|
|
257
251
|
[here](https://github.com/matthutchinson/acts_as_textcaptcha/blob/master/CODE_OF_CONDUCT.md)
|
258
252
|
for more details.
|
259
253
|
|
260
|
-
##
|
254
|
+
## Ideas
|
261
255
|
|
256
|
+
* Check if AI models can beat this approach
|
262
257
|
* Allow translatable user supplied questions and answers in config
|
263
|
-
* Allow `Net::HTTP` to be swapped out for any
|
258
|
+
* Allow `Net::HTTP` to be swapped out for any HTTP client.
|
264
259
|
|
265
260
|
## License
|
266
261
|
|
@@ -274,10 +269,8 @@ The code is available as open source under the terms of
|
|
274
269
|
|
275
270
|
## Links
|
276
271
|
|
277
|
-
* [
|
278
|
-
* [
|
279
|
-
* [Maintainability](https://codeclimate.com/github/matthutchinson/acts_as_textcaptcha/maintainability)
|
280
|
-
* [Test Coverage](https://codeclimate.com/github/matthutchinson/acts_as_textcaptcha/test_coverage)
|
272
|
+
* [CI](https://github.com/matthutchinson/acts_as_textcaptcha/actions/workflows/build.yml)
|
273
|
+
* [Demo](https://acts-as-textcaptcha.hiddenloop.dev)
|
281
274
|
* [RDoc](http://rdoc.info/projects/matthutchinson/acts_as_textcaptcha)
|
282
275
|
* [Wiki](http://wiki.github.com/matthutchinson/acts_as_textcaptcha/)
|
283
276
|
* [Issues](http://github.com/matthutchinson/acts_as_textcaptcha/issues)
|
data/Rakefile
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "rake/testtask"
|
5
5
|
require "rdoc/task"
|
6
|
-
require "rubocop/rake_task"
|
7
6
|
|
8
7
|
# generate docs
|
9
8
|
RDoc::Task.new do |rd|
|
@@ -21,19 +20,4 @@ Rake::TestTask.new(:test) do |t|
|
|
21
20
|
t.test_files = FileList["test/**/*_test.rb"]
|
22
21
|
end
|
23
22
|
|
24
|
-
|
25
|
-
RuboCop::RakeTask.new(:rubocop) do |t|
|
26
|
-
t.options = ["--display-cop-names"]
|
27
|
-
end
|
28
|
-
|
29
|
-
# run tests with code coverage (default)
|
30
|
-
namespace :test do
|
31
|
-
desc "Run all tests and features and generate a code coverage report"
|
32
|
-
task :coverage do
|
33
|
-
ENV["COVERAGE"] = "true"
|
34
|
-
Rake::Task["test"].execute
|
35
|
-
Rake::Task["rubocop"].execute
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
task default: [:rubocop, "test:coverage"]
|
23
|
+
task default: ["test"]
|
data/acts_as_textcaptcha.gemspec
CHANGED
@@ -30,7 +30,6 @@ Gem::Specification.new do |spec|
|
|
30
30
|
}
|
31
31
|
|
32
32
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
33
|
-
spec.test_files = `git ls-files -- {test}/*`.split("\n")
|
34
33
|
spec.bindir = "bin"
|
35
34
|
spec.require_paths = ["lib"]
|
36
35
|
|
@@ -39,24 +38,18 @@ Gem::Specification.new do |spec|
|
|
39
38
|
spec.rdoc_options << "--title" << "ActAsTextcaptcha" << "--main" << "README.md" << "-ri"
|
40
39
|
|
41
40
|
# non-gem dependecies
|
42
|
-
spec.required_ruby_version = ">=
|
41
|
+
spec.required_ruby_version = ">= 3.1"
|
43
42
|
|
44
43
|
# dev gems
|
45
44
|
spec.add_development_dependency("bundler")
|
46
|
-
spec.add_development_dependency("pry-byebug")
|
47
45
|
spec.add_development_dependency "rake"
|
48
46
|
|
49
|
-
# Lint
|
50
|
-
spec.add_development_dependency("rubocop")
|
51
|
-
|
52
47
|
# docs
|
53
48
|
spec.add_development_dependency("rdoc")
|
54
49
|
|
55
50
|
# testing
|
56
|
-
spec.add_development_dependency("
|
51
|
+
spec.add_development_dependency("rails", "~> 7.2")
|
57
52
|
spec.add_development_dependency("minitest")
|
58
|
-
spec.add_development_dependency("rails", "~> 7.0.2.2")
|
59
|
-
spec.add_development_dependency("simplecov", "~> 0.19.1")
|
60
53
|
spec.add_development_dependency("sqlite3")
|
61
54
|
spec.add_development_dependency("webmock")
|
62
55
|
end
|
data/gemfiles/rails_6.gemfile
CHANGED
@@ -7,11 +7,8 @@ module ActsAsTextcaptcha
|
|
7
7
|
BASE_URL = "http://textcaptcha.com"
|
8
8
|
|
9
9
|
def initialize(api_key: nil, api_endpoint: nil, raise_errors: false)
|
10
|
-
self.uri =
|
11
|
-
|
12
|
-
else
|
13
|
-
URI("#{BASE_URL}/#{api_key}.json")
|
14
|
-
end
|
10
|
+
self.uri = URI(api_endpoint || "#{BASE_URL}/#{api_key}.json")
|
11
|
+
|
15
12
|
self.raise_errors = raise_errors || false
|
16
13
|
rescue URI::InvalidURIError => e
|
17
14
|
raise ApiKeyError.new(api_key, e)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_textcaptcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Hutchinson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: pry-byebug
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rake
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,20 +38,6 @@ dependencies:
|
|
52
38
|
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rubocop
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: rdoc
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,19 +53,19 @@ dependencies:
|
|
81
53
|
- !ruby/object:Gem::Version
|
82
54
|
version: '0'
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
56
|
+
name: rails
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
86
58
|
requirements:
|
87
|
-
- - "
|
59
|
+
- - "~>"
|
88
60
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
61
|
+
version: '7.2'
|
90
62
|
type: :development
|
91
63
|
prerelease: false
|
92
64
|
version_requirements: !ruby/object:Gem::Requirement
|
93
65
|
requirements:
|
94
|
-
- - "
|
66
|
+
- - "~>"
|
95
67
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
68
|
+
version: '7.2'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
70
|
name: minitest
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,34 +80,6 @@ dependencies:
|
|
108
80
|
- - ">="
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rails
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 7.0.2.2
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 7.0.2.2
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: simplecov
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 0.19.1
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 0.19.1
|
139
83
|
- !ruby/object:Gem::Dependency
|
140
84
|
name: sqlite3
|
141
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,10 +121,10 @@ extra_rdoc_files:
|
|
177
121
|
- README.md
|
178
122
|
- LICENSE
|
179
123
|
files:
|
124
|
+
- ".github/workflows/build.yml"
|
125
|
+
- ".github/workflows/push_gem.yml"
|
180
126
|
- ".gitignore"
|
181
|
-
- ".rubocop.yml"
|
182
127
|
- ".simplecov"
|
183
|
-
- ".travis.yml"
|
184
128
|
- Appraisals
|
185
129
|
- CHANGELOG.md
|
186
130
|
- CODE_OF_CONDUCT.md
|
@@ -193,11 +137,7 @@ files:
|
|
193
137
|
- acts_as_textcaptcha.gemspec
|
194
138
|
- bin/console
|
195
139
|
- bin/setup
|
196
|
-
- gemfiles/rails_3.gemfile
|
197
|
-
- gemfiles/rails_4.gemfile
|
198
|
-
- gemfiles/rails_5.gemfile
|
199
140
|
- gemfiles/rails_6.gemfile
|
200
|
-
- gemfiles/rails_7.gemfile
|
201
141
|
- lib/acts_as_textcaptcha.rb
|
202
142
|
- lib/acts_as_textcaptcha/errors.rb
|
203
143
|
- lib/acts_as_textcaptcha/framework/rails.rb
|
@@ -219,7 +159,7 @@ metadata:
|
|
219
159
|
bug_tracker_uri: https://github.com/matthutchinson/acts_as_textcaptcha/issues
|
220
160
|
allowed_push_host: https://rubygems.org
|
221
161
|
rubygems_mfa_required: 'true'
|
222
|
-
post_install_message:
|
162
|
+
post_install_message:
|
223
163
|
rdoc_options:
|
224
164
|
- "--title"
|
225
165
|
- ActAsTextcaptcha
|
@@ -232,15 +172,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
232
172
|
requirements:
|
233
173
|
- - ">="
|
234
174
|
- !ruby/object:Gem::Version
|
235
|
-
version: '
|
175
|
+
version: '3.1'
|
236
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
237
177
|
requirements:
|
238
178
|
- - ">="
|
239
179
|
- !ruby/object:Gem::Version
|
240
180
|
version: '0'
|
241
181
|
requirements: []
|
242
|
-
rubygems_version: 3.
|
243
|
-
signing_key:
|
182
|
+
rubygems_version: 3.5.16
|
183
|
+
signing_key:
|
244
184
|
specification_version: 4
|
245
185
|
summary: A text-based logic question captcha for Rails
|
246
186
|
test_files: []
|