enju_search_log 0.2.0.beta.1 → 0.2.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/search_history.rb +9 -10
  3. data/lib/enju_search_log/version.rb +1 -1
  4. data/spec/controllers/search_histories_controller_spec.rb +1 -1
  5. data/spec/dummy/app/controllers/application_controller.rb +2 -2
  6. data/spec/dummy/app/models/user.rb +1 -1
  7. data/spec/dummy/config/application.rb +2 -0
  8. data/spec/dummy/db/migrate/149_create_message_templates.rb +18 -0
  9. data/spec/dummy/db/migrate/154_create_messages.rb +23 -0
  10. data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +18 -0
  11. data/spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
  12. data/spec/dummy/db/migrate/20120125050502_add_depth_to_message.rb +6 -0
  13. data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +1 -1
  14. data/spec/dummy/db/migrate/20140518111006_create_message_transitions.rb +18 -0
  15. data/spec/dummy/db/migrate/20140518135713_create_message_request_transitions.rb +18 -0
  16. data/spec/dummy/db/migrate/20150506105356_add_error_message_to_user_import_result.rb +5 -0
  17. data/spec/dummy/db/migrate/20150924115059_create_withdraws.rb +13 -0
  18. data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +13 -0
  19. data/spec/dummy/db/migrate/20151213072705_add_footer_banner_to_library_group.rb +9 -0
  20. data/spec/dummy/db/migrate/20160610093229_add_html_snippet_to_library_group.rb +5 -0
  21. data/spec/dummy/db/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +9 -0
  22. data/spec/dummy/db/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +9 -0
  23. data/spec/dummy/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +9 -0
  24. data/spec/dummy/db/migrate/20160813191647_add_max_number_of_results_to_library_group.rb +5 -0
  25. data/spec/dummy/db/migrate/20160813191733_add_family_name_first_to_library_group.rb +5 -0
  26. data/spec/dummy/db/migrate/20160813192542_add_pub_year_facet_range_interval_to_library_group.rb +5 -0
  27. data/spec/dummy/db/migrate/20160813203039_add_user_id_to_library_group.rb +5 -0
  28. data/spec/dummy/db/migrate/20160814165332_add_most_recent_to_message_request_transitions.rb +9 -0
  29. data/spec/dummy/db/schema.rb +106 -5
  30. data/spec/factories/profile.rb +17 -0
  31. data/spec/factories/user.rb +43 -0
  32. data/spec/fixtures/libraries.yml +103 -0
  33. data/spec/fixtures/library_groups.yml +21 -18
  34. data/spec/fixtures/search_histories.yml +9 -10
  35. data/spec/fixtures/user_groups.yml +44 -0
  36. data/spec/models/search_history_spec.rb +10 -12
  37. data/spec/models/user_spec.rb +74 -0
  38. data/spec/rails_helper.rb +80 -0
  39. data/spec/spec_helper.rb +88 -36
  40. data/spec/support/devise.rb +2 -2
  41. metadata +178 -86
  42. data/spec/dummy/app/models/ability.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1183581c4daeef762ecb81966d886fc952f36861
4
- data.tar.gz: c9de2625233b2d9ecfef6c9fdf0c21becf06e38e
3
+ metadata.gz: bbd92d1277968c7a17bf4ca1c65d5d5656464b14
4
+ data.tar.gz: 6f1a6e8b50a69647fb481cfbc398fe801de10bd6
5
5
  SHA512:
