Class: Libis::Tools::SharepointRecord
- Inherits:
-
Hash
show all
- Defined in:
- lib/libis/tools/metadata/sharepoint_record.rb
Overview
noinspection RubyTooManyMethodsInspection
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Hash
#cleanup, #key_strings_to_symbols, #key_strings_to_symbols!, #key_symbols_to_strings, #key_symbols_to_strings!, #recursive_cleanup, #recursive_merge, #recursive_merge!
Constructor Details
Returns a new instance of SharepointRecord.
16
17
18
19
20
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 16
def initialize
@node = nil
self[:label_prefix] = ''
super nil
end
|
Instance Attribute Details
Returns the value of attribute node.
14
15
16
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 14
def node
@node
end
|
Class Method Details
.from_xml(xml_node) ⇒ Object
169
170
171
172
173
174
175
176
177
178
179
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 169
def self.from_xml(xml_node)
record = Libis::Tools::SharepointRecord.new
xml_node.element_children.each do |node|
record[node.name.to_sym] = node.content
end
record
end
|
Instance Method Details
#accessright_model ⇒ Object
140
141
142
143
144
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 140
def accessright_model
return self[:ows_Access_x0020_rights_x0020_model] if self[:ows_Access_x0020_rights_x0020_model]
return self.node.parent.content.accessright_model if node and node.parent and node.parent.content
nil
end
|
#content_code ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 115
def content_code
case simple_content_type
when :archive
'a'
when :map
'm'
when :file
'f'
when :mmap
'v'
when :mfile
'<'
when :unknown
'-'
else
' '
end + (is_described? ? '*' : ' ')
end
|
#content_type ⇒ Object
38
39
40
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 38
def content_type
self[:ows_ContentType]
end
|
#create_dc(dir, mapping) ⇒ Object
235
236
237
238
239
240
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 235
def create_dc(dir, mapping)
xml_doc = to_dc mapping
dc_file = "#{dir}/dc_#{self[:index].to_s}.xml"
xml_doc.save dc_file
dc_file
end
|
#file_name ⇒ Object
42
43
44
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 42
def file_name
self[:ows_FileLeafRef]
end
|
#file_path ⇒ Object
46
47
48
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 46
def file_path
self[:ows_FileRef]
end
|
#file_size ⇒ Object
50
51
52
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 50
def file_size
self[:ows_FileSizeDisplay]
end
|
#ingest_model ⇒ Object
134
135
136
137
138
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 134
def ingest_model
return self[:ows_Ingestmodel] if self[:ows_Ingestmodel]
return self.node.parent.content.ingest_model if node and node.parent and node.parent.content
nil
end
|
#is_described? ⇒ Boolean
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 78
def is_described?
=begin
self[:ows_Title1] and
( self[:ows_Creation_x0020_date_x0028_s_x0029_] or
self[:ows_Startdate] or
self[:ows_Enddate]
)
=end
self[:ows_Unit_of_description]
end
|
#is_file? ⇒ Boolean
73
74
75
76
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 73
def is_file?
return true if [:file, :mfile].include? simple_content_type
false
end
|
30
31
32
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 30
def label
(self[:ows_Title1] || self[:ows_BaseName] || file_name).to_s
end
|
#label_prefix ⇒ Object
22
23
24
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 22
def label_prefix
self[:label_prefix]
end
|
#label_prefix=(value) ⇒ Object
26
27
28
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 26
def label_prefix=(value)
self[:label_prefix] = value
end
|
#local_path(sub_dir) ⇒ Object
66
67
68
69
70
71
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 66
def local_path(sub_dir)
return relative_path unless sub_dir
sub_dir += '/' unless sub_dir[-1] == '/'
return relative_path.gsub(/^#{sub_dir}/, '') if relative_path
nil
end
|
246
247
248
249
250
251
252
253
254
255
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 246
def print_metadata(f, mapping)
f.printf "%6d -------------------------------------------------------------------------\n", self[:index].to_i
self.each do |label, value|
next if label == :node
name = mapping.fancy_label(label)
f.printf " %40s : %s\n", name, value
end
end
|
#relative_path ⇒ Object
61
62
63
64
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 61
def relative_path
return file_path.gsub(/^sites\/lias\/Gedeelde documenten\//, '') if file_path
nil
end
|
#simple_content_type ⇒ Object
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 89
def simple_content_type
case content_type
when /^Archief/i
return :archive
when /^Bestanddeel \(folder\)/i
return :map
when /^Bestanddeel of stuk \(document\)/i
return :file
when /^Meervoudige beschrijving \(folder\)/i
return :mmap
when /^Meervoudige beschrijving \(document\)/i
return :mfile
when /^Tussenniveau/i
return :map
when /^Film/i
return :file
when /^Object/i
return :file
when /^Document/i
return :file
else
end
:unknown
end
|
34
35
36
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 34
def title
self[:label_prefix] + ' ' + self.label
end
|
#to_dc(mapping) ⇒ Object
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 182
def to_dc(mapping)
return nil unless mapping and mapping.is_a? Hash
xml_doc = Libis::Tools::XmlDocument.new
xml_doc.root = xml_doc.create_node(
'record',
namespaces: {
'dc' => 'http://purl.org/dc/elements/1.1/',
'xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
'dcterms' => 'http://purl.org/dc/terms/'})
self.each do |label, value|
dc_tag = mapping.dc_tag(label)
next unless dc_tag
dc_value = (mapping.dc_prefix(label) || '') + value.to_s + (mapping.dc_postfix(label) || '')
xml_doc.root << xml_doc.create_text_node(dc_tag, dc_value)
end
if xml_doc.xpath('//dc:title').size == 0
xml_doc.root << xml_doc.create_text_node('dc:title', self[:ows_BaseName])
end
xml_doc
end
|
146
147
148
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 146
def to_raw
self
end
|
242
243
244
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 242
def to_s
super
end
|
#to_sql(mapping) ⇒ Object
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 213
def to_sql(mapping)
sql_fields = []
sql_values = []
self.each do |label, value|
db_column = mapping.db_column(label)
next unless db_column
db_value = mapping.db_value(label, value)
next unless db_value and db_value != "''"
sql_fields << db_column
sql_values << db_value.escape_for_sql
end
sql_fields.each_with_index { |element, index| (index % 10 == 0) && (sql_fields[index] = "\n " + element)
}
sql_values.each_with_index { |element, index| (index % 10 == 0) && (sql_values[index] = "\n " + element)
}
'INSERT INTO @TABLE_NAME@ (' + sql_fields.join(',') + ")\n VALUES (" + sql_values.join(',') + ');'
end
|
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 150
def to_xml
xml_doc = Libis::Tools::XmlDocument.new
xml_doc.root = xml_doc.create_node('record')
self.each do |label, value|
unless label == :node
xml_doc.root << xml_doc.create_text_node(label.to_s, value.to_s)
end
end
xml_doc
end
|
54
55
56
57
58
59
|
# File 'lib/libis/tools/metadata/sharepoint_record.rb', line 54
def url
URI.escape(URI.unescape(self[:ows_EncodedAbsUrl]))
end
|