active-fedora 9.8.0 → 9.8.1

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 (23) hide show
  1. checksums.yaml +4 -4
  2. data/lib/active_fedora/file.rb +46 -32
  3. data/lib/active_fedora/version.rb +1 -1
  4. data/lib/generators/active_fedora/config/solr/solr_generator.rb +1 -1
  5. data/lib/generators/active_fedora/config/solr/templates/solr/config/_rest_managed.json +3 -0
  6. data/lib/generators/active_fedora/config/solr/templates/solr/config/admin-extra.html +31 -0
  7. data/lib/generators/active_fedora/config/solr/templates/{solr_conf/solr.xml → solr/config/elevate.xml} +36 -35
  8. data/lib/generators/active_fedora/config/solr/templates/solr/config/mapping-ISOLatin1Accent.txt +246 -0
  9. data/lib/generators/active_fedora/config/solr/templates/solr/config/protwords.txt +21 -0
  10. data/lib/generators/active_fedora/config/solr/templates/{solr_conf/conf → solr/config}/schema.xml +217 -123
  11. data/lib/generators/active_fedora/config/solr/templates/solr/config/scripts.conf +24 -0
  12. data/lib/generators/active_fedora/config/solr/templates/solr/config/solrconfig.xml +419 -0
  13. data/lib/generators/active_fedora/config/solr/templates/solr/config/spellings.txt +2 -0
  14. data/lib/generators/active_fedora/config/solr/templates/solr/config/stopwords.txt +58 -0
  15. data/lib/generators/active_fedora/config/solr/templates/solr/config/stopwords_en.txt +58 -0
  16. data/lib/generators/active_fedora/config/solr/templates/solr/config/synonyms.txt +31 -0
  17. data/lib/generators/active_fedora/config/solr/templates/solr/config/xslt/example.xsl +132 -0
  18. data/lib/generators/active_fedora/config/solr/templates/solr/config/xslt/example_atom.xsl +67 -0
  19. data/lib/generators/active_fedora/config/solr/templates/solr/config/xslt/example_rss.xsl +66 -0
  20. data/lib/generators/active_fedora/config/solr/templates/solr/config/xslt/luke.xsl +337 -0
  21. data/spec/unit/file_spec.rb +105 -0
  22. metadata +17 -4
  23. data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/solrconfig.xml +0 -218
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb7bb622089037ec0a49870417c31aedf0b2b3c1
4
- data.tar.gz: 077acf9671652587082be135de13ca1afa05b709
3
+ metadata.gz: 58586ed53bced58a10c3a3a900ffdb413af0da13
4
+ data.tar.gz: 3722c4020f7de0759cba639c5b934a899d8b1eab
5
5
  SHA512:
6
- metadata.gz: 8cee9e01316cd57089335922d058f7bb537f3845c5da764601be842331707ac1ef175ecd20e6bc8e7cb759b432ec752b0fe9bcda08877b10dea2a72f97a2fc76
7
- data.tar.gz: 23964a8f464c39dd2d0c53f5f6418337c76235489d2924895af34d979c214e551999b430d0072d28d6243e7c06114f170eecb8a6e9124664715e82b342f4c1f2
6
+ metadata.gz: 9fedd2331376a0cac8f2259dd0ebfca4763f330178a1d82023c66f16fa5dc2a4158d88c50fcbb816c436432472104b759ba5ab1ae60d41a53cf745610d76ffa2
7
+ data.tar.gz: 4db5188bb830e88107a19887c112f94d8427f0e47c1f3411cdb4ea8a4e0e5466fb510c2728158daafa8a856a594739ae7576fe3c9908f5a7d71bd3cbf199314c
@@ -23,7 +23,7 @@ module ActiveFedora
23
23
 
24
24
  generate_method 'content'
25
25
 
26
- define_model_callbacks :save, :create, :destroy
26
+ define_model_callbacks :update, :save, :create, :destroy
27
27
  define_model_callbacks :initialize, only: :after
28
28
 
29
29
  # @param parent_or_url_or_hash [ActiveFedora::Base, RDF::URI, String, Hash, NilClass] the parent resource or the URI of this resource
@@ -32,29 +32,31 @@ module ActiveFedora
32
32
  # @yield [self] Yields self
33
33
  # @yieldparam [File] self the newly created file
34
34
  def initialize(parent_or_url_or_hash = nil, path = nil, _options = {}, &_block)