6
- metadata.gz: 5a748e7617bcc8d471b6696c41de6f1a32a26d9c732b12efef16b57df6e339dd6cc707db1d081a53d4111f9dfa913a2f9c170d8d01c2ed4f7e4b5da10cf5427d
7
- data.tar.gz: 8b9be9fd97085adb7735fd9b36bd23897ab18a99d01d2a9cf3acd52496ec3707992a9d57e481519742bd6c50b63c651d63b00a74ad0dd95df56f20608992874a
6
+ metadata.gz: ce5c2ed6202d682af28f049d8fa48419f7c6e38854d4fadb0d44f0c3d5d61d45564bf3ef1e4aa7a8eb7084899f3ea8f629db8b37d0de83430c82770f7fb93cc0
7
+ data.tar.gz: 82efc68998d4497b66eb457f159f3a9759d0e192db227702e2001e6e4668ca063e51866f822c9d77d66d0fc98100cc9a1140a568f1dfcc9f5560ae027e50148f
@@ -20,25 +20,24 @@ end
20
20
  #
21
21
  # id :integer not null, primary key
22
22
  # user_id :integer
23
- # operation :string(255) default("searchRetrieve")
23
+ # operation :string default("searchRetrieve")
24
24
  # sru_version :float default(1.2)
25
- # query :string(255)
25
+ # query :string
26
26
  # start_record :integer
27
27
  # maximum_records :integer
28
- # record_packing :string(255)
29
- # record_schema :string(255)
28
+ # record_packing :string
29
+ # record_schema :string
30
30
  # result_set_ttl :integer
31
- # stylesheet :string(255)
32
- # extra_request_data :string(255)
31
+ # stylesheet :string
32
+ # extra_request_data :string
33
33
  # number_of_records :integer default(0)
34
- # result_set_id :string(255)
34
+ # result_set_id :string
35
35
  # result_set_idle_time :integer
36
36
  # records :text
37
37
  # next_record_position :integer
38
38
  # diagnostics :text
39
39
  # extra_response_data :text
40
40
  # echoed_search_retrieve_request :text
41
- # created_at :datetime not null
42
- # updated_at :datetime not null
41
+ # created_at :datetime
42
+ # updated_at :datetime
43
43
  #
44
-
@@ -1,3 +1,3 @@
1
1
  module EnjuSearchLog
2
- VERSION = "0.2.0.beta.1"
2
+ VERSION = "0.2.0.beta.3"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe SearchHistoriesController do
4
4
  fixtures :all
@@ -1,8 +1,8 @@
1
1
  class ApplicationController < ActionController::Base
2
2
  protect_from_forgery
3
- include EnjuLeaf::Controller
4
- include EnjuBiblio::Controller
5
3
  include EnjuLibrary::Controller
4
+ include EnjuBiblio::Controller
5
+ before_action :set_paper_trail_whodunnit
6
6
  after_action :verify_authorized
7
7
 
8
8
  include Pundit
@@ -4,6 +4,6 @@ class User < ActiveRecord::Base
4
4
  :recoverable, :rememberable, :trackable, #, :validatable
5
5
  :lockable, :lock_strategy => :none, :unlock_strategy => :none
6
6
 
7
- include EnjuLeaf::EnjuUser
7
+ include EnjuSeed::EnjuUser
8
8
  enju_search_log_user_model
9
9
  end
@@ -5,6 +5,8 @@ require 'rails/all'
5
5
  Bundler.require(*Rails.groups)
6
6
  require 'enju_search_log'
7
7
  require 'enju_leaf'
8
+ require 'globalize'
9
+ require 'globalize-accessors'
8
10
 
9
11
  module Dummy
10
12
  class Application < Rails::Application
