active-fedora 11.5.0 → 11.5.6
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.
- checksums.yaml +5 -5
- data/.circleci/config.yml +43 -0
- data/Gemfile +2 -1
- data/active-fedora.gemspec +6 -5
- data/lib/active_fedora/associations/collection_proxy.rb +2 -0
- data/lib/active_fedora/attributes/property_builder.rb +1 -1
- data/lib/active_fedora/file.rb +1 -3
- data/lib/active_fedora/relation.rb +14 -0
- data/lib/active_fedora/relation/delegation.rb +2 -1
- data/lib/active_fedora/version.rb +1 -1
- data/lib/generators/active_fedora/config/solr/templates/solr/config/schema.xml +33 -34
- data/spec/integration/relation_spec.rb +39 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/attributes_spec.rb +6 -0
- data/spec/unit/file_spec.rb +17 -0
- metadata +34 -15
- data/.travis.yml +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 419ffa1beafe8db1f095d978f5bf68bbc6d9ca821e2f207df12de4eb82a78662
|
4
|
+
data.tar.gz: '018d793df4de36dd4a207ca6b70af4474d7996acf6a12ec7acac19e019e63ef0'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5cf6e6c08b021586dbb3a282d2bb91d128a5578e947725c365a239807814f50c4d87067f6e79e68215a9c1870a48b2d41021af51ba7ed65b9778118ce003663
|
7
|
+
data.tar.gz: 90883925eaaf6601f24cefa301cccb40529b0034100ccf51e92a4da2fbdfa017a405289fb620c5e1352aaa177d9c37c984f5b50dd72bc66ef4ff6024fe7eeb02
|
@@ -0,0 +1,43 @@
|
|
1
|
+
version: 2.1
|
2
|
+
orbs:
|
3
|
+
samvera: samvera/circleci-orb@0
|
4
|
+
jobs:
|
5
|
+
bundle_lint_test:
|
6
|
+
parameters:
|
7
|
+
ruby_version:
|
8
|
+
type: string
|
9
|
+
bundler_version:
|
10
|
+
type: string
|
11
|
+
default: 1.17.3
|
12
|
+
rails_version:
|
13
|
+
type: string
|
14
|
+
solr_config_path:
|
15
|
+
type: string
|
16
|
+
default: lib/generators/active_fedora/config/solr/templates/solr/config
|
17
|
+
executor:
|
18
|
+
name: 'samvera/ruby_fcrepo_solr'
|
19
|
+
ruby_version: << parameters.ruby_version >>
|
20
|
+
environment:
|
21
|
+
RAILS_VERSION: << parameters.rails_version >>
|
22
|
+
steps:
|
23
|
+
- samvera/cached_checkout
|
24
|
+
|
25
|
+
- samvera/bundle_for_gem:
|
26
|
+
ruby_version: << parameters.ruby_version >>
|
27
|
+
bundler_version: << parameters.bundler_version >>
|
28
|
+
project: 'active-fedora'
|
29
|
+
|
30
|
+
- samvera/install_solr_core:
|
31
|
+
solr_config_path: << parameters.solr_config_path >>
|
32
|
+
|
33
|
+
- samvera/rubocop
|
34
|
+
|
35
|
+
- samvera/parallel_rspec
|
36
|
+
|
37
|
+
workflows:
|
38
|
+
ci:
|
39
|
+
jobs:
|
40
|
+
- bundle_lint_test:
|
41
|
+
name: ruby2-3_rails4-2
|
42
|
+
ruby_version: 2.4.9
|
43
|
+
rails_version: 4.2.8
|
data/Gemfile
CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
gemspec path: File.expand_path('..', __FILE__)
|
6
6
|
|
7
|
-
gem 'byebug' unless ENV['
|
7
|
+
gem 'byebug' unless ENV['CI']
|
8
8
|
gem 'pry-byebug' unless ENV['CI']
|
9
9
|
|
10
10
|
gem 'activemodel', ENV['RAILS_VERSION'] if ENV['RAILS_VERSION']
|
@@ -13,6 +13,7 @@ gem 'rsolr', ENV['RSOLR_VERSION'] if ENV['RSOLR_VERSION']
|
|
13
13
|
group :test do
|
14
14
|
gem 'simplecov', require: false
|
15
15
|
gem 'coveralls', require: false
|
16
|
+
gem 'rspec_junit_formatter'
|
16
17
|
end
|
17
18
|
|
18
19
|
gem 'jruby-openssl', platform: :jruby
|
data/active-fedora.gemspec
CHANGED
@@ -16,20 +16,21 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.add_dependency 'rsolr', '>= 1.1.2', '< 3'
|
18
18
|
s.add_dependency 'solrizer', '>= 3.4', '< 5'
|
19
|
-
s.add_dependency "activesupport", '>= 4.2.4', '<
|
20
|
-
s.add_dependency "activemodel", '>= 4.2', '<
|
21
|
-
s.add_dependency "active-triples", '
|
19
|
+
s.add_dependency "activesupport", '>= 4.2.4', '< 5.2'
|
20
|
+
s.add_dependency "activemodel", '>= 4.2', '< 5.2'
|
21
|
+
s.add_dependency "active-triples", '>= 0.11.0', '< 2.0.0'
|
22
22
|
s.add_dependency "deprecation"
|
23
23
|
s.add_dependency "ldp", '~> 0.7.0'
|
24
|
+
s.add_dependency 'rdf-vocab', '< 3.1.5'
|
24
25
|
s.add_dependency "ruby-progressbar", '~> 1.0'
|
25
26
|
s.add_dependency 'faraday', '~> 0.12.1'
|
26
27
|
s.add_dependency 'faraday-encoding', '0.0.4'
|
27
28
|
|
28
|
-
s.add_development_dependency "rails"
|
29
|
+
s.add_development_dependency "rails", ">= 4.2"
|
29
30
|
s.add_development_dependency "rdoc"
|
30
31
|
s.add_development_dependency "yard"
|
31
32
|
s.add_development_dependency "rake"
|
32
|
-
s.add_development_dependency "solr_wrapper", "~>
|
33
|
+
s.add_development_dependency "solr_wrapper", "~> 2.0"
|
33
34
|
s.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
|
34
35
|
s.add_development_dependency "rspec", "~> 3.0"
|
35
36
|
s.add_development_dependency "rspec-its"
|
@@ -45,7 +45,7 @@ module ActiveFedora::Attributes
|
|
45
45
|
def self.define_singular_writers(mixin, name)
|
46
46
|
mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1
|
47
47
|
def #{name}=(value)
|
48
|
-
if value.respond_to?(:each)
|
48
|
+
if value.respond_to?(:each) && !(value.respond_to?(:term?) && value.term?)
|
49
49
|
raise ArgumentError, "You attempted to set the property `#{name}' of \#{id} to an enumerable value. However, this property is declared as singular."
|
50
50
|
end
|
51
51
|
set_value(:#{name}, value)
|
data/lib/active_fedora/file.rb
CHANGED
@@ -196,9 +196,7 @@ module ActiveFedora
|
|
196
196
|
end
|
197
197
|
|
198
198
|
def local_or_remote_content(ensure_fetch = true)
|
199
|
-
|
200
|
-
|
201
|
-
@content ||= ensure_fetch ? remote_content : @ds_content
|
199
|
+
@content ||= ensure_fetch ? remote_content : @ds_content unless new_record?
|
202
200
|
@content.rewind if behaves_like_io?(@content)
|
203
201
|
@content
|
204
202
|
end
|
@@ -144,6 +144,20 @@ module ActiveFedora
|
|
144
144
|
@scope_for_create ||= where_values_hash.merge(create_with_value)
|
145
145
|
end
|
146
146
|
|
147
|
+
def each
|
148
|
+
if loaded?
|
149
|
+
@records.each { |item| yield item } if block_given?
|
150
|
+
@records.to_enum
|
151
|
+
else
|
152
|
+
find_each(where_values) { |item| yield item } if block_given?
|
153
|
+
enum_for(:find_each, where_values)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def empty?
|
158
|
+
!any?
|
159
|
+
end
|
160
|
+
|
147
161
|
private
|
148
162
|
|
149
163
|
VALID_FIND_OPTIONS = [:order, :limit, :start, :conditions, :cast].freeze
|
@@ -13,7 +13,8 @@ module ActiveFedora
|
|
13
13
|
:keep_if, :pop, :shift, :delete_at, :select!
|
14
14
|
].to_set
|
15
15
|
|
16
|
-
delegate :length, :
|
16
|
+
delegate :length, :map, :to_ary, to: :to_a
|
17
|
+
delegate :any?, :all?, :collect, :include?, to: :each
|
17
18
|
|
18
19
|
protected
|
19
20
|
|
@@ -59,32 +59,32 @@
|
|
59
59
|
|
60
60
|
<types>
|
61
61
|
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
|
62
|
-
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
|
62
|
+
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
|
63
63
|
<fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
|
64
|
-
|
64
|
+
|
65
65
|
<!-- Default numeric field types. -->
|
66
66
|
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
|
67
67
|
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
|
68
68
|
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
|
69
69
|
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
|
70
|
-
|
70
|
+
|
71
71
|
<!-- trie numeric field types for faster range queries -->
|
72
72
|
<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
|
73
73
|
<fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
|
74
74
|
<fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
|
75
75
|
<fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
|
76
|
-
|
76
|
+
|
77
77
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z
|
78
78
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
|
79
79
|
-->
|
80
80
|
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
|
81
81
|
<!-- A Trie based date field for faster date range queries and date faceting. -->
|
82
82
|
<fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
|
83
|
-
|
84
|
-
|
83
|
+
|
84
|
+
|
85
85
|
<!-- This point type indexes the coordinates as separate fields (subFields)
|
86
86
|
If subFieldType is defined, it references a type, and a dynamic field
|
87
|
-
definition is created matching *___<typename>. Alternately, if
|
87
|
+
definition is created matching *___<typename>. Alternately, if
|
88
88
|
subFieldSuffix is defined, that is used to create the subFields.
|
89
89
|
Example: if subFieldType="double", then the coordinates would be
|
90
90
|
indexed in fields myloc_0___double,myloc_1___double.
|
@@ -94,17 +94,17 @@
|
|
94
94
|
users normally should not need to know about them.
|
95
95
|
-->
|
96
96
|
<fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
|
97
|
-
|
97
|
+
|
98
98
|
<!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
|
99
99
|
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
|
100
|
-
|
100
|
+
|
101
101
|
<!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
|
102
102
|
For more information about this and other Spatial fields new to Solr 4, see:
|
103
103
|
http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
|
104
104
|
-->
|
105
105
|
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
|
106
106
|
geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="degrees" />
|
107
|
-
|
107
|
+
|
108
108
|
<fieldType name="text" class="solr.TextField" omitNorms="false">
|
109
109
|
<analyzer>
|
110
110
|
<tokenizer class="solr.ICUTokenizerFactory"/>
|
@@ -112,7 +112,7 @@
|
|
112
112
|
<filter class="solr.TrimFilterFactory"/>
|
113
113
|
</analyzer>
|
114
114
|
</fieldType>
|
115
|
-
|
115
|
+
|
116
116
|
<!-- A text field that only splits on whitespace for exact matching of words -->
|
117
117
|
<fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
|
118
118
|
<analyzer>
|
@@ -120,7 +120,7 @@
|
|
120
120
|
<filter class="solr.TrimFilterFactory"/>
|
121
121
|
</analyzer>
|
122
122
|
</fieldType>
|
123
|
-
|
123
|
+
|
124
124
|
<!-- single token analyzed text, for sorting. Punctuation is significant. -->
|
125
125
|
<fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
|
126
126
|
<analyzer>
|
@@ -129,7 +129,7 @@
|
|
129
129
|
<filter class="solr.TrimFilterFactory" />
|
130
130
|
</analyzer>
|
131
131
|
</fieldtype>
|
132
|
-
|
132
|
+
|
133
133
|
<!-- A text field with defaults appropriate for English -->
|
134
134
|
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
|
135
135
|
<analyzer>
|
@@ -144,7 +144,7 @@
|
|
144
144
|
<filter class="solr.TrimFilterFactory"/>
|
145
145
|
</analyzer>
|
146
146
|
</fieldType>
|
147
|
-
|
147
|
+
|
148
148
|
<!-- queries for paths match documents at that path, or in descendent paths -->
|
149
149
|
<fieldType name="descendent_path" class="solr.TextField">
|
150
150
|
<analyzer type="index">
|
@@ -154,7 +154,7 @@
|
|
154
154
|
<tokenizer class="solr.KeywordTokenizerFactory" />
|
155
155
|
</analyzer>
|
156
156
|
</fieldType>
|
157
|
-
|
157
|
+
|
158
158
|
<!-- queries for paths match documents at that path, or in ancestor paths -->
|
159
159
|
<fieldType name="ancestor_path" class="solr.TextField">
|
160
160
|
<analyzer type="index">
|
@@ -168,7 +168,6 @@
|
|
168
168
|
<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
|
169
169
|
<analyzer>
|
170
170
|
<tokenizer class="solr.KeywordTokenizerFactory"/>
|
171
|
-
<filter class="solr.StandardFilterFactory"/>
|
172
171
|
<filter class="solr.LowerCaseFilterFactory"/>
|
173
172
|
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
|
174
173
|
</analyzer>
|
@@ -179,12 +178,12 @@
|
|
179
178
|
<fields>
|
180
179
|
<!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
|
181
180
|
or Solr won't start. _version_ and update log are required for SolrCloud
|
182
|
-
-->
|
181
|
+
-->
|
183
182
|
<field name="_version_" type="long" indexed="true" stored="true"/>
|
184
|
-
|
183
|
+
|
185
184
|
<field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
|
186
185
|
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
|
187
|
-
|
186
|
+
|
188
187
|
<field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
189
188
|
<field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
190
189
|
|
@@ -201,7 +200,7 @@
|
|
201
200
|
<dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
202
201
|
<dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
|
203
202
|
<dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
204
|
-
|
203
|
+
|
205
204
|
<!-- English text (_te...) -->
|
206
205
|
<dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
|
207
206
|
<dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
|
@@ -213,7 +212,7 @@
|
|
213
212
|
<dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
214
213
|
<dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
|
215
214
|
<dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
216
|
-
|
215
|
+
|
217
216
|
<!-- string (_s...) -->
|
218
217
|
<dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
|
219
218
|
<dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
|
@@ -222,7 +221,7 @@
|
|
222
221
|
<dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
|
223
222
|
<dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
|
224
223
|
<dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
|
225
|
-
|
224
|
+
|
226
225
|
<!-- integer (_i...) -->
|
227
226
|
<dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
|
228
227
|
<dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
|
@@ -230,7 +229,7 @@
|
|
230
229
|
<dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
|
231
230
|
<dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
|
232
231
|
<dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
|
233
|
-
|
232
|
+
|
234
233
|
<!-- trie integer (_it...) (for faster range queries) -->
|
235
234
|
<dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
|
236
235
|
<dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
|
@@ -238,7 +237,7 @@
|
|
238
237
|
<dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
|
239
238
|
<dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
|
240
239
|
<dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
|
241
|
-
|
240
|
+
|
242
241
|
<!-- date (_dt...) -->
|
243
242
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z
|
244
243
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
|
@@ -248,7 +247,7 @@
|
|
248
247
|
<dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
|
249
248
|
<dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
|
250
249
|
<dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
|
251
|
-
|
250
|
+
|
252
251
|
<!-- trie date (_dtt...) (for faster range queries) -->
|
253
252
|
<dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
|
254
253
|
<dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
|
@@ -256,7 +255,7 @@
|
|
256
255
|
<dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
|
257
256
|
<dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
|
258
257
|
<dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
|
259
|
-
|
258
|
+
|
260
259
|
<!-- long (_l...) -->
|
261
260
|
<dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
|
262
261
|
<dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
|
@@ -264,7 +263,7 @@
|
|
264
263
|
<dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
|
265
264
|
<dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
|
266
265
|
<dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
|
267
|
-
|
266
|
+
|
268
267
|
<!-- trie long (_lt...) (for faster range queries) -->
|
269
268
|
<dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
|
270
269
|
<dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
|
@@ -272,7 +271,7 @@
|
|
272
271
|
<dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
|
273
272
|
<dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
|
274
273
|
<dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
|
275
|
-
|
274
|
+
|
276
275
|
<!-- double (_db...) -->
|
277
276
|
<dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
|
278
277
|
<dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
|
@@ -280,7 +279,7 @@
|
|
280
279
|
<dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
|
281
280
|
<dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
|
282
281
|
<dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
|
283
|
-
|
282
|
+
|
284
283
|
<!-- trie double (_dbt...) (for faster range queries) -->
|
285
284
|
<dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
|
286
285
|
<dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
|
@@ -288,7 +287,7 @@
|
|
288
287
|
<dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
|
289
288
|
<dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
290
289
|
<dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
|
291
|
-
|
290
|
+
|
292
291
|
<!-- float (_f...) -->
|
293
292
|
<dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
|
294
293
|
<dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
|
@@ -296,7 +295,7 @@
|
|
296
295
|
<dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
|
297
296
|
<dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
|
298
297
|
<dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
|
299
|
-
|
298
|
+
|
300
299
|
<!-- trie float (_ft...) (for faster range queries) -->
|
301
300
|
<dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
|
302
301
|
<dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
|
@@ -304,12 +303,12 @@
|
|
304
303
|
<dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
|
305
304
|
<dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
|
306
305
|
<dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
|
307
|
-
|
306
|
+
|
308
307
|
<!-- boolean (_b...) -->
|
309
308
|
<dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
|
310
309
|
<dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
|
311
310
|
<dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
|
312
|
-
|
311
|
+
|
313
312
|
<!-- Type used to index the lat and lon components for the "location" FieldType -->
|
314
313
|
<dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
|
315
314
|
|
@@ -329,7 +328,7 @@
|
|
329
328
|
|
330
329
|
</fields>
|
331
330
|
|
332
|
-
<!-- Field to use to determine and enforce document uniqueness.
|
331
|
+
<!-- Field to use to determine and enforce document uniqueness.
|
333
332
|
Unless this field is marked with required="false", it will be a required field
|
334
333
|
-->
|
335
334
|
<uniqueKey>id</uniqueKey>
|
@@ -22,6 +22,10 @@ describe ActiveFedora::Base do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it { is_expected.to respond_to(:each_with_index) }
|
25
|
+
it { expect(libraries.any?).to eq false }
|
26
|
+
it { is_expected.to be_blank }
|
27
|
+
it { is_expected.to be_empty }
|
28
|
+
it { is_expected.not_to be_present }
|
25
29
|
|
26
30
|
context "when some records exist" do
|
27
31
|
before do
|
@@ -39,7 +43,41 @@ describe ActiveFedora::Base do
|
|
39
43
|
|
40
44
|
it "does not reload" do
|
41
45
|
expect_any_instance_of(ActiveFedora::Relation).to_not receive :find_each
|
42
|
-
libraries
|
46
|
+
libraries.each(&:id)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it { expect(libraries.any?).to eq true }
|
51
|
+
it { is_expected.not_to be_blank }
|
52
|
+
it { is_expected.not_to be_empty }
|
53
|
+
it { is_expected.to be_present }
|
54
|
+
|
55
|
+
describe '#each' do
|
56
|
+
before { Book.create }
|
57
|
+
|
58
|
+
it 'returns an enumerator' do
|
59
|
+
expect(libraries.each).to be_a Enumerator
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'yields the items' do
|
63
|
+
expect { |b| libraries.each(&b) }
|
64
|
+
.to yield_successive_args(*Library.all.to_a)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'when called from Base yields all items' do
|
68
|
+
expect { |b| described_class.all.each(&b) }
|
69
|
+
.to yield_successive_args(*(Library.all.to_a + Book.all.to_a))
|
70
|
+
end
|
71
|
+
|
72
|
+
context 'when cached' do
|
73
|
+
it 'returns an enumerator' do
|
74
|
+
expect(libraries.each).to be_a Enumerator
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'yields the items' do
|
78
|
+
expect { |b| libraries.each(&b) }
|
79
|
+
.to yield_successive_args(*Library.all.to_a)
|
80
|
+
end
|
43
81
|
end
|
44
82
|
end
|
45
83
|
|
data/spec/spec_helper.rb
CHANGED
@@ -13,7 +13,7 @@ require 'rspec'
|
|
13
13
|
require 'rspec/its'
|
14
14
|
require 'equivalent-xml/rspec_matchers'
|
15
15
|
require 'logger'
|
16
|
-
require 'pry' unless ENV['
|
16
|
+
require 'pry' unless ENV['CI']
|
17
17
|
|
18
18
|
ActiveFedora::Base.logger = Logger.new(STDERR)
|
19
19
|
ActiveFedora::Base.logger.level = Logger::WARN
|
@@ -133,11 +133,17 @@ describe ActiveFedora::Base do
|
|
133
133
|
expect { history.title = nil }.not_to raise_error
|
134
134
|
end
|
135
135
|
|
136
|
+
it "allow setting to multiple properties with unintended legacy behavior" do
|
137
|
+
expect { history.title = '' }.not_to raise_error
|
138
|
+
expect { history.title = ActiveTriples::Resource.new }.not_to raise_error
|
139
|
+
end
|
140
|
+
|
136
141
|
it "does not allow an enumerable to a unique attribute writer" do
|
137
142
|
expect { history.abstract = "Low" }.not_to raise_error
|
138
143
|
expect { history.abstract = ["Low"]
|
139
144
|
}.to raise_error ArgumentError, "You attempted to set the property `abstract' of test:123 to an enumerable value. However, this property is declared as singular."
|
140
145
|
expect { history.abstract = nil }.not_to raise_error
|
146
|
+
expect { history.abstract = ActiveTriples::Resource.new }.not_to raise_error
|
141
147
|
end
|
142
148
|
end
|
143
149
|
end
|
data/spec/unit/file_spec.rb
CHANGED
@@ -192,6 +192,23 @@ describe ActiveFedora::File do
|
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
195
|
+
context 'when file is new and content behaves like io' do
|
196
|
+
let(:file_content) { "hello world" }
|
197
|
+
|
198
|
+
before do
|
199
|
+
af_file.uri = "http://localhost:8983/fedora/rest/test/1234/abcd"
|
200
|
+
af_file.content = StringIO.new(file_content)
|
201
|
+
allow(af_file).to receive(:new_record?).and_return(true)
|
202
|
+
end
|
203
|
+
|
204
|
+
describe "#content" do
|
205
|
+
it 'can be re-read' do
|
206
|
+
expect(af_file.content.read).to eq file_content
|
207
|
+
expect(af_file.content.read).to eq file_content
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
195
212
|
describe "#mime_type" do
|
196
213
|
let(:parent) { ActiveFedora::Base.create }
|
197
214
|
before do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active-fedora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 11.5.
|
4
|
+
version: 11.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-06-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rsolr
|
@@ -61,7 +61,7 @@ dependencies:
|
|
61
61
|
version: 4.2.4
|
62
62
|
- - "<"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
64
|
+
version: '5.2'
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -71,7 +71,7 @@ dependencies:
|
|
71
71
|
version: 4.2.4
|
72
72
|
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '5.2'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: activemodel
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
version: '4.2'
|
82
82
|
- - "<"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
84
|
+
version: '5.2'
|
85
85
|
type: :runtime
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -91,21 +91,27 @@ dependencies:
|
|
91
91
|
version: '4.2'
|
92
92
|
- - "<"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
94
|
+
version: '5.2'
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: active-triples
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
|
-
- - "
|
99
|
+
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: 0.11.0
|
102
|
+
- - "<"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 2.0.0
|
102
105
|
type: :runtime
|
103
106
|
prerelease: false
|
104
107
|
version_requirements: !ruby/object:Gem::Requirement
|
105
108
|
requirements:
|
106
|
-
- - "
|
109
|
+
- - ">="
|
107
110
|
- !ruby/object:Gem::Version
|
108
111
|
version: 0.11.0
|
112
|
+
- - "<"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 2.0.0
|
109
115
|
- !ruby/object:Gem::Dependency
|
110
116
|
name: deprecation
|
111
117
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,6 +140,20 @@ dependencies:
|
|
134
140
|
- - "~>"
|
135
141
|
- !ruby/object:Gem::Version
|
136
142
|
version: 0.7.0
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: rdf-vocab
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "<"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 3.1.5
|
150
|
+
type: :runtime
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - "<"
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: 3.1.5
|
137
157
|
- !ruby/object:Gem::Dependency
|
138
158
|
name: ruby-progressbar
|
139
159
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,14 +202,14 @@ dependencies:
|
|
182
202
|
requirements:
|
183
203
|
- - ">="
|
184
204
|
- !ruby/object:Gem::Version
|
185
|
-
version: '
|
205
|
+
version: '4.2'
|
186
206
|
type: :development
|
187
207
|
prerelease: false
|
188
208
|
version_requirements: !ruby/object:Gem::Requirement
|
189
209
|
requirements:
|
190
210
|
- - ">="
|
191
211
|
- !ruby/object:Gem::Version
|
192
|
-
version: '
|
212
|
+
version: '4.2'
|
193
213
|
- !ruby/object:Gem::Dependency
|
194
214
|
name: rdoc
|
195
215
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,14 +258,14 @@ dependencies:
|
|
238
258
|
requirements:
|
239
259
|
- - "~>"
|
240
260
|
- !ruby/object:Gem::Version
|
241
|
-
version: '
|
261
|
+
version: '2.0'
|
242
262
|
type: :development
|
243
263
|
prerelease: false
|
244
264
|
version_requirements: !ruby/object:Gem::Requirement
|
245
265
|
requirements:
|
246
266
|
- - "~>"
|
247
267
|
- !ruby/object:Gem::Version
|
248
|
-
version: '
|
268
|
+
version: '2.0'
|
249
269
|
- !ruby/object:Gem::Dependency
|
250
270
|
name: fcrepo_wrapper
|
251
271
|
requirement: !ruby/object:Gem::Requirement
|
@@ -354,6 +374,7 @@ extra_rdoc_files:
|
|
354
374
|
- LICENSE
|
355
375
|
- README.md
|
356
376
|
files:
|
377
|
+
- ".circleci/config.yml"
|
357
378
|
- ".gitignore"
|
358
379
|
- ".gitmodules"
|
359
380
|
- ".mailmap"
|
@@ -361,7 +382,6 @@ files:
|
|
361
382
|
- ".rubocop.yml"
|
362
383
|
- ".rubocop_todo.yml"
|
363
384
|
- ".solr_wrapper"
|
364
|
-
- ".travis.yml"
|
365
385
|
- CONTRIBUTING.md
|
366
386
|
- CONTRIBUTORS.md
|
367
387
|
- Gemfile
|
@@ -728,8 +748,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
728
748
|
- !ruby/object:Gem::Version
|
729
749
|
version: '0'
|
730
750
|
requirements: []
|
731
|
-
|
732
|
-
rubygems_version: 2.5.1
|
751
|
+
rubygems_version: 3.1.4
|
733
752
|
signing_key:
|
734
753
|
specification_version: 4
|
735
754
|
summary: A convenience libary for manipulating documents in the Fedora Repository.
|
data/.travis.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
sudo: false
|
4
|
-
rvm: 2.4.1
|
5
|
-
matrix:
|
6
|
-
include:
|
7
|
-
- rvm: 2.3.4
|
8
|
-
env: "RAILS_VERSION=4.2.8"
|
9
|
-
- env: "RSOLR_VERSION=2.0.1"
|
10
|
-
global_env:
|
11
|
-
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
12
|
-
before_install:
|
13
|
-
- gem update --system
|
14
|
-
before_script:
|
15
|
-
- jdk_switcher use oraclejdk8
|