35
- case parent_or_url_or_hash
36
- when Hash
37
- @ldp_source = build_ldp_resource_via_uri
38
- when nil
39
- @ldp_source = build_ldp_resource_via_uri nil
40
- when String, ::RDF::URI
41
- id = ActiveFedora::Associations::IDComposite.new([parent_or_url_or_hash], translate_uri_to_id).first
42
- @ldp_source = build_ldp_resource id
43
- when ActiveFedora::Base
44
- Deprecation.warn File, "Initializing a file by passing a container is deprecated. Initialize with a uri instead. This capability will be removed in active-fedora 10.0"
45
- uri = if parent_or_url_or_hash.uri.is_a?(::RDF::URI) && parent_or_url_or_hash.uri.value.empty?
46
- nil
47
- else
48
- "#{parent_or_url_or_hash.uri}/#{path}"
49
- end
50
- @ldp_source = build_ldp_resource_via_uri(uri, nil)
35
+ run_callbacks(:initialize) do
36
+ case parent_or_url_or_hash
37
+ when Hash
38
+ @ldp_source = build_ldp_resource_via_uri
39
+ when nil
40
+ @ldp_source = build_ldp_resource_via_uri nil
41
+ when String, ::RDF::URI
42
+ id = ActiveFedora::Associations::IDComposite.new([parent_or_url_or_hash], translate_uri_to_id).first
43
+ @ldp_source = build_ldp_resource id
44
+ when ActiveFedora::Base
45
+ Deprecation.warn File, "Initializing a file by passing a container is deprecated. Initialize with a uri instead. This capability will be removed in active-fedora 10.0"
46
+ uri = if parent_or_url_or_hash.uri.is_a?(::RDF::URI) && parent_or_url_or_hash.uri.value.empty?
47
+ nil
48
+ else
49
+ "#{parent_or_url_or_hash.uri}/#{path}"
50
+ end
51
+ @ldp_source = build_ldp_resource_via_uri(uri, nil)
51
52
 
52
- else
53
- raise "The first argument to #{self} must be a String or an ActiveFedora::Base. You provided a #{parent_or_url_or_hash.class}"
54
- end
53
+ else
54
+ raise "The first argument to #{self} must be a String or an ActiveFedora::Base. You provided a #{parent_or_url_or_hash.class}"
55
+ end
55
56
 
56
- @attributes = {}.with_indifferent_access
57
- yield self if block_given?
57
+ @attributes = {}.with_indifferent_access
58
+ yield self if block_given?
59
+ end
58
60
  end
59
61
 
60
62
  # @return [true, false] true if the objects are equal or when the objects have uris
@@ -188,6 +190,10 @@ module ActiveFedora
188
190
  false
189
191
  end
190
192
 
193
+ def destroy(*)
194
+ run_callbacks(:destroy) { super }
195
+ end
196
+
191
197
  def self.relation
192
198
  FileRelation.new(self)
193
199
  end
@@ -219,21 +225,29 @@ module ActiveFedora
219
225
  end
220
226
 
221
227
  def create_record(_options = {})
222
- return false if content.nil?
223
- ldp_source.content = content
224
- ldp_source.create do |req|
225
- req.headers.merge!(ldp_headers)
228
+ run_callbacks(:create) do
229
+ run_callbacks(:save) do
230
+ return false if content.nil?
231
+ ldp_source.content = content
232
+ ldp_source.create do |req|
233
+ req.headers.merge!(ldp_headers)
234
+ end
235
+ refresh
236
+ end
226
237
  end
227
- refresh
228
238
  end
229
239
 
230
240
  def update_record(_options = {})
231
- return true unless content_changed?
232
- ldp_source.content = content
233
- ldp_source.update do |req|
234
- req.headers.merge!(ldp_headers)
241
+ run_callbacks(:update) do
242
+ run_callbacks(:save) do
243
+ return true unless content_changed?
244
+ ldp_source.content = content
245
+ ldp_source.update do |req|
246
+ req.headers.merge!(ldp_headers)
247
+ end
248
+ refresh
249
+ end
235
250
  end
236
- refresh
237
251
  end
238
252
 
239
253
  def build_ldp_resource(id)
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "9.8.0".freeze
2
+ VERSION = "9.8.1".freeze
3
3
  end
@@ -7,7 +7,7 @@ module ActiveFedora
7
7
  def generate
8
8
  # Overwrite the configuration files that Blacklight has installed
9
9
  copy_file 'solr.yml', 'config/solr.yml', force: true
10
- directory 'solr_conf', 'solr_conf'
10
+ directory 'solr', 'solr'
11
11
  end
12
12
  end
13
13
  end
