libis-tools 1.0.6 → 1.0.13

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
2
  SHA256:
3
- metadata.gz: 614880562757e58d8f1e86db7f507411a873c7920efcc3b932dd446b65eb7a70
4
- data.tar.gz: c8aa877ea6b7fcc8daec5f2c1e49d5680afd857e900c6b8e6f5a309e884858e9
3
+ metadata.gz: d1beb34bf6d3caa983e0909913526c51fede24c5a10eb612a54c3deca274c11a
4
+ data.tar.gz: 5ec72ceeffaa443b21599036ffa1a647e3a645fb00009647b3929868f734826b
5
5
  SHA512:
6
- metadata.gz: 8907c8cdb69831d8bfcf432d47d2abf06bb010e8aa6aac8a20e125cbfa1487df3a3b1db2fb3e4da7c77533f34b78377bfec929c4d3c5f5d79e747f11a54c0c8b
7
- data.tar.gz: e7536a051acb0cfe862cca95799c1b9b8653f06cc550ffc30cde1a9c5a21a044bb4c5a4d9183a0099cd31b27f0615f8c4fb72e53f03b451c30ef0b3e83e7d124
6
+ metadata.gz: 67f28b6fa1c208137f3730ca2d2854bf3d86358434bf6f3770846ea008f6be96a193f0b3f7c6e49bdfa1866158f958bb8234df7dc28ae58631811222350922be
7
+ data.tar.gz: 3d12bb2aa8360009a45ba6e34734c20a219bd7b165778a07de7889886a030ae6db83a014cca433057ccb8dcec89fdf9a6fa153337f4c7acc3d7f022bc7cb8eca
data/.travis.yml CHANGED
@@ -3,30 +3,20 @@ language: ruby
3
3
  cache: bundler
4
4
  sudo: false
5
5
  rvm:
6
- - 2.3
7
6
  - 2.4
8
7
  - 2.5
9
8
  - 2.6
9
+ - 2.7
10
+ - 3.0
10
11
  - ruby-head
11
12
  # - jruby-9.1
12
13
  - jruby-9.2
13
14
  - jruby-head
14
15
  jdk:
15
- - openjdk10
16
16
  - openjdk11
17
17
  matrix:
18
- exclude:
19
- - rvm: 2.3
20
- jdk: openjdk10
21
- - rvm: 2.4
22
- jdk: openjdk10
23
- - rvm: 2.5
24
- jdk: openjdk10
25
- - rvm: 2.6
26
- jdk: openjdk10
27
- - rvm: ruby-head
28
- jdk: openjdk10
29
18
  allow_failures:
19
+ - rvm: 3.0
30
20
  - rvm: ruby-head
31
21
  - rvm: jruby-head
32
22
  branches:
@@ -20,7 +20,7 @@ module Libis
20
20
  optional_headers = options.delete(:optional)
21
21
  options[:headers] = true
22
22
  options[:return_headers] = true
23
- csv = CSV.open(file_name, mode, options)
23
+ csv = ::CSV.open(file_name, mode, **options)
24
24
  line = csv.shift
25
25
  found_headers = required_headers & line.headers
26
26
  return csv if found_headers.size == required_headers.size
@@ -29,7 +29,7 @@ module Libis
29
29
  options[:headers] = (required_headers + optional_headers)[0...line.size]
30
30
  raise RuntimeError, 'CSV does not contain enough columns' if required_headers.size > line.size
31
31
  options[:return_headers] = true
32
- csv = CSV.open(file_name, mode, options)
32
+ csv = ::CSV.open(file_name, mode, **options)
33
33
  csv.shift
34
34
  csv
35
35
  end
@@ -28,8 +28,8 @@ module Libis
28
28
  return self unless hash.respond_to?(:to_hash)
29
29
  hash.to_hash.inject(self.dup) do |ds, (key, value)|
30
30
  ds[key] = DeepDup.new(
31
- recurse_over_arrays: @recurse_over_arrays,
32
- preserve_original_keys: @preserve_original_keys
31
+ recurse_over_arrays: @options[:recurse_over_arrays],
32
+ preserve_original_keys: @options[:preserve_original_keys]
33
33
  ).call(value)
34
34
  ds
35
35
  end
@@ -39,8 +39,8 @@ module Libis
39
39
  return self unless hash.respond_to?(:to_hash)
40
40
  hash.to_hash.inject(self) do |ds, (key, value)|
41
41
  ds[key] = DeepDup.new(
42
- recurse_over_arrays: @recurse_over_arrays,
43
- preserve_original_keys: @preserve_original_keys
42
+ recurse_over_arrays: @options[:recurse_over_arrays],
43
+ preserve_original_keys: @options[:preserve_original_keys]
44
44
  ).call(value)
45
45
  ds
46
46
  end
@@ -1,7 +1,32 @@
1
- # Extension for NilClass
1
+ # frozen_string_literal: true
2
+
2
3
  class NilClass
3
- # Allows nil.empty?
4
4
  def empty?
5
5
  true
6
6
  end