@@ -0,0 +1,18 @@
1
+ class CreateMessageTemplates < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_templates do |t|
4
+ t.string :status, :null => false
5
+ t.text :title, :null => false
6
+ t.text :body, :null => false
7
+ t.integer :position
8
+ t.string :locale, :default => I18n.default_locale.to_s
9
+
10
+ t.timestamps
11
+ end
12
+ add_index :message_templates, :status, :unique => true
13
+ end
14
+
15
+ def self.down
16
+ drop_table :message_templates
17
+ end
18
+ end
@@ -0,0 +1,23 @@
1
+ class CreateMessages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :messages, :force => true do |t|
4
+ t.datetime :read_at
5
+ t.integer :receiver_id, :sender_id
6
+ t.string :subject, :null => false
7
+ t.text :body
8
+ t.integer :message_request_id
9
+ t.integer :parent_id
10
+
11
+ t.timestamps
12
+ end
13
+
14
+ add_index :messages, :sender_id
15
+ add_index :messages, :receiver_id
16
+ add_index :messages, :message_request_id
17
+ add_index :messages, :parent_id
18
+ end
19
+
20
+ def self.down
21
+ drop_table :messages
22
+ end
23
+ end
@@ -0,0 +1,18 @@
1
+ class CreateMessageRequests < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_requests do |t|
4
+ t.integer :sender_id
5
+ t.integer :receiver_id
6
+ t.integer :message_template_id
7
+ t.datetime :sent_at
8
+ t.datetime :deleted_at
9
+ t.text :body
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+
15
+ def self.down
16
+ drop_table :message_requests
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ class AddLftAndRgtToMessage < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :messages, :lft, :integer
4
+ add_column :messages, :rgt, :integer
5
+ end
6
+
7
+ def self.down
8
+ remove_column :messages, :rgt
9
+ remove_column :messages, :lft
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ class AddDepthToMessage < ActiveRecord::Migration
2
+ def change
3
+ add_column :messages, :depth, :integer
4
+
5
+ end
6
+ end
@@ -6,7 +6,7 @@ class CreateUserImportFiles < ActiveRecord::Migration
6
6
  t.datetime :executed_at
7
7
  t.string :user_import_file_name
8
8
  t.string :user_import_content_type
9
- t.string :user_import_file_size
9
+ t.integer :user_import_file_size
10
10
  t.datetime :user_import_updated_at
11
11
  t.string :user_import_fingerprint
12
12
  t.string :edit_mode
@@ -0,0 +1,18 @@
1
+ class CreateMessageTransitions < ActiveRecord::Migration
2
+ def change
3
+ create_table :message_transitions do |t|
4
+ t.string :to_state
5
+ if ActiveRecord::Base.configurations[Rails.env]["adapter"].try(:match, /mysql/)
6
+ t.text :metadata
7
+ else
8
+ t.text :metadata, default: "{}"
9
+ end
10
+ t.integer :sort_key
11
+ t.integer :message_id
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :message_transitions, :message_id
16
+ add_index :message_transitions, [:sort_key, :message_id], unique: true
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ class CreateMessageRequestTransitions < ActiveRecord::Migration
2
+ def change
3
+ create_table :message_request_transitions do |t|
4
+ t.string :to_state
5
+ if ActiveRecord::Base.configurations[Rails.env]["adapter"].try(:match, /mysql/)
6
+ t.text :metadata
7
+ else
8
+ t.text :metadata, default: "{}"
9
+ end
10
+ t.integer :sort_key
11
+ t.integer :message_request_id
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :message_request_transitions, :message_request_id
16
+ add_index :message_request_transitions, [:sort_key, :message_request_id], unique: true, name: "index_message_request_transitions_on_sort_key_and_request_id"
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ class AddErrorMessageToUserImportResult < ActiveRecord::Migration
2
+ def change
3
+ add_column :user_import_results, :error_message, :text
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ class CreateWithdraws < ActiveRecord::Migration
2
+ def change
3
+ create_table :withdraws do |t|
4
+ t.integer :basket_id
5
+ t.integer :item_id
6
+ t.integer :librarian_id
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :withdraws, :basket_id
11
+ add_index :withdraws, :item_id
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class AddTranslationTableToLibraryGroup < ActiveRecord::Migration
2
+ def up
3
+ LibraryGroup.create_translation_table!({
4
+ login_banner: :text
5
+ }, {
6
+ migrate_data: true
7
+ })
8
+ end
9
+
10
+ def down
11
+ LibraryGroup.drop_translation_table! migrate_data: true
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ class AddFooterBannerToLibraryGroup < ActiveRecord::Migration
2
+ def up
3
+ LibraryGroup.add_translation_fields! footer_banner: :text
4
+ end
5
+
6
+ def down
7
+ remove_column :library_group_translations, :footer_banner
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddHtmlSnippetToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :html_snippet, :text
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToUserImportFileTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :user_import_file_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :user_import_file_transitions, :most_recent
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToUserExportFileTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :user_export_file_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :user_export_file_transitions, :most_recent
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToMessageTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :message_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :message_transitions, :most_recent
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddMaxNumberOfResultsToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :max_number_of_results, :integer, default: 500
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddFamilyNameFirstToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :family_name_first, :boolean, default: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddPubYearFacetRangeIntervalToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_column :library_groups, :pub_year_facet_range_interval, :integer, default: 10
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddUserIdToLibraryGroup < ActiveRecord::Migration
2
+ def change
3
+ add_reference :library_groups, :user, index: true, foreign_key: true
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class AddMostRecentToMessageRequestTransitions < ActiveRecord::Migration
2
+ def up
3
+ add_column :message_request_transitions, :most_recent, :boolean, null: true
4
+ end
5
+
6
+ def down
7
+ remove_column :message_request_transitions, :most_recent
8
+ end
9
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150221063719) do
14
+ ActiveRecord::Schema.define(version: 20160814165332) do
15
15
 