@@ -0,0 +1,31 @@
1
+ <!--
2
+ Licensed to the Apache Software Foundation (ASF) under one or more
3
+ contributor license agreements. See the NOTICE file distributed with
4
+ this work for additional information regarding copyright ownership.
5
+ The ASF licenses this file to You under the Apache License, Version 2.0
6
+ (the "License"); you may not use this file except in compliance with
7
+ the License. You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ -->
17
+
18
+ <!-- The content of this page will be statically included into the top
19
+ of the admin page. Uncomment this as an example to see there the content
20
+ will show up.
21
+
22
+ <hr>
23
+ <i>This line will appear before the first table</i>
24
+ <tr>
25
+ <td colspan="2">
26
+ This row will be appended to the end of the first table
27
+ </td>
28
+ </tr>
29
+ <hr>
30
+
31
+ -->
@@ -1,35 +1,36 @@
1
- <?xml version="1.0" encoding="UTF-8" ?>
2
- <!--
3
- Licensed to the Apache Software Foundation (ASF) under one or more
4
- contributor license agreements. See the NOTICE file distributed with
5
- this work for additional information regarding copyright ownership.
6
- The ASF licenses this file to You under the Apache License, Version 2.0
7
- (the "License"); you may not use this file except in compliance with
8
- the License. You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- -->
18
-
19
- <!--
20
- All (relative) paths are relative to the installation path
21
-
22
- persistent: Save changes made via the API to this file
23
- sharedLib: path to a lib directory that will be shared across all cores
24
- -->
25
- <solr persistent="false" sharedLib="lib">
26
-
27
- <!--
28
- adminPath: RequestHandler path to manage cores.
29
- If 'null' (or absent), cores will not be manageable via REST
30
- -->
31
- <cores adminPath="/admin/cores" defaultCoreName="development">
32
- <core name="development" instanceDir="development-core" />
33
- <core name="test" instanceDir="test-core" />
34
- </cores>
35
- </solr>
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+
19
+ <!-- If this file is found in the config directory, it will only be
20
+ loaded once at startup. If it is found in Solr's data
21
+ directory, it will be re-loaded every commit.
22
+ -->
23
+
24
+ <elevate>
25
+ <query text="foo bar">
26
+ <doc id="1" />
27
+ <doc id="2" />
28
+ <doc id="3" />
29
+ </query>
30
+
31
+ <query text="ipod">
32
+ <doc id="MA147LL/A" /> <!-- put the actual ipod at the top -->
33
+ <doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
34
+ </query>
35
+
36
+ </elevate>
@@ -0,0 +1,246 @@
1
+ # The ASF licenses this file to You under the Apache License, Version 2.0
2
+ # (the "License"); you may not use this file except in compliance with
3
+ # the License. You may obtain a copy of the License at
4
+ #
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # Unless required by applicable law or agreed to in writing, software
8
+ # distributed under the License is distributed on an "AS IS" BASIS,
9
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ # See the License for the specific language governing permissions and
11
+ # limitations under the License.
12
+
13
+ # Syntax:
14
+ # "source" => "target"
15
+ # "source".length() > 0 (source cannot be empty.)
16
+ # "target".length() >= 0 (target can be empty.)
17
+
18
+ # example:
19
+ # "??" => "A"
20
+ # "\u00C0" => "A"
21
+ # "\u00C0" => "\u0041"
22
+ # "??" => "ss"
23
+ # "\t" => " "
24
+ # "\n" => ""
25
+
26
+ # ?? => A
27
+ "\u00C0" => "A"
28
+
29
+ # ?? => A
30
+ "\u00C1" => "A"
31
+
32
+ # ?? => A
33
+ "\u00C2" => "A"
34
+
35
+ # ?? => A
36
+ "\u00C3" => "A"
37
+
38
+ # ?? => A
39
+ "\u00C4" => "A"
40
+
41
+ # ?? => A
42
+ "\u00C5" => "A"
43
+
44
+ # ?? => AE
45
+ "\u00C6" => "AE"
46
+
47
+ # ?? => C
48
+ "\u00C7" => "C"
49
+
50
+ # ?? => E
51
+ "\u00C8" => "E"
52
+
53
+ # ?? => E
54
+ "\u00C9" => "E"
55
+
56
+ # ?? => E
57
+ "\u00CA" => "E"
58
+
59
+ # ?? => E
60
+ "\u00CB" => "E"
61
+
62
+ # ?? => I
63
+ "\u00CC" => "I"
64
+
65
+ # ?? => I
66
+ "\u00CD" => "I"
67
+
68
+ # ?? => I
69
+ "\u00CE" => "I"
70
+
71
+ # ?? => I
72
+ "\u00CF" => "I"
73
+
74
+ # ?? => IJ
75
+ "\u0132" => "IJ"
76
+
77
+ # ?? => D
78
+ "\u00D0" => "D"
79
+
80
+ # ?? => N
81
+ "\u00D1" => "N"
82
+
83
+ # ?? => O
84
+ "\u00D2" => "O"
85
+
86
+ # ?? => O
87
+ "\u00D3" => "O"
88
+
89
+ # ?? => O
90
+ "\u00D4" => "O"
91
+
92
+ # ?? => O
93
+ "\u00D5" => "O"
94
+
95
+ # ?? => O
96
+ "\u00D6" => "O"
97
+
98
+ # ?? => O
99
+ "\u00D8" => "O"
100
+
101
+ # ?? => OE
102
+ "\u0152" => "OE"
103
+
104
+ # ??
105
+ "\u00DE" => "TH"
106
+
107
+ # ?? => U
108
+ "\u00D9" => "U"
109
+
110
+ # ?? => U
111
+ "\u00DA" => "U"
112
+
113
+ # ?? => U
114
+ "\u00DB" => "U"
115
+
116
+ # ?? => U
117
+ "\u00DC" => "U"
118
+
119
+ # ?? => Y
120
+ "\u00DD" => "Y"
121
+
122
+ # ?? => Y
123
+ "\u0178" => "Y"
124
+
125
+ # ?? => a
126
+ "\u00E0" => "a"
127
+
128
+ # ?? => a
129
+ "\u00E1" => "a"
130
+
131
+ # ?? => a
132
+ "\u00E2" => "a"
133
+
134
+ # ?? => a
135
+ "\u00E3" => "a"
136
+
137
+ # ?? => a
138
+ "\u00E4" => "a"
139
+
140
+ # ?? => a
141
+ "\u00E5" => "a"
142
+
143
+ # ?? => ae
144
+ "\u00E6" => "ae"
145
+
146
+ # ?? => c
147
+ "\u00E7" => "c"
148
+
149
+ # ?? => e
150
+ "\u00E8" => "e"
151
+
152
+ # ?? => e
153
+ "\u00E9" => "e"
154
+
155
+ # ?? => e
156
+ "\u00EA" => "e"
157
+
158
+ # ?? => e
159
+ "\u00EB" => "e"
160
+
161
+ # ?? => i
162
+ "\u00EC" => "i"
163
+
164
+ # ?? => i
165
+ "\u00ED" => "i"
166
+
167
+ # ?? => i
168
+ "\u00EE" => "i"
169
+
170
+ # ?? => i
171
+ "\u00EF" => "i"
172
+
173
+ # ?? => ij
174
+ "\u0133" => "ij"
175
+
176
+ # ?? => d
177
+ "\u00F0" => "d"
178
+
179
+ # ?? => n
180
+ "\u00F1" => "n"
181
+
182
+ # ?? => o
183
+ "\u00F2" => "o"
184
+
185
+ # ?? => o
186
+ "\u00F3" => "o"
187
+
188
+ # ?? => o
189
+ "\u00F4" => "o"
190
+
191
+ # ?? => o
192
+ "\u00F5" => "o"
193
+
194
+ # ?? => o
195
+ "\u00F6" => "o"
196
+
197
+ # ?? => o
198
+ "\u00F8" => "o"
199
+
200
+ # ?? => oe
201
+ "\u0153" => "oe"
202
+
203
+ # ?? => ss
204
+ "\u00DF" => "ss"
205
+
206
+ # ?? => th
207
+ "\u00FE" => "th"
208
+
209
+ # ?? => u
210
+ "\u00F9" => "u"
211
+
212
+ # ?? => u
213
+ "\u00FA" => "u"
214
+
215
+ # ?? => u
216
+ "\u00FB" => "u"
217
+
218
+ # ?? => u
219
+ "\u00FC" => "u"
220
+
221
+ # ?? => y
222
+ "\u00FD" => "y"
223
+
224
+ # ?? => y
225
+ "\u00FF" => "y"
226
+
227
+ # ??? => ff
228
+ "\uFB00" => "ff"
229
+
230
+ # ??? => fi
231
+ "\uFB01" => "fi"
232
+
233
+ # ??? => fl
234
+ "\uFB02" => "fl"
235
+
236
+ # ??? => ffi
237
+ "\uFB03" => "ffi"
238
+
239
+ # ??? => ffl
240
+ "\uFB04" => "ffl"
241
+
242
+ # ??? => ft
243
+ "\uFB05" => "ft"
244
+
245
+ # ??? => st
246
+ "\uFB06" => "st"