enju_event 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +36 -0
  4. data/app/controllers/calendar_controller.rb +34 -0
  5. data/app/controllers/event_categories_controller.rb +18 -0
  6. data/app/controllers/event_import_files_controller.rb +95 -0
  7. data/app/controllers/event_import_results_controller.rb +15 -0
  8. data/app/controllers/events_controller.rb +152 -0
  9. data/app/controllers/participates_controller.rb +81 -0
  10. data/app/helpers/calendar_helper.rb +31 -0
  11. data/app/models/event.rb +87 -0
  12. data/app/models/event_category.rb +23 -0
  13. data/app/models/event_import_file.rb +166 -0
  14. data/app/models/event_import_result.rb +23 -0
  15. data/app/models/participate.rb +25 -0
  16. data/app/views/calendar/index.html.erb +45 -0
  17. data/app/views/event_categories/_form.html.erb +19 -0
  18. data/app/views/event_categories/edit.html.erb +13 -0
  19. data/app/views/event_categories/index.html.erb +46 -0
  20. data/app/views/event_categories/new.html.erb +12 -0
  21. data/app/views/event_categories/show.html.erb +29 -0
  22. data/app/views/event_import_files/edit.html.erb +25 -0
  23. data/app/views/event_import_files/index.html.erb +40 -0
  24. data/app/views/event_import_files/new.html.erb +37 -0
  25. data/app/views/event_import_files/show.html.erb +64 -0
  26. data/app/views/event_import_results/index.csv.erb +3 -0
  27. data/app/views/event_import_results/index.html.erb +50 -0
  28. data/app/views/event_import_results/show.html.erb +33 -0
  29. data/app/views/events/_all_day.html.erb +24 -0
  30. data/app/views/events/_form.html.erb +44 -0
  31. data/app/views/events/edit.html.erb +14 -0
  32. data/app/views/events/index.atom.builder +10 -0
  33. data/app/views/events/index.csv.erb +4 -0
  34. data/app/views/events/index.html.erb +105 -0
  35. data/app/views/events/index.ics.erb +13 -0
  36. data/app/views/events/index.mobile.erb +49 -0
  37. data/app/views/events/index.rss.builder +34 -0
  38. data/app/views/events/new.html.erb +17 -0
  39. data/app/views/events/show.html.erb +50 -0
  40. data/app/views/events/show.mobile.erb +42 -0
  41. data/app/views/participates/edit.html.erb +28 -0
  42. data/app/views/participates/index.html.erb +30 -0
  43. data/app/views/participates/new.html.erb +27 -0
  44. data/app/views/participates/show.html.erb +24 -0
  45. data/config/routes.rb +10 -0
  46. data/db/fixtures/event_categories.yml +13 -0
  47. data/db/migrate/113_create_events.rb +23 -0
  48. data/db/migrate/114_create_event_categories.rb +16 -0
  49. data/db/migrate/20081028093607_create_event_import_files.rb +29 -0
  50. data/db/migrate/20090519203307_create_participates.rb +17 -0
  51. data/db/migrate/20100925074639_create_event_import_results.rb +15 -0
  52. data/lib/enju_event.rb +5 -0
  53. data/lib/enju_event/engine.rb +18 -0
  54. data/lib/enju_event/version.rb +3 -0
  55. data/lib/tasks/enju_event_tasks.rake +5 -0
  56. data/spec/controllers/event_categories_controller_spec.rb +483 -0
  57. data/spec/controllers/event_import_files_controller_spec.rb +321 -0
  58. data/spec/controllers/events_controller_spec.rb +506 -0
  59. data/spec/dummy/Rakefile +7 -0
  60. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  61. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  62. data/spec/dummy/app/controllers/application_controller.rb +99 -0
  63. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  64. data/spec/dummy/app/mailers/notifier.rb +28 -0
  65. data/spec/dummy/app/models/ability.rb +39 -0
  66. data/spec/dummy/app/models/language.rb +4 -0
  67. data/spec/dummy/app/models/library.rb +128 -0
  68. data/spec/dummy/app/models/library_group.rb +86 -0
  69. data/spec/dummy/app/models/patron.rb +163 -0
  70. data/spec/dummy/app/models/patron_type.rb +19 -0
  71. data/spec/dummy/app/models/role.rb +8 -0
  72. data/spec/dummy/app/models/shelf.rb +54 -0
  73. data/spec/dummy/app/models/user.rb +43 -0
  74. data/spec/dummy/app/models/user_group.rb +2 -0
  75. data/spec/dummy/app/models/user_has_role.rb +4 -0
  76. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  77. data/spec/dummy/app/views/page/403.html.erb +9 -0
  78. data/spec/dummy/app/views/page/403.mobile.erb +5 -0
  79. data/spec/dummy/app/views/page/403.xml.erb +4 -0
  80. data/spec/dummy/app/views/page/404.html.erb +9 -0
  81. data/spec/dummy/app/views/page/404.mobile.erb +5 -0
  82. data/spec/dummy/app/views/page/404.xml.erb +4 -0
  83. data/spec/dummy/config.ru +4 -0
  84. data/spec/dummy/config/application.rb +45 -0
  85. data/spec/dummy/config/boot.rb +10 -0
  86. data/spec/dummy/config/database.yml +25 -0
  87. data/spec/dummy/config/environment.rb +5 -0
  88. data/spec/dummy/config/environments/development.rb +30 -0
  89. data/spec/dummy/config/environments/production.rb +60 -0
  90. data/spec/dummy/config/environments/test.rb +39 -0
  91. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  92. data/spec/dummy/config/initializers/devise.rb +209 -0
  93. data/spec/dummy/config/initializers/inflections.rb +10 -0
  94. data/spec/dummy/config/initializers/mime_types.rb +7 -0
  95. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  96. data/spec/dummy/config/initializers/session_store.rb +8 -0
  97. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  98. data/spec/dummy/config/locales/en.yml +5 -0
  99. data/spec/dummy/config/routes.rb +60 -0
  100. data/spec/dummy/db/migrate/001_create_patrons.rb +62 -0
  101. data/spec/dummy/db/migrate/059_create_libraries.rb +34 -0
  102. data/spec/dummy/db/migrate/069_create_shelves.rb +19 -0
  103. data/spec/dummy/db/migrate/080_create_library_groups.rb +25 -0
  104. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +16 -0
  105. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +27 -0
  106. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +9 -0
  107. data/spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +9 -0
  108. data/spec/dummy/db/migrate/20100527113752_create_delayed_jobs.rb +21 -0
  109. data/spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb +9 -0
  110. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  111. data/spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb +11 -0
  112. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  113. data/spec/dummy/db/migrate/20111201155456_create_users.rb +14 -0
  114. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +31 -0
  115. data/spec/dummy/db/migrate/20111201163342_create_user_groups.rb +12 -0
  116. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  117. data/spec/dummy/db/schema.rb +293 -0
  118. data/spec/dummy/db/test.sqlite3 +0 -0
  119. data/spec/dummy/lib/enju_leaf.rb +4 -0
  120. data/spec/dummy/lib/enju_leaf/import_file.rb +13 -0
  121. data/spec/dummy/lib/enju_leaf/localized_name.rb +13 -0
  122. data/spec/dummy/lib/enju_leaf/master_model.rb +41 -0
  123. data/spec/dummy/lib/enju_leaf/url_validator.rb +10 -0
  124. data/spec/dummy/log/sunspot-solr-test.log +222 -0
  125. data/spec/dummy/log/test.log +145759 -0
  126. data/spec/dummy/private/system/event_imports/4/original/event_import_file_sample1.tsv +5 -0
  127. data/spec/dummy/private/system/event_imports/4/original/event_import_file_sample2.tsv +3 -0
  128. data/spec/dummy/public/404.html +26 -0
  129. data/spec/dummy/public/422.html +26 -0
  130. data/spec/dummy/public/500.html +26 -0
  131. data/spec/dummy/public/favicon.ico +0 -0
  132. data/spec/dummy/script/rails +6 -0
  133. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  134. data/spec/dummy/solr/conf/elevate.xml +36 -0
  135. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  136. data/spec/dummy/solr/conf/protwords.txt +21 -0
  137. data/spec/dummy/solr/conf/schema.xml +238 -0
  138. data/spec/dummy/solr/conf/scripts.conf +24 -0
  139. data/spec/dummy/solr/conf/solrconfig.xml +934 -0
  140. data/spec/dummy/solr/conf/spellings.txt +2 -0
  141. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  142. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  143. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  144. data/spec/dummy/solr/data/test/index/segments_1 +0 -0
  145. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  146. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  147. data/spec/factories/event.rb +7 -0
  148. data/spec/factories/event_category.rb +5 -0
  149. data/spec/factories/library.rb +13 -0
  150. data/spec/factories/user.rb +34 -0
  151. data/spec/fixtures/event_categories.yml +55 -0
  152. data/spec/fixtures/event_import_files.yml +49 -0
  153. data/spec/fixtures/event_import_results.yml +24 -0
  154. data/spec/fixtures/events.yml +142 -0
  155. data/spec/fixtures/languages.yml +1901 -0
  156. data/spec/fixtures/libraries.yml +108 -0
  157. data/spec/fixtures/library_groups.yml +34 -0
  158. data/spec/fixtures/patron_types.yml +35 -0
  159. data/spec/fixtures/patrons.yml +338 -0
  160. data/spec/fixtures/roles.yml +21 -0
  161. data/spec/fixtures/shelves.yml +46 -0
  162. data/spec/fixtures/user_groups.yml +25 -0
  163. data/spec/fixtures/user_has_roles.yml +41 -0
  164. data/spec/fixtures/users.yml +69 -0
  165. data/spec/models/event_category_spec.rb +21 -0
  166. data/spec/models/event_import_file_spec.rb +62 -0
  167. data/spec/models/event_import_result_spec.rb +20 -0
  168. data/spec/models/event_spec.rb +39 -0
  169. data/spec/spec_helper.rb +45 -0
  170. data/spec/support/controller_macros.rb +48 -0
  171. data/spec/support/devise.rb +4 -0
  172. metadata +541 -0
