active-fedora 11.5.0 → 11.5.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 92d0034bbac0025de2d37bbc3c2338dfe7845c26
4
- data.tar.gz: adcd29bb2e0243dc8cb72de4196fda37eddfade4
2
+ SHA256:
3
+ metadata.gz: 419ffa1beafe8db1f095d978f5bf68bbc6d9ca821e2f207df12de4eb82a78662
4
+ data.tar.gz: '018d793df4de36dd4a207ca6b70af4474d7996acf6a12ec7acac19e019e63ef0'
5
5
  SHA512:
6
- metadata.gz: 91406a7de60279f1e5c78d4e99d62eb8357e76c31dd62ac56b854198a7fb980b08ddaa52e003cd7fe225b75936e98cbc16c57b2a911cb8b69934f67ccb44a18a
7
- data.tar.gz: fad213756426a2855107a96a1a8f95abea32220b1eb283ba67a53deb9842c2284ffd195e499bc731068aac122e55c69f6621b433c0d58cfa01a159b9d0738107
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['TRAVIS']
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
@@ -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', '< 6'
20
- s.add_dependency "activemodel", '>= 4.2', '< 6'
21
- s.add_dependency "active-triples", '~> 0.11.0'
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", "~> 1.0"
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"
@@ -41,6 +41,8 @@ module ActiveFedora
41
41
  merge! association.scope(nullify: false)
42
42
  end
43
43
 
44
+ delegate :each, to: :to_a
45
+
44
46
  def target
45
47
  @association.target
46
48
  end
@@ -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) # singular
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)
@@ -196,9 +196,7 @@ module ActiveFedora
196
196
  end
197
197
 
198
198
  def local_or_remote_content(ensure_fetch = true)
199
- return @content if new_record?
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, :collect, :map, :each, :all?, :include?, :to_ary, to: :to_a
16
+ delegate :length, :map, :to_ary, to: :to_a
17
+ delegate :any?, :all?, :collect, :include?, to: :each
17
18
 
18
19
  protected
19
20
 
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "11.5.0".freeze
2
+ VERSION = '11.5.6'.freeze
3
3
  end
@@ -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[0]
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
 
@@ -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['TRAVIS']
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
@@ -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.0
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: 2017-10-12 00:00:00.000000000 Z
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: '6'
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: '6'
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: '6'
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: '6'
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: '0'
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: '0'
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: '1.0'
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: '1.0'
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
- rubyforge_project:
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.
@@ -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