7
- end
7
+ end
8
+
9
+ class TrueClass
10
+ def empty?
11
+ false
12
+ end
13
+ end
14
+
15
+ class FalseClass
16
+ def empty?
17
+ false
18
+ end
19
+ end
20
+
21
+ class String
22
+ BLANK_RE = /\A[[:space:]]^\z/.freeze
23
+ def blank?
24
+ empty? || BLANK_RE.match?(self)
25
+ end
26
+ end
27
+
28
+ class Object
29
+ def blank?
30
+ respond_to?(:empty?) ? !!empty? : !self
31
+ end
32
+ end
@@ -1,5 +1,3 @@
1
- require 'backports/rails/hash'
2
-
3
1
  # Extension class for Hash
4
2
  class Hash
5
3
 
@@ -56,6 +54,14 @@ class Hash
56
54
  self.merge!(other_hash) {|_,v, w| v.blank? ? w : v}
57
55
  end unless method_defined? :apply_defaults!
58
56
 
57
+ def symbolize_keys
58
+ self.transform_keys {|k| k.to_sym}
59
+ end unless method_defined? :symbolize_keys
60
+
61
+ def symbolize_keys!
62
+ self.transform_keys! {|k| k.to_sym}
63
+ end unless method_defined? :symbolize_keys!
64
+
59
65
  # Convert all keys to symbols. In-place operation.
60
66
  # @param (see #key_strings_to_symbols)
61
67
  def key_strings_to_symbols!(options = {})
@@ -101,6 +107,14 @@ class Hash
101
107
  r
102
108
  end unless method_defined? :key_strings_to_symbols
103
109
 
110
+ def stringify_keys
111
+ self.transform_keys {|k| k.to_s}
112
+ end unless method_defined? :stringify_keys
113
+
114
+ def stringify_keys!
115
+ self.transform_keys! {|k| k.to_s}
116
+ end unless method_defined? :stringify_keys!
117
+
104
118
  # Convert all keys to strings. In-place operation.
105
119
  # (@see #key_symbols_to_strings)
106
120
  # @param (see #key_symbols_to_strings)
@@ -144,4 +158,36 @@ class Hash
144
158
  r
145
159
  end unless method_defined? :key_symbols_to_strings
146
160
 
161
+ def transform_keys
162
+ result = {}
163
+ each_key do |key|
164
+ result[yield(key)] = self[key]
165
+ end
166
+ result
167
+ end unless method_defined? :transform_keys
168
+
169
+ def transform_keys!
170
+ keys.each do |key|
171
+ self[yield(key)] = delete(key)
172
+ end
173
+ self
174
+ end unless method_defined? :transform_keys!
175
+
176
+ def transform_values
177
+ return enum_for(:transform_values) { size } unless block_given?
178
+ return {} if empty?
179
+ result = self.class.new
180
+ each do |key, value|
181
+ result[key] = yield(value)
182
+ end
183
+ result
184
+ end unless method_defined? :transform_values
185
+
186
+ def transform_values!
187
+ return enum_for(:transform_values!) { size } unless block_given?
188
+ each do |key, value|
189
+ self[key] = yield(value)
190
+ end
191
+ end unless method_defined? :transform_values!
192
+
147
193
  end
@@ -1,3 +1,2 @@
1
1
  # encoding: utf-8
2
- require 'ostruct'
3
- require 'backports/2.0.0/stdlib/ostruct'
2
+ require 'ostruct'
@@ -1,12 +1,42 @@
1
- require 'backports/rails/string'
2
-
3
1
  # Extension class
4
2
  class String
5
3
 
6
- # Check if string is empty
7
- def blank?
8
- self == ''
9
- end unless method_defined? :blank?
4
+ # from activesupport
5
+ def camelize(first_letter = :upper)
6
+ if first_letter == :upper
7
+ gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
8
+ else
9
+ self[0..0].downcase + camelize[1..-1]
10
+ end
11
+ end unless method_defined? :camelize
12
+
13
+ def constantize
14
+ names = split('::')
15
+ names.shift if names.empty? || names.first.empty?
16
+
17
+ constant = Object
18
+ names.each do |name|
19
+ constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
20
+ end
21
+ constant
22
+ end unless method_defined? :constantize
23
+
24
+ def dasherize
25
+ gsub(/_/, '-')
26
+ end unless method_defined? :dasherize
27
+
28
+ def demodulize
29
+ gsub(/^.*::/, '')
30
+ end unless method_defined? :demodulize
31
+
32
+ def underscore
33
+ gsub(/::/, '/').
34
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
35
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
36
+ tr("-", "_").
37
+ downcase
38
+ end unless method_defined? :underscore
39
+
10
40
 
11
41
  # Create sortable object from string. Supports better natural sorting.
12
42
  def sort_form
@@ -84,11 +114,4 @@ class String
84
114
 
85
115
  end
86
116
 
87
- # Extension class
88
- class NilClass
89
-
90
- # Allow nil.blank? so that blank? can be applied without errors.
91
- def blank?
92
- true
93
- end
94
- end
117
+ require_relative 'empty'
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'json'
3
- require 'backports/rails/hash'
4
- require 'backports/2.0.0/struct'
3
+ require_relative 'hash'
5
4
 
