active_fedora-registered_attributes 0.0.2 → 0.0.3
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
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 391408142f61cbfc8e7a066c9679201590b6280f
|
4
|
+
data.tar.gz: aadb6192c4be35d014b382f527cee72ead010413
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e8ce89fa90924ac1108905f79d1e28a6f6edbd4f2a95cef43aa99d3a051a0284621ace0e83cd19b26dc67d109923f9ac1a1fbad21349e08fb1055ec34b2af68
|
7
|
+
data.tar.gz: 9e419729a17762bf442afb7c54c3f604926415c2c372fd0a0ed1a0a1c9f8269396883f9a9e78516e2cdbe31b25b510c7328b1f481829b597e1ec372ab57a6b79
|
@@ -46,6 +46,10 @@ module ActiveFedora
|
|
46
46
|
@options[:form] ||= {}
|
47
47
|
end
|
48
48
|
|
49
|
+
def multiple?
|
50
|
+
options[:multiple]
|
51
|
+
end
|
52
|
+
|
49
53
|
def displayable?
|
50
54
|
@options.fetch(:displayable, true)
|
51
55
|
end
|
@@ -75,7 +79,7 @@ module ActiveFedora
|
|
75
79
|
options[:form].tap {|hash|
|
76
80
|
hash[:hint] ||= options[:hint] if options[:hint]
|
77
81
|
hash[:label] ||= options[:label] if options[:label]
|
78
|
-
if
|
82
|
+
if multiple?
|
79
83
|
hash[:as] = 'multi_value'
|
80
84
|
hash[:input_html] ||= {}
|
81
85
|
hash[:input_html][:multiple] = 'multiple'
|
@@ -118,22 +122,27 @@ module ActiveFedora
|
|
118
122
|
|
119
123
|
def options_for_delegation
|
120
124
|
if datastream.is_a?(Hash)
|
121
|
-
datastream.merge(unique: !
|
125
|
+
datastream.merge(unique: !multiple?)
|
122
126
|
else
|
123
127
|
{
|
124
128
|
to: datastream,
|
125
|
-
unique: !
|
129
|
+
unique: !multiple?
|
126
130
|
}
|
127
131
|
end
|
128
132
|
end
|
129
133
|
|
130
134
|
def with_writer_method_wrap
|
135
|
+
method_name = "#{name}=".to_sym
|
131
136
|
if writer = options[:writer]
|
132
|
-
method_name = "#{name}=".to_sym
|
133
137
|
proc = writer.respond_to?(:call) ?
|
134
138
|
writer :
|
135
139
|
lambda { |value| send(writer, value) }
|
136
140
|
yield(method_name, proc)
|
141
|
+
elsif multiple?
|
142
|
+
proc = lambda {|values|
|
143
|
+
values.select {|value| value.present? }
|
144
|
+
}
|
145
|
+
yield(method_name, proc)
|
137
146
|
end
|
138
147
|
end
|
139
148
|
|
@@ -145,6 +145,14 @@ describe 'ActiveFedora::RegisteredAttributes' do
|
|
145
145
|
expect(subject.file_names).to eq(values.reverse)
|
146
146
|
end
|
147
147
|
|
148
|
+
it "intercepts blanks and omits them" do
|
149
|
+
values = ['foo.rb', '', 'bar.rb', '']
|
150
|
+
expected_values = ['foo.rb', 'bar.rb']
|
151
|
+
subject.description = values
|
152
|
+
expect(subject.properties.description).to eq(expected_values)
|
153
|
+
expect(subject.description).to eq(expected_values)
|
154
|
+
end
|
155
|
+
|
148
156
|
it "allows for a writer that is a symbol" do
|
149
157
|
values = ['South Bend', 'State College', 'Minneapolis']
|
150
158
|
expected_values = values.dup
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_fedora-registered_attributes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Friesen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active-fedora
|