@@ -0,0 +1,12 @@
1
+ class CreateUserGroups < ActiveRecord::Migration
2
+ def change
3
+ create_table :user_groups do |t|
4
+ t.string :name
5
+ t.text :display_name
6
+ t.text :note
7
+ t.integer :position
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ class CreateUserHasRoles < ActiveRecord::Migration
2
+ def change
3
+ create_table :user_has_roles do |t|
4
+ t.integer :user_id
5
+ t.integer :role_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,293 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended to check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(:version => 20111201163718) do
15
+
16
+ create_table "delayed_jobs", :force => true do |t|
17
+ t.integer "priority", :default => 0
18
+ t.integer "attempts", :default => 0
19
+ t.text "handler"
20
+ t.text "last_error"
21
+ t.datetime "run_at"
22
+ t.datetime "locked_at"
23
+ t.datetime "failed_at"
24
+ t.string "locked_by"
25
+ t.datetime "created_at"
26
+ t.datetime "updated_at"
27
+ end
28
+
29
+ add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
30
+
31
+ create_table "event_categories", :force => true do |t|
32
+ t.string "name", :null => false
33
+ t.text "display_name"
34
+ t.text "note"
35
+ t.integer "position"
36
+ t.datetime "created_at"
37
+ t.datetime "updated_at"
38
+ end
39
+
40
+ create_table "event_import_files", :force => true do |t|
41
+ t.integer "parent_id"
42
+ t.string "content_type"
43
+ t.integer "size"
44
+ t.string "file_hash"
45
+ t.integer "user_id"
46
+ t.text "note"
47
+ t.datetime "imported_at"
48
+ t.string "state"
49
+ t.string "event_import_file_name"
50
+ t.string "event_import_content_type"
51
+ t.integer "event_import_file_size"
52
+ t.datetime "event_import_updated_at"
53
+ t.string "edit_mode"
54
+ t.datetime "created_at"
55
+ t.datetime "updated_at"
56
+ end
57
+
58
+ add_index "event_import_files", ["file_hash"], :name => "index_event_import_files_on_file_hash"
59
+ add_index "event_import_files", ["parent_id"], :name => "index_event_import_files_on_parent_id"
60
+ add_index "event_import_files", ["state"], :name => "index_event_import_files_on_state"
61
+ add_index "event_import_files", ["user_id"], :name => "index_event_import_files_on_user_id"
62
+
63
+ create_table "event_import_results", :force => true do |t|
64
+ t.integer "event_import_file_id"
65
+ t.integer "event_id"
66
+ t.text "body"
67
+ t.datetime "created_at"
68
+ t.datetime "updated_at"
69
+ end
70
+
71
+ create_table "events", :force => true do |t|
72
+ t.integer "library_id", :default => 1, :null => false
73
+ t.integer "event_category_id", :default => 1, :null => false
74
+ t.string "name"
75
+ t.text "note"
76
+ t.datetime "start_at"
77
+ t.datetime "end_at"
78
+ t.boolean "all_day", :default => false, :null => false
79
+ t.datetime "deleted_at"
80
+ t.text "display_name"
81
+ t.datetime "created_at"
82
+ t.datetime "updated_at"
83
+ end
84
+
85
+ add_index "events", ["event_category_id"], :name => "index_events_on_event_category_id"
86
+ add_index "events", ["library_id"], :name => "index_events_on_library_id"
87
+
88
+ create_table "languages", :force => true do |t|
89
+ t.string "name", :null => false
90
+ t.string "native_name"
91
+ t.text "display_name"
92
+ t.string "iso_639_1"
93
+ t.string "iso_639_2"
94
+ t.string "iso_639_3"
95
+ t.text "note"
96
+ t.integer "position"
97
+ end
98
+
99
+ add_index "languages", ["iso_639_1"], :name => "index_languages_on_iso_639_1"
100
+ add_index "languages", ["iso_639_2"], :name => "index_languages_on_iso_639_2"
101
+ add_index "languages", ["iso_639_3"], :name => "index_languages_on_iso_639_3"
102
+ add_index "languages", ["name"], :name => "index_languages_on_name", :unique => true
103
+
104
+ create_table "libraries", :force => true do |t|
105
+ t.integer "patron_id"
106
+ t.string "patron_type"
107
+ t.string "name", :null => false
108
+ t.text "display_name"
109
+ t.string "short_display_name", :null => false
110
+ t.string "zip_code"
111
+ t.text "street"
112
+ t.text "locality"
113
+ t.text "region"
114
+ t.string "telephone_number_1"
115
+ t.string "telephone_number_2"
116
+ t.string "fax_number"
117
+ t.text "note"
118
+ t.integer "call_number_rows", :default => 1, :null => false
119
+ t.string "call_number_delimiter", :default => "|", :null => false
120
+ t.integer "library_group_id", :default => 1, :null => false
121
+ t.integer "users_count", :default => 0, :null => false
122
+ t.integer "position"
123
+ t.integer "country_id"
124
+ t.datetime "created_at"
125
+ t.datetime "updated_at"
126
+ t.datetime "deleted_at"
127
+ end
128
+
129
+ add_index "libraries", ["library_group_id"], :name => "index_libraries_on_library_group_id"
130
+ add_index "libraries", ["name"], :name => "index_libraries_on_name", :unique => true
131
+ add_index "libraries", ["patron_id"], :name => "index_libraries_on_patron_id", :unique => true
132
+
133
+ create_table "library_groups", :force => true do |t|
134
+ t.string "name", :null => false
135
+ t.text "display_name"
136
+ t.string "short_name", :null => false
137
+ t.string "email"
138
+ t.text "my_networks"
139
+ t.text "login_banner"
140
+ t.text "note"
141
+ t.integer "valid_period_for_new_user", :default => 365, :null => false
142
+ t.boolean "post_to_union_catalog", :default => false, :null => false
143
+ t.integer "country_id"
144
+ t.datetime "created_at"
145
+ t.datetime "updated_at"
146
+ t.text "admin_networks"
147
+ t.boolean "allow_bookmark_external_url", :default => false, :null => false
148
+ t.integer "position"
149
+ t.string "url", :default => "http://localhost:3000/"
150
+ end
151
+
152
+ add_index "library_groups", ["short_name"], :name => "index_library_groups_on_short_name"
153
+
154
+ create_table "participates", :force => true do |t|
155
+ t.integer "patron_id", :null => false
156
+ t.integer "event_id", :null => false
157
+ t.integer "position"
158
+ t.datetime "created_at"
159
+ t.datetime "updated_at"
160
+ end
161
+
162
+ add_index "participates", ["event_id"], :name => "index_participates_on_event_id"
163
+ add_index "participates", ["patron_id"], :name => "index_participates_on_patron_id"
164
+
165
+ create_table "patron_types", :force => true do |t|
166
+ t.string "name", :null => false
167
+ t.text "display_name"
168
+ t.text "note"
169
+ t.integer "position"
170
+ t.datetime "created_at"
171
+ t.datetime "updated_at"
172
+ end
173
+
174
+ create_table "patrons", :force => true do |t|
175
+ t.integer "user_id"
176
+ t.string "last_name"
177
+ t.string "middle_name"
178
+ t.string "first_name"
179
+ t.string "last_name_transcription"
180
+ t.string "middle_name_transcription"
181
+ t.string "first_name_transcription"
182
+ t.string "corporate_name"
183
+ t.string "corporate_name_transcription"
184
+ t.string "full_name"
185
+ t.text "full_name_transcription"
186
+ t.text "full_name_alternative"
187
+ t.datetime "created_at"
188
+ t.datetime "updated_at"
189
+ t.datetime "deleted_at"
190
+ t.string "zip_code_1"
191
+ t.string "zip_code_2"
192
+ t.text "address_1"
193
+ t.text "address_2"
194
+ t.text "address_1_note"
195
+ t.text "address_2_note"
196
+ t.string "telephone_number_1"
197
+ t.string "telephone_number_2"
198
+ t.string "fax_number_1"
199
+ t.string "fax_number_2"
200
+ t.text "other_designation"
201
+ t.text "place"
202
+ t.string "postal_code"
203
+ t.text "street"
204
+ t.text "locality"
205
+ t.text "region"
206
+ t.datetime "date_of_birth"
207
+ t.datetime "date_of_death"
208
+ t.integer "language_id", :default => 1, :null => false
209
+ t.integer "country_id", :default => 1, :null => false
210
+ t.integer "patron_type_id", :default => 1, :null => false
211
+ t.integer "lock_version", :default => 0, :null => false
212
+ t.text "note"
213
+ t.integer "creates_count", :default => 0, :null => false
214
+ t.integer "realizes_count", :default => 0, :null => false
215
+ t.integer "produces_count", :default => 0, :null => false
216
+ t.integer "owns_count", :default => 0, :null => false
217
+ t.integer "required_role_id", :default => 1, :null => false
218
+ t.integer "required_score", :default => 0, :null => false
219
+ t.string "state"
220
+ t.text "email"
221
+ t.text "url"
222
+ end
223
+
224
+ add_index "patrons", ["country_id"], :name => "index_patrons_on_country_id"
225
+ add_index "patrons", ["full_name"], :name => "index_patrons_on_full_name"
226
+ add_index "patrons", ["language_id"], :name => "index_patrons_on_language_id"
227
+ add_index "patrons", ["required_role_id"], :name => "index_patrons_on_required_role_id"
228
+ add_index "patrons", ["user_id"], :name => "index_patrons_on_user_id", :unique => true
229
+
230
+ create_table "roles", :force => true do |t|
231
+ t.string "name"
232
+ t.text "display_name"
233
+ t.text "note"
234
+ t.integer "position"
235
+ t.datetime "created_at"
236
+ t.datetime "updated_at"
237
+ end
238
+
239
+ create_table "shelves", :force => true do |t|
240
+ t.string "name", :null => false
241
+ t.text "display_name"
242
+ t.text "note"
243
+ t.integer "library_id", :default => 1, :null => false
244
+ t.integer "items_count", :default => 0, :null => false
245
+ t.integer "position"
246
+ t.datetime "created_at"
247
+ t.datetime "updated_at"
248
+ t.datetime "deleted_at"
249
+ end
250
+
251
+ add_index "shelves", ["library_id"], :name => "index_shelves_on_library_id"
252
+
253
+ create_table "user_groups", :force => true do |t|
254
+ t.string "name"
255
+ t.text "display_name"
256
+ t.text "note"
257
+ t.integer "position"
258
+ t.datetime "created_at"
259
+ t.datetime "updated_at"
260
+ end
261
+
262
+ create_table "user_has_roles", :force => true do |t|
263
+ t.integer "user_id"
264
+ t.integer "role_id"
265
+ t.datetime "created_at"
266
+ t.datetime "updated_at"
267
+ end
268
+
269
+ create_table "users", :force => true do |t|
270
+ t.integer "user_group_id"
271
+ t.integer "required_role_id"
272
+ t.string "username"
273
+ t.text "note"
274
+ t.string "locale"
275
+ t.string "user_number"
276
+ t.datetime "created_at"
277
+ t.datetime "updated_at"
278
+ t.string "email", :default => "", :null => false
279
+ t.string "encrypted_password", :limit => 128, :default => "", :null => false
280
+ t.string "reset_password_token"
281
+ t.datetime "reset_password_sent_at"
282
+ t.datetime "remember_created_at"
283
+ t.integer "sign_in_count", :default => 0
284
+ t.datetime "current_sign_in_at"
285
+ t.datetime "last_sign_in_at"
286
+ t.string "current_sign_in_ip"
287
+ t.string "last_sign_in_ip"
288
+ end
289
+
290
+ add_index "users", ["email"], :name => "index_users_on_email"
291
+ add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true
292
+
293
+ end
@@ -0,0 +1,4 @@
1
+ require 'enju_leaf/import_file'
2
+ require 'enju_leaf/localized_name'
3
+ require 'enju_leaf/master_model'
4
+ require 'enju_leaf/url_validator'
@@ -0,0 +1,13 @@
1
+ module ImportFile
2
+ def self.included(base)
3
+ base.extend ClassMethods
4
+ end
5
+
6
+ module ClassMethods
7
+ def expire
8
+ self.stucked.find_each do |file|
9
+ file.destroy
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module LocalizedName
2
+ def localize(locale = I18n.locale.to_s)
3
+ values = Hash[*self.strip.split("\n").map{|n| n.split(':', 2)}.flatten]
4
+ name = values[locale.to_s] || self
5
+ name.strip
6
+ rescue ArgumentError
7
+ self
8
+ end
9
+ end
10
+
11
+ class String
12
+ include LocalizedName
13
+ end
@@ -0,0 +1,41 @@
1
+ module MasterModel
2
+ def self.included(base)
3
+ #base.extend ClassMethods
4
+ base.send :include, InstanceMethods
5
+ base.class_eval do
6
+ acts_as_list
7
+ validates_uniqueness_of :name, :case_sensitive => false
8
+ validates_presence_of :name, :display_name
9
+ before_validation :set_display_name, :on => :create
10
+ normalize_attributes :name
11
+ end
12
+ end
13
+
14
+ module InstanceMethods
15
+ def set_display_name
16
+ self.display_name = self.name if self.display_name.blank?
17
+ end
18
+
19
+ def check_creatable
20
+ if creatable?
21
+ raise NotModifiableError
22
+ end
23
+ end
24
+
25
+ def check_deletable
26
+ if deletable?
27
+ raise NotModifiableError
28
+ end
29
+ end
30
+
31
+ def creatable?
32
+ false
33
+ end
34
+
35
+ def deletable?
36
+ false
37
+ end
38
+ end
39
+
40
+ class NotModifiableError < StandardError; end
41
+ end
@@ -0,0 +1,10 @@
1
+ class UrlValidator < ActiveModel::EachValidator
2
+ def validate_each(record, attribute, value)
3
+ url = ::Addressable::URI.parse(value)
4
+ if url
5
+ unless ['http', 'https'].include?(url.scheme)
6
+ record.errors.add(attribute.to_sym)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,222 @@
1
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
2
+ INFO: JNDI not configured for solr (NoInitialContextEx)
3
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
4
+ INFO: using system property solr.solr.home: /Users/kosuke/enju_event/spec/dummy/solr
5
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.SolrResourceLoader <init>
6
+ INFO: Solr home set to '/Users/kosuke/enju_event/spec/dummy/solr/'
7
+ Dec 18, 2011 7:34:45 PM org.apache.solr.servlet.SolrDispatchFilter init
8
+ INFO: SolrDispatchFilter.init()
9
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
10
+ INFO: JNDI not configured for solr (NoInitialContextEx)
11
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
12
+ INFO: using system property solr.solr.home: /Users/kosuke/enju_event/spec/dummy/solr
13
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.CoreContainer$Initializer initialize
14
+ INFO: looking for solr.xml: /Users/kosuke/enju_event/spec/dummy/solr/solr.xml
15
+ Dec 18, 2011 7:34:45 PM org.apache.solr.core.SolrResourceLoader <init>
16
+ INFO: Solr home set to '/Users/kosuke/enju_event/spec/dummy/solr/'
17
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrConfig initLibs
18
+ INFO: Adding specified lib dirs to ClassLoader
19
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrConfig <init>
20
+ INFO: Loaded SolrConfig: solrconfig.xml
21
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrCore <init>
22
+ INFO: Opening new SolrCore at /Users/kosuke/enju_event/spec/dummy/solr/, dataDir=/Users/kosuke/enju_event/spec/dummy/solr/data/test/
23
+ Dec 18, 2011 7:34:46 PM org.apache.solr.schema.IndexSchema readSchema
24
+ INFO: Reading Solr Schema
25
+ Dec 18, 2011 7:34:46 PM org.apache.solr.schema.IndexSchema readSchema
26
+ INFO: Schema name=sunspot
27
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
28
+ INFO: created string: org.apache.solr.schema.StrField
29
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
30
+ INFO: created tdouble: org.apache.solr.schema.TrieDoubleField
31
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
32
+ INFO: created rand: org.apache.solr.schema.RandomSortField
33
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
34
+ INFO: created null: org.apache.solr.analysis.StandardTokenizerFactory
35
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
36
+ INFO: created null: org.apache.solr.analysis.StandardFilterFactory
37
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
38
+ INFO: created null: org.apache.solr.analysis.LowerCaseFilterFactory
39
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
40
+ INFO: created text: org.apache.solr.schema.TextField
41
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
42
+ INFO: created boolean: org.apache.solr.schema.BoolField
43
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
44
+ INFO: created date: org.apache.solr.schema.DateField
45
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
46
+ INFO: created sdouble: org.apache.solr.schema.SortableDoubleField
47
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
48
+ INFO: created sfloat: org.apache.solr.schema.SortableFloatField
49
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
50
+ INFO: created sint: org.apache.solr.schema.SortableIntField
51
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
52
+ INFO: created slong: org.apache.solr.schema.SortableLongField
53
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
54
+ INFO: created tint: org.apache.solr.schema.TrieIntField
55
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
56
+ INFO: created tfloat: org.apache.solr.schema.TrieFloatField
57
+ Dec 18, 2011 7:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader load
58
+ INFO: created tdate: org.apache.solr.schema.TrieDateField
59
+ Dec 18, 2011 7:34:46 PM org.apache.solr.schema.IndexSchema readSchema
60
+ INFO: default search field is text
61
+ Dec 18, 2011 7:34:46 PM org.apache.solr.schema.IndexSchema readSchema
62
+ INFO: query parser default operator is AND
63
+ Dec 18, 2011 7:34:46 PM org.apache.solr.schema.IndexSchema readSchema
64
+ INFO: unique key field: id
65
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.JmxMonitoredMap <init>
66
+ INFO: No JMX servers found, not exposing Solr information with JMX.
67
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrCore initListeners
68
+ INFO: Added SolrEventListener: org.apache.solr.core.QuerySenderListener{queries=[]}
69
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrCore initListeners
70
+ INFO: Added SolrEventListener: org.apache.solr.core.QuerySenderListener{queries=[{q=solr rocks,start=0,rows=10}, {q=static firstSearcher warming query from solrconfig.xml}]}
71
+ Dec 18, 2011 7:34:46 PM org.apache.solr.request.XSLTResponseWriter init
72
+ INFO: xsltCacheLifetimeSeconds=5
73
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
74
+ INFO: created standard: solr.SearchHandler
75
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
76
+ INFO: created dismax: solr.SearchHandler
77
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
78
+ INFO: created partitioned: solr.SearchHandler
79
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
80
+ INFO: created /spell: solr.SearchHandler
81
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
82
+ INFO: created tvrh: org.apache.solr.handler.component.SearchHandler
83
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
84
+ INFO: adding lazy requestHandler: org.apache.solr.handler.extraction.ExtractingRequestHandler
85
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
86
+ INFO: created /update/extract: org.apache.solr.handler.extraction.ExtractingRequestHandler
87
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
88
+ INFO: created /terms: org.apache.solr.handler.component.SearchHandler
89
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
90
+ INFO: adding lazy requestHandler: solr.SearchHandler
91
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
92
+ INFO: created /elevate: solr.SearchHandler
93
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
94
+ INFO: created /update: solr.XmlUpdateRequestHandler
95
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
96
+ INFO: created /update/javabin: solr.BinaryUpdateRequestHandler
97
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
98
+ INFO: created /analysis/document: solr.DocumentAnalysisRequestHandler
99
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
100
+ INFO: created /analysis/field: solr.FieldAnalysisRequestHandler
101
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
102
+ INFO: adding lazy requestHandler: solr.CSVRequestHandler
103
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
104
+ INFO: created /update/csv: solr.CSVRequestHandler
105
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
106
+ INFO: created /admin/: org.apache.solr.handler.admin.AdminHandlers
107
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
108
+ INFO: created /admin/ping: PingRequestHandler
109
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
110
+ INFO: created /debug/dump: solr.DumpRequestHandler
111
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
112
+ INFO: created /mlt: solr.MoreLikeThisHandler
113
+ Dec 18, 2011 7:34:46 PM org.apache.solr.search.SolrIndexSearcher <init>
114
+ INFO: Opening Searcher@35a8d460 main
115
+ Dec 18, 2011 7:34:46 PM org.apache.solr.update.DirectUpdateHandler2$CommitTracker <init>
116
+ INFO: AutoCommit: disabled
117
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SpellCheckComponent inform
118
+ INFO: Initializing spell checkers
119
+ Dec 18, 2011 7:34:46 PM org.apache.solr.spelling.AbstractLuceneSpellChecker init
120
+ INFO: Using WhitespaceAnalzyer for dictionary: default
121
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SpellCheckComponent inform
122
+ WARNING: No queryConverter defined, using default converter
123
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.QueryElevationComponent inform
124
+ INFO: Loading QueryElevation from: /Users/kosuke/enju_event/spec/dummy/solr/conf/elevate.xml
125
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
126
+ INFO: Adding component:org.apache.solr.handler.component.QueryComponent@56f449b8
127
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
128
+ INFO: Adding component:org.apache.solr.handler.component.FacetComponent@4013fba1
129
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
130
+ INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@5fed27e4
131
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
132
+ INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@4ad61aef
133
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
134
+ INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2e82674b
135
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
136
+ INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@734b84c7
137
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
138
+ INFO: Adding component:org.apache.solr.handler.component.QueryComponent@56f449b8
139
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
140
+ INFO: Adding component:org.apache.solr.handler.component.FacetComponent@4013fba1
141
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
142
+ INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@5fed27e4
143
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
144
+ INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@4ad61aef
145
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
146
+ INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2e82674b
147
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
148
+ INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@734b84c7
149
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
150
+ INFO: Adding component:org.apache.solr.handler.component.QueryComponent@56f449b8
151
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
152
+ INFO: Adding component:org.apache.solr.handler.component.FacetComponent@4013fba1
153
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
154
+ INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@5fed27e4
155
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
156
+ INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@4ad61aef
157
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
158
+ INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2e82674b
159
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
160
+ INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@734b84c7
161
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
162
+ INFO: Adding component:org.apache.solr.handler.component.QueryComponent@56f449b8
163
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
164
+ INFO: Adding component:org.apache.solr.handler.component.FacetComponent@4013fba1
165
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
166
+ INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@5fed27e4
167
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
168
+ INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@4ad61aef
169
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
170
+ INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2e82674b
171
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
172
+ INFO: Adding component:org.apache.solr.handler.component.SpellCheckComponent@62fa5ff3
173
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
174
+ INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@734b84c7
175
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
176
+ INFO: Adding component:org.apache.solr.handler.component.QueryComponent@56f449b8
177
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
178
+ INFO: Adding component:org.apache.solr.handler.component.FacetComponent@4013fba1
179
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
180
+ INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@5fed27e4
181
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
182
+ INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@4ad61aef
183
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
184
+ INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2e82674b
185
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
186
+ INFO: Adding component:org.apache.solr.handler.component.TermVectorComponent@23b17d49
187
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
188
+ INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@734b84c7
189
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SearchHandler inform
190
+ INFO: Adding component:org.apache.solr.handler.component.TermsComponent@599855ed
191
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.QuerySenderListener newSearcher
192
+ INFO: QuerySenderListener sending requests to Searcher@35a8d460 main
193
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.CoreContainer register
194
+ INFO: registering core:
195
+ Dec 18, 2011 7:34:46 PM org.apache.solr.servlet.SolrDispatchFilter init
196
+ INFO: user.dir=/usr/local/lib/ruby/gems/1.9.1/gems/sunspot_solr-1.3.0/solr
197
+ Dec 18, 2011 7:34:46 PM org.apache.solr.servlet.SolrDispatchFilter init
198
+ INFO: SolrDispatchFilter.init() done
199
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrCore execute
200
+ INFO: [] webapp=null path=null params={start=0&event=firstSearcher&q=solr+rocks&rows=10} hits=0 status=0 QTime=37
201
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrCore execute
202
+ INFO: [] webapp=null path=null params={event=firstSearcher&q=static+firstSearcher+warming+query+from+solrconfig.xml} hits=0 status=0 QTime=1
203
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.QuerySenderListener newSearcher
204
+ INFO: QuerySenderListener done.
205
+ Dec 18, 2011 7:34:46 PM org.apache.solr.handler.component.SpellCheckComponent$SpellCheckerListener newSearcher
206
+ INFO: Loading spell index for spellchecker: default
207
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrCore registerSearcher
208
+ INFO: [] Registered new searcher Searcher@35a8d460 main
209
+ Dec 18, 2011 7:34:46 PM org.apache.solr.servlet.SolrServlet init
210
+ INFO: SolrServlet.init()
211
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
212
+ INFO: JNDI not configured for solr (NoInitialContextEx)
213
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
214
+ INFO: using system property solr.solr.home: /Users/kosuke/enju_event/spec/dummy/solr
215
+ Dec 18, 2011 7:34:46 PM org.apache.solr.servlet.SolrServlet init
216
+ INFO: SolrServlet.init() done
217
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
218
+ INFO: JNDI not configured for solr (NoInitialContextEx)
219
+ Dec 18, 2011 7:34:46 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
220
+ INFO: using system property solr.solr.home: /Users/kosuke/enju_event/spec/dummy/solr
221
+ Dec 18, 2011 7:34:46 PM org.apache.solr.servlet.SolrUpdateServlet init
222
+ INFO: SolrUpdateServlet.init() done