16
16
  create_table "accepts", force: :cascade do |t|
17
17
  t.integer "basket_id"
@@ -98,10 +98,22 @@ ActiveRecord::Schema.define(version: 20150221063719) do
98
98
  add_index "libraries", ["library_group_id"], name: "index_libraries_on_library_group_id"
99
99
  add_index "libraries", ["name"], name: "index_libraries_on_name", unique: true
100
100
 
101
+ create_table "library_group_translations", force: :cascade do |t|
102
+ t.integer "library_group_id", null: false
103
+ t.string "locale", null: false
104
+ t.datetime "created_at", null: false
105
+ t.datetime "updated_at", null: false
106
+ t.text "login_banner"
107
+ t.text "footer_banner"
108
+ end
109
+
110
+ add_index "library_group_translations", ["library_group_id"], name: "index_library_group_translations_on_library_group_id"
111
+ add_index "library_group_translations", ["locale"], name: "index_library_group_translations_on_locale"
112
+
101
113
  create_table "library_groups", force: :cascade do |t|
102
- t.string "name", null: false
114
+ t.string "name", null: false
103
115
  t.text "display_name"
104
- t.string "short_name", null: false
116
+ t.string "short_name", null: false
105
117
  t.text "my_networks"
106
118
  t.text "login_banner"
107
119
  t.text "note"
@@ -110,11 +122,86 @@ ActiveRecord::Schema.define(version: 20150221063719) do
110
122
  t.datetime "created_at"
111
123
  t.datetime "updated_at"
112
124
  t.text "admin_networks"
113
- t.string "url", default: "http://localhost:3000/"
125
+ t.string "url", default: "http://localhost:3000/"
114
126
  t.text "settings"
127
+ t.text "html_snippet"
128
+ t.integer "max_number_of_results", default: 500
129
+ t.boolean "family_name_first", default: true
130
+ t.integer "pub_year_facet_range_interval", default: 10
131
+ t.integer "user_id"
115
132
  end
116
133
 
117
134
  add_index "library_groups", ["short_name"], name: "index_library_groups_on_short_name"
