qwester 0.0.8 → 0.0.9

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.
Files changed (33) hide show
  1. data/README.rdoc +33 -0
  2. data/app/models/qwester/answer_store.rb +11 -1
  3. data/app/models/qwester/rule_set.rb +1 -1
  4. data/db/migrate/20121122130930_add_position_to_answers.rb +11 -0
  5. data/lib/qwester/version.rb +5 -1
  6. data/test/dummy/app/models/admin_user.rb +0 -9
  7. data/test/dummy/db/development.sqlite3 +0 -0
  8. data/test/dummy/db/migrate/{20130111112926_create_rule_sets.qwester.rb → 20130314103647_create_rule_sets.qwester.rb} +1 -1
  9. data/test/dummy/db/migrate/{20130111121500_add_ids_to_questionnaires_questions.qwester.rb → 20130314103655_add_ids_to_questionnaires_questions.qwester.rb} +1 -1
  10. data/test/dummy/db/migrate/20130314103656_add_position_to_answers.qwester.rb +12 -0
  11. data/test/dummy/db/schema.rb +3 -4
  12. data/test/dummy/db/test.sqlite3 +0 -0
  13. data/test/dummy/log/development.log +597 -0
  14. data/test/dummy/log/test.log +13644 -0
  15. data/test/unit/qwester/answer_store_test.rb +5 -0
  16. metadata +39 -39
  17. data/db/migrate/20121122130930_add_cope_index_and_position_to_answers.rb +0 -6
  18. data/test/dummy/db/migrate/20130111112934_add_cope_index_and_position_to_answers.qwester.rb +0 -7
  19. /data/test/dummy/db/migrate/{20130111112924_create_questions.qwester.rb → 20130314103645_create_questions.qwester.rb} +0 -0
  20. /data/test/dummy/db/migrate/{20130111112925_create_answers.qwester.rb → 20130314103646_create_answers.qwester.rb} +0 -0
  21. /data/test/dummy/db/migrate/{20130111112927_create_questionnaires.qwester.rb → 20130314103648_create_questionnaires.qwester.rb} +0 -0
  22. /data/test/dummy/db/migrate/{20130111112928_create_answer_stores.qwester.rb → 20130314103649_create_answer_stores.qwester.rb} +0 -0
  23. /data/test/dummy/db/migrate/{20130111112929_add_questionnaire_id_to_answers.qwester.rb → 20130314103650_add_questionnaire_id_to_answers.qwester.rb} +0 -0
  24. /data/test/dummy/db/migrate/{20130111112930_change_answers_value_to_string.qwester.rb → 20130314103651_change_answers_value_to_string.qwester.rb} +0 -0
  25. /data/test/dummy/db/migrate/{20130111112931_add_button_image_to_questionnaires.qwester.rb → 20130314103652_add_button_image_to_questionnaires.qwester.rb} +0 -0
  26. /data/test/dummy/db/migrate/{20130111112932_create_ckeditor_assets.qwester.rb → 20130314103653_create_ckeditor_assets.qwester.rb} +0 -0
  27. /data/test/dummy/db/migrate/{20130111112933_add_ref_to_questions.qwester.rb → 20130314103654_add_ref_to_questions.qwester.rb} +0 -0
  28. /data/test/dummy/db/migrate/{20130111112935_remove_questionnaire_from_answer.qwester.rb → 20130314103657_remove_questionnaire_from_answer.qwester.rb} +0 -0
  29. /data/test/dummy/db/migrate/{20130111112936_add_rule_to_rule_sets.qwester.rb → 20130314103658_add_rule_to_rule_sets.qwester.rb} +0 -0
  30. /data/test/dummy/db/migrate/{20130111112937_add_multi_answer_to_questions.qwester.rb → 20130314103659_add_multi_answer_to_questions.qwester.rb} +0 -0
  31. /data/test/dummy/db/migrate/{20130111112938_create_answer_stores_questionnaires.qwester.rb → 20130314103660_create_answer_stores_questionnaires.qwester.rb} +0 -0
  32. /data/test/dummy/db/migrate/{20130111112939_add_link_text_to_rule_sets.qwester.rb → 20130314103661_add_link_text_to_rule_sets.qwester.rb} +0 -0
  33. /data/test/dummy/db/migrate/{20130306115340_add_preserved_to_answer_stores.qwester.rb → 20130314103662_add_preserved_to_answer_stores.qwester.rb} +0 -0
data/README.rdoc CHANGED
@@ -180,3 +180,36 @@ initializer:
180
180
  Qwester.active_admin_menu = 'none'
181
181
 
182
182
  See test/dummy/config/initializers/qwester.rb for an example
183
+
184
+ You will also need to add the following to your config/routes so that you can
185
+ reorder items:
186
+
187
+ namespace :admin do
188
+ resources :questionnaires do
189
+ resources :questions, :only => [:move_up, :move_down] do
190
+ member do
191
+ get :move_up
192
+ get :move_down
193
+ end
194
+ end
195
+ end
196
+
197
+ resources :questions do
198
+ resources :answers, :only => [:move_up, :move_down, :remove] do
199
+ member do
200
+ get :move_up
201
+ get :move_down
202
+ get :remove
203
+ end
204
+ end
205
+ end
206
+
207
+ resources :rule_sets do
208
+ resources :answers, :only => [:add, :delete] do
209
+ member do
210
+ put :add
211
+ put :delete
212
+ end
213
+ end
214
+ end
215
+ end
@@ -39,7 +39,7 @@ module Qwester
39
39
 
