humanizer 2.0.0 → 2.1.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.
- data/LICENSE +2 -2
- data/README.md +33 -9
- data/lib/generators/humanizer_generator.rb +45 -3
- data/lib/generators/templates/locales/de.yml +43 -0
- data/lib/generators/templates/{en.yml → locales/en.yml} +4 -4
- data/lib/generators/templates/locales/fi.yml +43 -0
- data/lib/generators/templates/locales/nl.yml +43 -0
- data/lib/generators/templates/locales/pt-BR.yml +43 -0
- data/lib/generators/templates/locales/pt-PT.yml +43 -0
- data/lib/humanizer.rb +4 -3
- data/lib/humanizer/version.rb +2 -2
- metadata +70 -7
data/LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2010
|
1
|
+
Copyright (c) 2010 Kisko Labs and contributors.
|
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
|
@@ -17,4 +17,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
17
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
18
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
19
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,11 +1,19 @@
|
|
1
|
+
# Humanizer
|
2
|
+
|
1
3
|
Humanizer is a very simple CAPTCHA method. It has a localized YAML file with questions and answers which is used to validate that the user is an actual human. Any model that includes ActiveModel::Validations should work. Our aim is to be database and mapper agnostic, so if it doesn't work for you, open an issue. Humanizer only works with Rails 3.
|
2
4
|
|
3
|
-
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
1. `gem install humanizer`
|
8
|
+
2. `rails g humanizer`
|
9
|
+
|
10
|
+
## Advanced Installation
|
4
11
|
|
5
|
-
|
6
|
-
|
12
|
+
* Install all locales: `rails g humanizer --all-locales`
|
13
|
+
* Show available locales: `rails g humanizer --show-locales`
|
14
|
+
* Install selected locales: `rails g humanizer en fi de`
|
7
15
|
|
8
|
-
|
16
|
+
## Usage
|
9
17
|
|
10
18
|
1. In your model, include Humanizer and add the #require_human_on method, example:
|
11
19
|
|
@@ -20,12 +28,28 @@ Humanizer is a very simple CAPTCHA method. It has a localized YAML file with que
|
|
20
28
|
<%= f.text_field :humanizer_answer %>
|
21
29
|
<%= f.hidden_field :humanizer_question_id %>
|
22
30
|
|
23
|
-
|
31
|
+
## Configuration
|
32
|
+
|
33
|
+
Default translations can be found in config/locales/
|
34
|
+
|
35
|
+
You might want to add/change question and answer pairs. This can be easily done by adding/modifying entries in locales file.
|
36
|
+
|
37
|
+
## Live sites
|
38
|
+
|
39
|
+
* [ArcticStartup.com](http://arcticstartup.com/) - signup form
|
40
|
+
|
41
|
+
## License
|
42
|
+
|
43
|
+
Humanizer is licensed under the MIT License, for more details see the LICENSE file.
|
24
44
|
|
25
|
-
|
45
|
+
## Question/Answer Translations
|
26
46
|
|
27
|
-
|
47
|
+
* English, Finnish and Portuguese translations by [Kisko Labs](http://kiskolabs.com/)
|
48
|
+
* German by [Sven Schwyn](http://github.com/svoop)
|
49
|
+
* Dutch by [Joren De Groof](http://github.com/joren)
|
50
|
+
* Brazilian Portuguese by [Britto](http://github.com/britto)
|
28
51
|
|
29
|
-
|
52
|
+
## Contributors
|
30
53
|
|
31
|
-
* [
|
54
|
+
* [Florian Bertholin](http://github.com/Arkan)
|
55
|
+
* [seogrady](http://github.com/seogrady)
|
@@ -1,7 +1,49 @@
|
|
1
1
|
class HumanizerGenerator < Rails::Generators::Base
|
2
|
-
|
2
|
+
source_root File.expand_path("../templates/locales", __FILE__)
|
3
|
+
argument :selected_locales, :type => :array, :default => ["en"], :banner => "en fi de"
|
4
|
+
desc "Adds locales for Humanizer to your Rails application.\nBy default it will only add English."
|
5
|
+
class_option :"show-locales", :desc => "Print all available locales", :type => :boolean
|
6
|
+
class_option :"all-locales", :desc => "Install all available locales", :type => :boolean
|
3
7
|
|
4
|
-
def
|
5
|
-
|
8
|
+
def add_locales
|
9
|
+
if options["show-locales"]
|
10
|
+
puts "Available locales:\n" +
|
11
|
+
" - " + available_locales.sort.join("\n - ")
|
12
|
+
else
|
13
|
+
if options["all-locales"]
|
14
|
+
install_locales(available_locales)
|
15
|
+
else
|
16
|
+
check_locales!
|
17
|
+
install_locales(selected_locales)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def available_locales
|
25
|
+
Dir.glob(File.join(self.class.source_root, "*.yml")).map do |path|
|
26
|
+
path.match(/([\w-]+)\.yml$/)[1]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def check_locales!
|
31
|
+
unknown_locales = []
|
32
|
+
selected_locales.each do |locale|
|
33
|
+
unknown_locales << locale unless available_locales.include?(locale)
|
34
|
+
end
|
35
|
+
|
36
|
+
if unknown_locales.any?
|
37
|
+
abort "The following locales do not exist: \n" +
|
38
|
+
" - " + unknown_locales.join("\n - ") + "\n\n" +
|
39
|
+
"The available locales are: " +
|
40
|
+
available_locales.sort.join(", ")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def install_locales(locales)
|
45
|
+
locales.each do |locale|
|
46
|
+
copy_file "#{locale}.yml", "config/locales/humanizer.#{locale}.yml"
|
47
|
+
end
|
6
48
|
end
|
7
49
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
de:
|
2
|
+
humanizer:
|
3
|
+
validation:
|
4
|
+
error: "Sie sind kein Mensch"
|
5
|
+
questions:
|
6
|
+
- question: "Zwei plus zwei?"
|
7
|
+
answers: ["4", "vier"]
|
8
|
+
- question: "Alle meine Entchen, schwimmen auf dem..."
|
9
|
+
answer: see
|
10
|
+
- question: "Welche Zahl kommt vor der Zwölf?"
|
11
|
+
answers: ["11", "elf"]
|
12
|
+
- question: "Fünf mal zwei ergibt?"
|
13
|
+
answers: ["10", "zehn"]
|
14
|
+
- question: "Die nächste Zahl der Serie: 10, 11, 12, 13, 14, .."
|
15
|
+
answers: ["15", "fünfzehn"]
|
16
|
+
- question: "Wieviel ist fünf mal fünf?"
|
17
|
+
answers: ["25", "fünfundzwanzig"]
|
18
|
+
- question: "Zehn geteilt durch zwei ist?"
|
19
|
+
answers: ["5", "fünf"]
|
20
|
+
- question: "Welcher Tag folgt auf den Montag?"
|
21
|
+
answer: "dienstag"
|
22
|
+
- question: "Wie lautet der letzte Monat des Jahres?"
|
23
|
+
answer: "dezember"
|
24
|
+
- question: "Wie viele Minuten hat eine Stunde?"
|
25
|
+
answers: ["60", "sechzig"]
|
26
|
+
- question: "Was ist das Gegenteil von oben?"
|
27
|
+
answer: "unten"
|
28
|
+
- question: "Was ist das Gegenteil von Norden?"
|
29
|
+
answer: "süden"
|
30
|
+
- question: "Was ist das Gegenteil von schlecht?"
|
31
|
+
answer: "gut"
|
32
|
+
- question: "Wieviel ist 4 mal vier?"
|
33
|
+
answers: ["16", "sechzehn"]
|
34
|
+
- question: "Welche Zahl folgt auf die 20?"
|
35
|
+
answers: ["21", "einundzwanzig"]
|
36
|
+
- question: "Welcher Monat kommt vor dem Juli?"
|
37
|
+
answer: "juni"
|
38
|
+
- question: "Wieviel ist fünfzehn geteilt durch drei?"
|
39
|
+
answer: ["fünf", "5"]
|
40
|
+
- question: "Wieviel ist 14 minus 4?"
|
41
|
+
answers: ["10", "zehn"]
|
42
|
+
- question: "Was folgt als nächstes? Montag, Dienstag, Mittwoch, ..."
|
43
|
+
answer: "donnerstag"
|
@@ -14,7 +14,7 @@ en:
|
|
14
14
|
- question: "Insert the next number in this sequence: 10, 11, 12, 13, 14, .."
|
15
15
|
answers: ["15", "fifteen"]
|
16
16
|
- question: "What is five times five?"
|
17
|
-
answers: ["25", "
|
17
|
+
answers: ["25", "twenty-five"]
|
18
18
|
- question: "Ten divided by two is what?"
|
19
19
|
answers: ["5", "five"]
|
20
20
|
- question: What day comes after Monday?
|
@@ -32,12 +32,12 @@ en:
|
|
32
32
|
- question: What is 4 times four?
|
33
33
|
answers: ["16", "sixteen"]
|
34
34
|
- question: What number comes after 20?
|
35
|
-
answers: ["21", "
|
35
|
+
answers: ["21", "twenty-one"]
|
36
36
|
- question: What month comes before July?
|
37
37
|
answer: "june"
|
38
38
|
- question: What is fifteen divided by three?
|
39
|
-
answer: "five"
|
39
|
+
answer: ["five", "5"]
|
40
40
|
- question: What is 14 minus 4?
|
41
41
|
answers: ["10", "ten"]
|
42
42
|
- question: "What comes next? Monday, Tuesday, Wednesday.."
|
43
|
-
answer: "Thursday"
|
43
|
+
answer: "Thursday"
|
@@ -0,0 +1,43 @@
|
|
1
|
+
fi:
|
2
|
+
humanizer:
|
3
|
+
validation:
|
4
|
+
error: Et ole ihminen
|
5
|
+
questions:
|
6
|
+
- question: Kaksi plus kaksi?
|
7
|
+
answers: ["4", "neljä"]
|
8
|
+
- question: Loppu hyvin, kaikki...
|
9
|
+
answer: hyvin
|
10
|
+
- question: Kahtatoista edeltävä numero?
|
11
|
+
answers: ["11", "yksitoista"]
|
12
|
+
- question: Viisi kertaa kaksi on?
|
13
|
+
answers: ["10", "kymmenen"]
|
14
|
+
- question: "Seuraava numero tässä sarjassa: 10, 11, 12, 13, 14, .."
|
15
|
+
answers: ["15", "viisitoista"]
|
16
|
+
- question: "Viisi kertaa viisi on?"
|
17
|
+
answers: ["25", "kaksikymmentäviisi"]
|
18
|
+
- question: "Kymmenen jaettuna kahdella on?"
|
19
|
+
answers: ["5", "viisi"]
|
20
|
+
- question: Maanantaita seuraava päivä on?
|
21
|
+
answer: "tiistai"
|
22
|
+
- question: Mikä on vuoden viimeinen päivä?
|
23
|
+
answer: "joulukuu"
|
24
|
+
- question: Kuinka monta minuuttia on tunnissa?
|
25
|
+
answers: ["60", "kuusikymmentä"]
|
26
|
+
- question: Vastakohta sanalle 'alas'?
|
27
|
+
answer: "ylös"
|
28
|
+
- question: Pohjoisen vastakohta?
|
29
|
+
answer: "etelä"
|
30
|
+
- question: Huonon vastakohta?
|
31
|
+
answer: "hyvä"
|
32
|
+
- question: Kuinka paljon on 4 kertaa neljä?
|
33
|
+
answers: ["16", "kuusitoista"]
|
34
|
+
- question: Mikä numero tulee kahdenkymmenen jälkeen?
|
35
|
+
answers: ["21", "kaksikymmentäyksi"]
|
36
|
+
- question: Heinäkuuta edeltävä kuukausi on?
|
37
|
+
answer: "kesäkuu"
|
38
|
+
- question: Mitä on viisitoista jaettuna kolmella?
|
39
|
+
answer: ["viisi", "5"]
|
40
|
+
- question: Mitä on 14 miinus 4?
|
41
|
+
answers: ["10", "kymmenen"]
|
42
|
+
- question: "Mikä tulee seuraavaksi? Maanantai, Tiistai, Keskiviikko..."
|
43
|
+
answer: "Torstai"
|
@@ -0,0 +1,43 @@
|
|
1
|
+
nl:
|
2
|
+
humanizer:
|
3
|
+
validation:
|
4
|
+
error: U bent geen mens
|
5
|
+
questions:
|
6
|
+
- question: Twee plus twee?
|
7
|
+
answers: ["4", "vier"]
|
8
|
+
- question: "Een twee drie vier, hoedje van..."
|
9
|
+
answer: papier
|
10
|
+
- question: Wat is het nummer tussen tien en twaalf?
|
11
|
+
answers: ["11", "elf"]
|
12
|
+
- question: Vijf maal twee is hoeveel?
|
13
|
+
answers: ["10", "tien"]
|
14
|
+
- question: "Vul het volgende nummer in deze rij aan: 10, 11, 12, 13, 14, .."
|
15
|
+
answers: ["15", "vijftien"]
|
16
|
+
- question: "Wat is vijf maail vijf?"
|
17
|
+
answers: ["25", "vijfentwintig"]
|
18
|
+
- question: "Tein gedeeld door twee is hoeveel?"
|
19
|
+
answers: ["5", "vijf"]
|
20
|
+
- question: Welke dag komt er na maandag?
|
21
|
+
answer: "dinsdag"
|
22
|
+
- question: Wat is de laatste maand van het jaar?
|
23
|
+
answer: "december"
|
24
|
+
- question: Hoeveel minuten zitten er in een uur?
|
25
|
+
answers: ["60", "zestig"]
|
26
|
+
- question: Wat is het omgkeerde van benden?
|
27
|
+
answer: "boven"
|
28
|
+
- question: Wat is het omgekeerde van zuid?
|
29
|
+
answer: ["noord", "noorden"]
|
30
|
+
- question: Wat is het omgekeerde van slecht?
|
31
|
+
answer: "goed"
|
32
|
+
- question: Hoeveel is 4 maal vier?
|
33
|
+
answers: ["16", "zestien"]
|
34
|
+
- question: Welk getal komt er na 20?
|
35
|
+
answers: ["21", "eenentwintig"]
|
36
|
+
- question: Welke maand komt er voor juli?
|
37
|
+
answer: "juni"
|
38
|
+
- question: Hoeveel is vijftien gedeeld door drie?
|
39
|
+
answer: ["vijf", "5"]
|
40
|
+
- question: Hoeveel is 14 min 4?
|
41
|
+
answers: ["10", "tien"]
|
42
|
+
- question: "Wat is het volgende? Maandag, dinsdag, woensdag..."
|
43
|
+
answer: "donderdag"
|
@@ -0,0 +1,43 @@
|
|
1
|
+
pt-BR:
|
2
|
+
humanizer:
|
3
|
+
validation:
|
4
|
+
error: Você não é humano
|
5
|
+
questions:
|
6
|
+
- question: Dois mais dois?
|
7
|
+
answers: ["4", "quatro"]
|
8
|
+
- question: "Água mole em pedra dura, tanto bate até que..."
|
9
|
+
answer: fura
|
10
|
+
- question: Que número vem antes de doze?
|
11
|
+
answers: ["11", "onze"]
|
12
|
+
- question: Quanto é cinco vezes dois?
|
13
|
+
answers: ["10", "dez"]
|
14
|
+
- question: "Coloque o próximo número na sequência: 10, 11, 12, 13, 14, .."
|
15
|
+
answers: ["15", "quinze"]
|
16
|
+
- question: Quanto é cinco vezes cinco?
|
17
|
+
answers: ["25", "vinte e cinco"]
|
18
|
+
- question: Quanto é dez dividido por dois?
|
19
|
+
answers: ["5", "cinco"]
|
20
|
+
- question: Que dia vem depois da segunda-feira?
|
21
|
+
answers: ["terça", "terça-feira"]
|
22
|
+
- question: Qual é o último mês do ano?
|
23
|
+
answer: "dezembro"
|
24
|
+
- question: Quantos minutos tem uma hora?
|
25
|
+
answers: ["60", "sessenta"]
|
26
|
+
- question: Qual é o contrário de alto?
|
27
|
+
answer: "baixo"
|
28
|
+
- question: Qual é o contrário de norte?
|
29
|
+
answer: "sul"
|
30
|
+
- question: Qual é o contrário de ruim?
|
31
|
+
answer: "bom"
|
32
|
+
- question: Quanto é 4 vezes quatro?
|
33
|
+
answers: ["16", "dezesseis"]
|
34
|
+
- question: Que número vem depois de 20?
|
35
|
+
answers: ["21", "vinte e um"]
|
36
|
+
- question: Que mês vem antes de julho?
|
37
|
+
answer: "junho"
|
38
|
+
- question: Quanto é quinze dividido por três?
|
39
|
+
answer: ["cinco", "5"]
|
40
|
+
- question: Quanto é 14 menos 4?
|
41
|
+
answers: ["10", "dez"]
|
42
|
+
- question: "O que vem em seguida? segunda, terça, quarta, ..."
|
43
|
+
answers: ["quinta", "quinta-feira"]
|
@@ -0,0 +1,43 @@
|
|
1
|
+
pt-PT:
|
2
|
+
humanizer:
|
3
|
+
validation:
|
4
|
+
error: Você não é humano
|
5
|
+
questions:
|
6
|
+
- question: Dois mais dois?
|
7
|
+
answers: ["4", "quatro"]
|
8
|
+
- question: "Água mole em pedra dura, tanto bate até que..."
|
9
|
+
answer: fura
|
10
|
+
- question: Que número vem antes de doze?
|
11
|
+
answers: ["11", "onze"]
|
12
|
+
- question: Cinco vezes dois?
|
13
|
+
answers: ["10", "dez"]
|
14
|
+
- question: "Coloque o próximo número na sequência: 10, 11, 12, 13, 14, .."
|
15
|
+
answers: ["15", "quinze"]
|
16
|
+
- question: Cinco vezes cinco?
|
17
|
+
answers: ["25", "vinte e cinco"]
|
18
|
+
- question: Quanto é dez dividido por dois?
|
19
|
+
answers: ["5", "cinco"]
|
20
|
+
- question: Que dia vem depois da segunda-feira?
|
21
|
+
answers: ["terça", "terça-feira"]
|
22
|
+
- question: Qual é o último mês do ano?
|
23
|
+
answer: "dezembro"
|
24
|
+
- question: Quantos minutos tem uma hora?
|
25
|
+
answers: ["60", "sessenta"]
|
26
|
+
- question: Qual é o contrário de alto?
|
27
|
+
answer: "baixo"
|
28
|
+
- question: Qual é o contrário de norte?
|
29
|
+
answer: "sul"
|
30
|
+
- question: Qual é o contrário de mau?
|
31
|
+
answer: "bom"
|
32
|
+
- question: Quanto é quatro vezes quatro?
|
33
|
+
answers: ["16", "dezasseis"]
|
34
|
+
- question: Que número vem depois de vinte?
|
35
|
+
answers: ["21", "vinte e um"]
|
36
|
+
- question: Que mês vem antes de julho?
|
37
|
+
answer: "junho"
|
38
|
+
- question: Quanto é quinze dividido por três?
|
39
|
+
answer: ["cinco", "5"]
|
40
|
+
- question: Quanto é 14 menos 4?
|
41
|
+
answers: ["10", "dez"]
|
42
|
+
- question: "Qual é o próximo? segunda, terça, quarta, ..."
|
43
|
+
answers: ["quinta", "quinta-feira"]
|
data/lib/humanizer.rb
CHANGED
@@ -31,13 +31,14 @@ module Humanizer
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def humanizer_check_answer
|
34
|
-
errors[:
|
34
|
+
errors[:humanizer_answer] << I18n.translate("humanizer.validation.error") unless humanizer_correct_answer?
|
35
35
|
end
|
36
36
|
|
37
37
|
module ClassMethods
|
38
38
|
|
39
|
-
def require_human_on(validate_on)
|
40
|
-
|
39
|
+
def require_human_on(validate_on, opts = {})
|
40
|
+
opts[:on] = validate_on
|
41
|
+
validate :humanizer_check_answer, opts
|
41
42
|
end
|
42
43
|
|
43
44
|
end
|
data/lib/humanizer/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Humanizer
|
2
|
-
VERSION = "2.
|
3
|
-
end
|
2
|
+
VERSION = "2.1.0"
|
3
|
+
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 2
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 2.0.0
|
9
|
+
version: 2.1.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Antti Akonniemi
|
@@ -15,11 +15,69 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-09-09 00:00:00 +03:00
|
19
19
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
|
22
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: bundler
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 0
|
32
|
+
- 0
|
33
|
+
version: 1.0.0
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rspec
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ~>
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
segments:
|
58
|
+
- 2
|
59
|
+
- 0
|
60
|
+
- 0
|
61
|
+
- beta
|
62
|
+
version: 2.0.0.beta
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: rails
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ~>
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
segments:
|
74
|
+
- 3
|
75
|
+
- 0
|
76
|
+
- 0
|
77
|
+
version: 3.0.0
|
78
|
+
type: :development
|
79
|
+
version_requirements: *id004
|
80
|
+
description: reCAPTCHA was too much for us, so we created this. Simplest captcha ever.
|
23
81
|
email:
|
24
82
|
- antti@kiskolabs.com
|
25
83
|
- joao@kiskolabs.com
|
@@ -36,7 +94,12 @@ files:
|
|
36
94
|
- LICENSE
|
37
95
|
- CHANGELOG.md
|
38
96
|
- README.md
|
39
|
-
- lib/generators/templates/
|
97
|
+
- lib/generators/templates/locales/de.yml
|
98
|
+
- lib/generators/templates/locales/en.yml
|
99
|
+
- lib/generators/templates/locales/fi.yml
|
100
|
+
- lib/generators/templates/locales/nl.yml
|
101
|
+
- lib/generators/templates/locales/pt-BR.yml
|
102
|
+
- lib/generators/templates/locales/pt-PT.yml
|
40
103
|
has_rdoc: true
|
41
104
|
homepage: http://github.com/kiskolabs/humanizer
|
42
105
|
licenses: []
|