135
+ add_index "library_groups", ["user_id"], name: "index_library_groups_on_user_id"
136
+
137
+ create_table "message_request_transitions", force: :cascade do |t|
138
+ t.string "to_state"
139
+ t.text "metadata", default: "{}"
140
+ t.integer "sort_key"
141
+ t.integer "message_request_id"
142
+ t.datetime "created_at"
143
+ t.datetime "updated_at"
144
+ t.boolean "most_recent"
145
+ end
146
+
147
+ add_index "message_request_transitions", ["message_request_id"], name: "index_message_request_transitions_on_message_request_id"
148
+ add_index "message_request_transitions", ["sort_key", "message_request_id"], name: "index_message_request_transitions_on_sort_key_and_request_id", unique: true
149
+
150
+ create_table "message_requests", force: :cascade do |t|
151
+ t.integer "sender_id"
152
+ t.integer "receiver_id"
153
+ t.integer "message_template_id"
154
+ t.datetime "sent_at"
155
+ t.datetime "deleted_at"
156
+ t.text "body"
157
+ t.datetime "created_at"
158
+ t.datetime "updated_at"
159
+ end
160
+
161
+ create_table "message_templates", force: :cascade do |t|
162
+ t.string "status", null: false
163
+ t.text "title", null: false
164
+ t.text "body", null: false
165
+ t.integer "position"
166
+ t.string "locale", default: "en"
167
+ t.datetime "created_at"
168
+ t.datetime "updated_at"
169
+ end
170
+
171
+ add_index "message_templates", ["status"], name: "index_message_templates_on_status", unique: true
172
+
173
+ create_table "message_transitions", force: :cascade do |t|
174
+ t.string "to_state"
175
+ t.text "metadata", default: "{}"
176
+ t.integer "sort_key"
177
+ t.integer "message_id"
178
+ t.datetime "created_at"
179
+ t.datetime "updated_at"
180
+ t.boolean "most_recent"
181
+ end
182
+
183
+ add_index "message_transitions", ["message_id"], name: "index_message_transitions_on_message_id"
184
+ add_index "message_transitions", ["sort_key", "message_id"], name: "index_message_transitions_on_sort_key_and_message_id", unique: true
185
+
186
+ create_table "messages", force: :cascade do |t|
187
+ t.datetime "read_at"
188
+ t.integer "receiver_id"
189
+ t.integer "sender_id"
190
+ t.string "subject", null: false
191
+ t.text "body"
192
+ t.integer "message_request_id"
193
+ t.integer "parent_id"
194
+ t.datetime "created_at"
195
+ t.datetime "updated_at"
196
+ t.integer "lft"
197
+ t.integer "rgt"
198
+ t.integer "depth"
199
+ end
200
+
201
+ add_index "messages", ["message_request_id"], name: "index_messages_on_message_request_id"
202
+ add_index "messages", ["parent_id"], name: "index_messages_on_parent_id"
203
+ add_index "messages", ["receiver_id"], name: "index_messages_on_receiver_id"
204
+ add_index "messages", ["sender_id"], name: "index_messages_on_sender_id"
118
205
 
119
206
  create_table "profiles", force: :cascade do |t|
120
207
  t.integer "user_id"
@@ -253,6 +340,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
253
340
  t.integer "user_export_file_id"
254
341
  t.datetime "created_at"
255
342
  t.datetime "updated_at"
343
+ t.boolean "most_recent"
256
344
  end
257
345
 
258
346
  add_index "user_export_file_transitions", ["sort_key", "user_export_file_id"], name: "index_user_export_file_transitions_on_sort_key_and_file_id", unique: true
@@ -298,6 +386,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
298
386
  t.integer "user_import_file_id"
299
387
  t.datetime "created_at"
300
388
  t.datetime "updated_at"
389
+ t.boolean "most_recent"
301
390
  end
302
391
 
303
392
  add_index "user_import_file_transitions", ["sort_key", "user_import_file_id"], name: "index_user_import_file_transitions_on_sort_key_and_file_id", unique: true
@@ -309,7 +398,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
309
398
  t.datetime "executed_at"
310
399
  t.string "user_import_file_name"
311
400
  t.string "user_import_content_type"
