humanizer 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ ### Humanizer 2.4.0 (2010-12-15)
2
+
3
+ * Added #change_humanizer_question for question reloading.
4
+
5
+
1
6
  ### Humanizer 2.3.0 (2010-12-01)
2
7
 
3
8
  * Removed the real_human attribute.
data/README.md CHANGED
@@ -46,6 +46,14 @@ You can just have a simple attribute on your model and use it to bypass the vali
46
46
  require_human_on :create, :unless => :bypass_humanizer
47
47
 
48
48
  Now when bypass_humanizer is true, validation will be skipped.
49
+
50
+ ## Reloading questions
51
+
52
+ In case you want to give your users the option to change the question, there's a #change_humanizer_question method to help you.
53
+
54
+ To make sure the current question doesn't get asked again, you can pass the current question id to the method. For example:
55
+
56
+ @user.change_humanizer_question(params[:user][:humanizer_question_id])
49
57
 
50
58
  ## Live sites
51
59
 
@@ -65,5 +73,6 @@ Humanizer is licensed under the MIT License, for more details see the LICENSE fi
65
73
 
66
74
  ## Contributors
67
75
 
68
- * [Florian Bertholin](http://github.com/Arkan)
69
- * [seogrady](http://github.com/seogrady)
76
+ * [Florian Bertholin](https://github.com/Arkan)
77
+ * [seogrady](https://github.com/seogrady)
78
+ * [yairgo](https://github.com/yairgo)
@@ -8,13 +8,19 @@ module Humanizer
8
8
  attr_writer :humanizer_question_id
9
9
 
10
10
  def humanizer_question
11
- humanizer_questions[humanizer_question_id.to_i]["question"]
11
+ humanizer_questions[humanizer_question_id]["question"]
12
12
  end
13
13
 
14
14
  def humanizer_question_id
15
- @humanizer_question_id ||= Kernel.rand(humanizer_questions.count)
15
+ @humanizer_question_id ||= random_humanizer_question_id
16
16
  end
17
17
 
18
+ def change_humanizer_question(current=nil)
19
+ @humanizer_question_ids = nil if humanizer_question_ids.compact.count == 1
20
+ humanizer_question_ids.delete(current) if current
21
+ @humanizer_question_id = random_humanizer_question_id
22
+ end
23
+
18
24
  def humanizer_correct_answer?
19
25
  humanizer_answer && humanizer_answers_for_id(humanizer_question_id).include?(humanizer_answer.downcase)
20
26
  end
@@ -25,6 +31,14 @@ module Humanizer
25
31
  @humanizer_questions ||= I18n.translate("humanizer.questions")
26
32
  end
27
33
 
34
+ def humanizer_question_ids
35
+ @humanizer_question_ids ||= (0...humanizer_questions.count).to_a
36
+ end
37
+
38
+ def random_humanizer_question_id
39
+ humanizer_question_ids[rand(humanizer_question_ids.count)]
40
+ end
41
+
28
42
  def humanizer_answers_for_id(id)
29
43
  question = humanizer_questions[id.to_i]
30
44
  Array(question["answer"] || question["answers"]).map { |a| a.to_s.downcase }
@@ -43,4 +57,4 @@ module Humanizer
43
57
 
44
58
  end
45
59
 
46
- end
60
+ end
@@ -1,3 +1,3 @@
1
1
  module Humanizer
2
- VERSION = "2.3.0"
2
+ VERSION = "2.4.0"
3
3
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 2
7
- - 3
7
+ - 4
8
8
  - 0
9
- version: 2.3.0
9
+ version: 2.4.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Antti Akonniemi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-01 00:00:00 +02:00
18
+ date: 2010-12-15 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -56,14 +56,13 @@ dependencies:
56
56
  - !ruby/object:Gem::Version
57
57
  segments:
58
58
  - 2
59
+ - 3
59
60
  - 0
60
- - 0
61
- - beta
62
- version: 2.0.0.beta
61
+ version: 2.3.0
63
62
  type: :development
64
63
  version_requirements: *id003
65
64
  - !ruby/object:Gem::Dependency
66
- name: rails
65
+ name: activemodel
67
66
  prerelease: false
68
67
  requirement: &id004 !ruby/object:Gem::Requirement
69
68
  none: false