40
40
  def generate_session_id
41
41
  if !self.session_id or self.session_id.empty?
42
- self.session_id = RandomString.new(15)
42
+ self.session_id = session_id_not_in_database
43
43
  end
44
44
  end
45
45
 
@@ -49,5 +49,15 @@ module Qwester
49
49
  copy.questionnaires = questionnaires
50
50
  return copy if copy.save
51
51
  end
52
+
53
+ def session_id_not_in_database
54
+ session_ids = get_session_ids
55
+ random_string = RandomString.new(15) until random_string and !session_ids.include?(random_string)
56
+ return random_string
57
+ end
58
+
59
+ def get_session_ids
60
+ self.class.select(:session_id).collect(&:session_id)
61
+ end
52
62
  end
53
63
  end
@@ -27,7 +27,7 @@ module Qwester
27
27
 
28
28
 
29
29
  def self.matching(answers)
30
- all.collect{|rule_set| rule_set if rule_set.match(answers)}.compact
30
+ all.select{|rule_set| rule_set.match(answers)}
31
31
  end
32
32
 
33
33
  def match(answers_to_check = nil)
@@ -0,0 +1,11 @@
1
+ class AddPositionToAnswers < ActiveRecord::Migration
2
+ def change
3
+ # Adds unless clause, because original version of migration added another field
4
+ # and file name was changed when this field was removed. This can cause this
5
+ # migration to appear a second time if rake qwester:install:migrations is
6
+ # run again in an app created before the change was made.
7
+ unless column_exists?(:qwester_answers, :position)
8
+ add_column :qwester_answers, :position, :integer
9
+ end
10
+ end
11
+ end
@@ -1,10 +1,14 @@
1
1
  module Qwester
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
4
4
 
5
5
  # History
6
6
  # =======
7
7
  #
8
+ # 0.0.9 - maintenance update
9
+ # Removes cope_index from migrations.
10
+ # Ensures answer_store#session_id is unique
11
+ #
8
12
  # 0.0.8 - add facility to preserve answer stores
9
13
  # This allows snaps shots to be taken, and redundant answer stores to be
10
14
  # removed during routine maintenance.
@@ -8,13 +8,4 @@ class AdminUser < ActiveRecord::Base
8
8
 
9
9
  # Setup accessible (or protected) attributes for your model
10
10
  attr_accessible :email, :password, :password_confirmation, :remember_me
11
- # Include default devise modules. Others available are:
12
- # :token_authenticatable, :confirmable,
13
- # :lockable, :timeoutable and :omniauthable
14
- devise :database_authenticatable,
15
- :recoverable, :rememberable, :trackable, :validatable
16
-
17
- # Setup accessible (or protected) attributes for your model
18
- attr_accessible :email, :password, :password_confirmation, :remember_me
19
- # attr_accessible :title, :body
20
11
  end
Binary file
@@ -3,7 +3,7 @@ class CreateRuleSets < ActiveRecord::Migration
3
3
  def change
4
4
  create_table :qwester_rule_sets do |t|
5
5
  t.string :title
6
- t.string :description
6
+ t.text :description
7
7
  t.string :url
8
8
  t.timestamps
9
9
  end
@@ -9,7 +9,7 @@ class AddIdsToQuestionnairesQuestions < ActiveRecord::Migration
9
9
  execute "UPDATE #{qq_table} SET created_at = '#{Time.now.to_s(:db)}', updated_at = '#{Time.now.to_s(:db)}';"
10
10
 
11
11
  puts "=============================================="
12
- puts "Now run 'rake data:reset_positions RAILS_ENV=#{Rails.env}' to set the positions"
12
+ puts "Now run 'rake qwester:reset_positions RAILS_ENV=#{Rails.env}' to set the positions"
13
13
  puts "=============================================="
14
14
  end
15
15
 
@@ -0,0 +1,12 @@
1
+ # This migration comes from qwester (originally 20121122130930)
2
+ class AddPositionToAnswers < ActiveRecord::Migration
3
+ def change
4
+ # Adds unless clause, because original version of migration added another field
5
+ # and file name was changed when this field was removed. This can cause this
6
+ # migration to appear a second time if rake qwester:install:migrations is
7
+ # run again in an app created before the change was made.
8
+ unless column_exists?(:qwester_answers, :position)
9
+ add_column :qwester_answers, :position, :integer
10
+ end
11
+ end
12
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20130306115340) do
14
+ ActiveRecord::Schema.define(:version => 20130314103662) do
15
15
 
16
16
  create_table "active_admin_comments", :force => true do |t|
17
17
  t.string "resource_id", :null => false
@@ -65,10 +65,9 @@ ActiveRecord::Schema.define(:version => 20130306115340) do
65
65
  create_table "qwester_answers", :force => true do |t|
66
66
  t.integer "question_id"
67
67
  t.string "value"
68
- t.datetime "created_at", :null => false
69
- t.datetime "updated_at", :null => false
68
+ t.datetime "created_at", :null => false
69
+ t.datetime "updated_at", :null => false
70
70
  t.integer "position"
71
- t.integer "cope_index", :default => 0
72
71
  end
73
72
 
74
73
  create_table "qwester_answers_rule_sets", :id => false, :force => true do |t|
Binary file