312
- t.string "user_import_file_size"
401
+ t.integer "user_import_file_size"
313
402
  t.datetime "user_import_updated_at"
314
403
  t.string "user_import_fingerprint"
315
404
  t.string "edit_mode"
@@ -327,6 +416,7 @@ ActiveRecord::Schema.define(version: 20150221063719) do
327
416
  t.text "body"
328
417
  t.datetime "created_at"
329
418
  t.datetime "updated_at"
419
+ t.text "error_message"
330
420
  end
331
421
 
332
422
  create_table "users", force: :cascade do |t|
@@ -368,4 +458,15 @@ ActiveRecord::Schema.define(version: 20150221063719) do
368
458
 
369
459
  add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id"
370
460
 
461
+ create_table "withdraws", force: :cascade do |t|
462
+ t.integer "basket_id"
463
+ t.integer "item_id"
464
+ t.integer "librarian_id"
465
+ t.datetime "created_at", null: false
466
+ t.datetime "updated_at", null: false
467
+ end
468
+
469
+ add_index "withdraws", ["basket_id"], name: "index_withdraws_on_basket_id"
470
+ add_index "withdraws", ["item_id"], name: "index_withdraws_on_item_id"
471
+
371
472
  end
@@ -0,0 +1,17 @@
1
+ FactoryGirl.define do
2
+ factory :profile, :class => Profile do |f|
3
+ f.user_group_id {UserGroup.first.id}
4
+ f.required_role_id {Role.where(name: 'User').first.id}
5
+ f.sequence(:user_number){|n| "user_number_#{n}"}
6
+ f.library_id 2
7
+ f.locale "ja"
8
+ factory :librarian_profile, :class => Profile do |profile|
9
+ profile.required_role_id {Role.where(name: 'Librarian').first.id}
10
+ profile.association :user, factory: :librarian
11
+ end
12
+ factory :admin_profile, :class => Profile do |profile|
13
+ profile.required_role_id {Role.where(name: 'Administrator').first.id}
14
+ profile.association :user, factory: :admin
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,43 @@
1
+ FactoryGirl.define do
2
+ factory :admin, class: User do |f|
3
+ f.sequence(:username){|n| "admin_#{n}"}
4
+ f.sequence(:email){|n| "admin_#{n}@example.jp"}
5
+ f.password 'adminpassword'
6
+ f.password_confirmation 'adminpassword'
7
+ f.after(:create) do |user|
8
+ user_has_role = UserHasRole.new
9
+ user_has_role.assign_attributes({user_id: user.id, role_id: Role.find_by_name('Administrator').id})
10
+ user_has_role.save
11
+ user.reload
12
+ end
13
+ end
14
+
15
+ factory :librarian, class: User do |f|
16
+ f.sequence(:username){|n| "librarian_#{n}"}
17
+ f.sequence(:email){|n| "librarian_#{n}@example.jp"}
18
+ f.password 'librarianpassword'
19
+ f.password_confirmation 'librarianpassword'
20
+ f.after(:create) do |user|
21
+ user_has_role = UserHasRole.new
22
+ user_has_role.assign_attributes({user_id: user.id, role_id: Role.find_by_name('Librarian').id})
23
+ user_has_role.save
24
+ user.reload
25
+ end
26
+ end
27
+
28
+ factory :user, class: User do |f|
29
+ f.sequence(:username){|n| "user_#{n}"}
30
+ f.sequence(:email){|n| "user_#{n}@example.jp"}
31
+ f.password 'userpassword'
32
+ f.password_confirmation 'userpassword'
33
+ f.after(:create) do |user|
34
+ user_has_role = UserHasRole.new
35
+ user_has_role.assign_attributes({user_id: user.id, role_id: Role.find_by_name('User').id})
36
+ user_has_role.save
37
+ user.reload
38
+ end
39
+ end
40
+
41
+ factory :invalid_user, class: User do |f|
42
+ end
43
+ end