6
5
  class Struct
7
6
  # def to_hash
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'backports'
4
3
  require 'libis/tools/config'
5
4
  require 'libis/tools/extend/string'
6
5
 
@@ -91,14 +91,18 @@ module Libis
91
91
  end
92
92
 
93
93
  dmd_sec = xml_doc.root.xpath('mets:dmdSec', NS).inject({}) do |hash_dmd, dmd|
94
- hash_dmd[dmd[:ID]] = dmd.xpath('.//dc:record', NS).first.children.inject({}) do |h, c|
95
- h[c.name] = c.content
94
+ id = dmd[:ID]
95
+ id = id.slice(0..(id.index('-dmd') + 3))
96
+ hash_dmd[id] = dmd.xpath('.//dc:record', NS).first.children.inject({}) do |h, c|
97
+ h[c.name] = c.content if c.name != 'text'
96
98
  h
97
99
  end
98
100
  hash_dmd
99
101
  end
100
102
  amd_sec = xml_doc.root.xpath('mets:amdSec', NS).inject({}) do |hash_amd, amd|
101
- hash_amd[amd[:ID]] = [:tech, :rights, :source, :digiprov].inject({}) do |hash_sec, sec|
103
+ id = amd[:ID]
104
+ id = id.slice(0..(id.index('-amd') + 3))
105
+ hash_amd[id] = [:tech, :rights, :source, :digiprov].inject({}) do |hash_sec, sec|
102
106
  md = amd.xpath("mets:#{sec}MD", NS).first
103
107
  return hash_sec unless md
104
108
  # hash_sec[sec] = md.xpath('mets:mdWrap/dnx:dnx/dnx:section', NS).inject({}) do |hash_md, dnx_sec|
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Tools
3
- VERSION = '1.0.6'
3
+ VERSION = '1.0.13'
4
4
  end
5
5
  end
data/libis-tools.gemspec CHANGED
@@ -27,20 +27,19 @@ Gem::Specification.new do |spec|
27
27
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
28
28
 
29
29
  spec.require_paths = ['lib']
30
- spec.has_rdoc = 'yard'
30
+ # spec.has_rdoc = 'yard'
31
31
 
32
32
  spec.add_development_dependency 'bundler', '> 1.6'
33
- spec.add_development_dependency 'rake', '~> 10.3'
33
+ spec.add_development_dependency 'rake', '~> 13.0'
34
34
  spec.add_development_dependency 'rspec', '~> 3.1'
35
35
  spec.add_development_dependency 'term-ansicolor', '~> 1.6'
36
36
  spec.add_development_dependency 'equivalent-xml', '~> 0.5'
37
37
  spec.add_development_dependency 'awesome_print', '~> 1.6'
38
38
 
39
- spec.add_runtime_dependency 'backports', '~> 3.6'
40
39
  spec.add_runtime_dependency 'nokogiri', '~> 1.6'
41
40
  spec.add_runtime_dependency 'gyoku', '~> 1.3'
42
41
  spec.add_runtime_dependency 'nori', '~> 2.6'
43
- spec.add_runtime_dependency 'recursive-open-struct', '~> 1.0'
42
+ spec.add_runtime_dependency 'recursive-open-struct', '>= 1.1.3'
44
43
  spec.add_runtime_dependency 'parslet', '~> 1.7'
45
44
  spec.add_runtime_dependency 'simple_xlsx_reader', '~> 1.0'
46
45
  spec.add_runtime_dependency 'logging', '~> 2.0'
@@ -45,6 +45,7 @@ describe ::Libis::Tools::ConfigFile do
45
45
 
46
46
  it 'allows to change hash in array' do
47
47
  subject << hash
48
+ # subject = ::Libis::Tools::ConfigFile.new(hash)
48
49
  # noinspection RubyResolve
49
50
  subject.c[0][0].a[0].v = 1
50
51
  hash[:c][0][0][:a][0][:v] = 1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libis-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-09 00:00:00.000000000 Z
11
+ date: 2021-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.3'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.3'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.6'
97
- - !ruby/object:Gem::Dependency
98
- name: backports
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.6'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '3.6'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: nokogiri
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -154,16 +140,16 @@ dependencies:
154
140
  name: recursive-open-struct
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
- - - "~>"
143
+ - - ">="
158
144
  - !ruby/object:Gem::Version
159
- version: '1.0'
145
+ version: 1.1.3
160
146
  type: :runtime
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
- - - "~>"
150
+ - - ">="
165
151
  - !ruby/object:Gem::Version
166
- version: '1.0'
152
+ version: 1.1.3
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: parslet
169
155
  requirement: !ruby/object:Gem::Requirement
@@ -400,8 +386,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
400
386
  - !ruby/object:Gem::Version
401
387
  version: '0'
402
388
  requirements: []
403
- rubyforge_project:
404
- rubygems_version: 2.7.8
389
+ rubygems_version: 3.2.15
405
390
  signing_key:
406
391
  specification_version: 4
407
392
  summary: LIBIS toolbox.