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 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