libis-tools 1.0.4 → 1.0.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
2
  SHA256:
3
- metadata.gz: c9e3d995478c23cf34462e49682a86e2268c059314a3f9b8f1a4d4cb7dca3cfa
4
- data.tar.gz: 20138f051ab8337d686aa2f7b226883ea535afc418765a80b19cd135c016b673
3
+ metadata.gz: 614880562757e58d8f1e86db7f507411a873c7920efcc3b932dd446b65eb7a70
4
+ data.tar.gz: c8aa877ea6b7fcc8daec5f2c1e49d5680afd857e900c6b8e6f5a309e884858e9
5
5
  SHA512:
6
- metadata.gz: d35c8c621b0e07a7817a5671a74f624ab7fc5a1d4a3f781c19f77fc03e61a411edafbb77666c3bab7607b59057a90d58e271cb927cd4156fcd77925ed755da4b
7
- data.tar.gz: 1381a075f84a335510b4acff0a6c8ffef7daf8a0efb84d0a30fc49d56dc0250191b6f51bb0fd8d6b75faacc08fc4783d56c5c6915c70c78663c3d2fbd591984e
6
+ metadata.gz: 8907c8cdb69831d8bfcf432d47d2abf06bb010e8aa6aac8a20e125cbfa1487df3a3b1db2fb3e4da7c77533f34b78377bfec929c4d3c5f5d79e747f11a54c0c8b
7
+ data.tar.gz: e7536a051acb0cfe862cca95799c1b9b8653f06cc550ffc30cde1a9c5a21a044bb4c5a4d9183a0099cd31b27f0615f8c4fb72e53f03b451c30ef0b3e83e7d124
@@ -1,36 +1,40 @@
1
+ dist: bionic
1
2
  language: ruby
2
3
  cache: bundler
3
4
  sudo: false
4
5
  rvm:
5
- - 2.1.10
6
- - 2.2.8
7
- - 2.3.5
8
- - 2.4.2
6
+ - 2.3
7
+ - 2.4
8
+ - 2.5
9
+ - 2.6
9
10
  - ruby-head
10
- - jruby-9.0.5.0
11
- - jruby-9.1.9.0
11
+ # - jruby-9.1
12
+ - jruby-9.2
12
13
  - jruby-head
13
14
  jdk:
14
- - openjdk8
15
- - oraclejdk8
15
+ - openjdk10
16
+ - openjdk11
16
17
  matrix:
17
18
  exclude:
18
- - rvm: 2.1.10
19
- jdk: oraclejdk8
20
- - rvm: 2.2.8
21
- jdk: oraclejdk8
22
- - rvm: 2.3.5
23
- jdk: oraclejdk8
24
- - rvm: 2.4.2
25
- jdk: oraclejdk8
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
26
27
  - rvm: ruby-head
27
- jdk: oraclejdk8
28
+ jdk: openjdk10
28
29
  allow_failures:
29
30
  - rvm: ruby-head
30
31
  - rvm: jruby-head
31
32
  branches:
32
33
  only:
33
34
  - master
35
+ #before_install:
36
+ # - gem update --system
37
+ # - gem --version
34
38
  addons:
35
39
  code_climate:
36
40
  repo_token: f6978964f55e6543befb82373651365f8195677816af6ff40ad70c82f7f22f09
@@ -60,7 +60,7 @@ module Libis
60
60
  # Merges other parameter data into the current parameter
61
61
  # @param [::Libis::Tools::Parameter] other parameter definition to copy properties from
62
62
  def merge!(other)
63
- other.each do |k,v|
63
+ other.each do |k, v|
64
64
  if k == :options
65
65
  self[:options].merge!(v)
66
66
  else
@@ -130,55 +130,59 @@ module Libis
130
130
  end
131
131
  true
132
132
  end
133
+
133
134
  private
134
135
 
135
136
  def guess_datatype
136
137
  self[:datatype] || case self[:default]
137
- when TrueClass, FalseClass
138
- 'bool'
139
- when NilClass
140
- 'string'
141
- when Integer
142
- 'int'
143
- when Float
144
- 'float'
145
- when DateTime, Date, Time
146
- 'datetime'
147
- when Array
148
- 'array'
149
- when Hash
150
- 'hash'
151
- else
152
- self[:default].class.name.downcase
138
+ when TrueClass, FalseClass
139
+ 'bool'
140
+ when NilClass
141
+ 'string'
142
+ when Integer
143
+ 'int'
144
+ when Float
145
+ 'float'
146
+ when DateTime, Date, Time
147
+ 'datetime'
148
+ when Array
149
+ 'array'
150
+ when Hash
151
+ 'hash'
152
+ else
153
+ self[:default].class.name.downcase
153
154
  end
154
155
  end
155
156
 
156
157
  def convert(v)
157
158
  case self[:datatype].to_s.downcase
158
- when 'boolean', 'bool'
159
- return true if TRUE_BOOL.include?(v.to_s.downcase)
160
- return false if FALSE_BOOL.include?(v.to_s.downcase)
161
- raise ParameterValidationError, "No boolean information in '#{v.to_s}'. " +
162
- "Valid values are: '#{TRUE_BOOL.join('\', \'')}" +
163
- "' and '#{FALSE_BOOL.join('\', \'')}'."
164
- when 'string', 'nil'
165
- return v.to_s
166
- when 'int'
167
- return Integer(v)
168
- when 'float'
169
- return Float(v)
170
- when 'datetime'
171
- return v.to_datetime if v.respond_to? :to_datetime
172
- return DateTime.parse(v)
173
- when 'array'
174
- return v if v.is_a?(Array)
175
- return v.split(/[,;|\s]+/) if v.is_a?(String)
176
- return v.to_a if v.respond_to?(:to_a)
177
- when 'hash'
178
- return v when v.is_a?(Hash)
179
- return Hash[(0...v.size).zip(v)] when v.is_a?(Array)
180
- else
181
- raise ParameterValidationError, "Datatype not supported: '#{self[:datatype]}'"
159
+ when 'boolean', 'bool'
160
+ return true if TRUE_BOOL.include?(v.to_s.downcase)
161
+ return false if FALSE_BOOL.include?(v.to_s.downcase)
162
+ raise ParameterValidationError, "No boolean information in '#{v.to_s}'. " +
163
+ "Valid values are: '#{TRUE_BOOL.join('\', \'')}" +
164
+ "' and '#{FALSE_BOOL.join('\', \'')}'."
165
+ when 'string', 'nil'
166
+ return v.to_s
167
+ when 'int', 'integer'
168
+ return Integer(v)
169
+ when 'float'
170
+ return Float(v)
171
+ when 'datetime'
172
+ return v.to_datetime if v.respond_to? :to_datetime
173
+ return DateTime.parse(v)
174
+ when 'array'
175
+ return v if v.is_a?(Array)
176
+ return v.split(/[,;|\s]+/) if v.is_a?(String)
177
+ # Alternatavely:
178
+ # return JSON.parse(v) if v.is_a?(String)
179
+ return v.to_a if v.respond_to?(:to_a)
180
+ when 'hash'
181
+ return v if v.is_a?(Hash)
182
+ return Hash[(0...v.size).zip(v)] if v.is_a?(Array)
183
+ return JSON.parse(v) if v.is_a?(String)
184
+ else
185
+ raise ParameterValidationError, "Datatype not supported: '#{self[:datatype]}'"
182
186
  end
183
187
  nil
184
188
  end
@@ -194,17 +198,17 @@ module Libis
194
198
  def constraint_checker(v, constraint)
195
199
 
196
200
  case constraint
197
- when Array
198
- constraint.each do |c|
199
- return true if (constraint_checker(v, c) rescue false)
200
- end
201
- return true if constraint.include? v
202
- when Range
203
- return true if constraint.cover? v
204
- when Regexp
205
- return true if v =~ constraint
206
- else
207
- return true if v == constraint
201
+ when Array
202
+ constraint.each do |c|
203
+ return true if (constraint_checker(v, c) rescue false)
204
+ end
205
+ return true if constraint.include? v
206
+ when Range
207
+ return true if constraint.cover? v
208
+ when Regexp
209
+ return true if v =~ constraint
210
+ else
211
+ return true if v == constraint
208
212
  end
209
213
  false
210
214
  end
@@ -245,16 +249,16 @@ module Libis
245
249
  # @return [Hash] with parameter names as keys and {Parameter} instance as value.
246
250
  def parameter_defs
247
251
  return @parameters if @parameters
248
- @parameters = ::Concurrent::Hash.new
249
- begin
250
- self.superclass.parameter_defs.
251
- each_with_object(@parameters) do |(name, param), hash|
252
- hash[name] = param.dup
253
- end
254
- rescue NoMethodError
255
- # ignored
252
+ @parameters = ::Concurrent::Hash.new
253
+ begin
254
+ self.superclass.parameter_defs.
255
+ each_with_object(@parameters) do |(name, param), hash|
256
+ hash[name] = param.dup
256
257
  end
257
- @parameters
258
+ rescue NoMethodError
259
+ # ignored
260
+ end
261
+ @parameters
258
262
  end
259
263
 
260
264
  # DSL method that allows creating parameter definitions on the class level.
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Tools
3
- VERSION = '1.0.4'
3
+ VERSION = '1.0.6'
4
4
  end
5
5
  end
@@ -19,7 +19,9 @@ describe 'Command' do
19
19
 
20
20
  result = Libis::Tools::Command.run('ls')
21
21
 
22
- expect(result[:out].sort).to match entries
22
+ output = result[:out].map {|x| x.split(/\s+/)}.flatten.compact
23
+ expect(output.size).to eq entries.size
24
+ expect(output.sort).to match entries
23
25
  expect(result[:err]).to eq []
24
26
  expect(result[:status]).to eq 0
25
27
 
@@ -30,6 +32,7 @@ describe 'Command' do
30
32
  result = Libis::Tools::Command.run('ls', '-1')
31
33
 
32
34
  output = result[:out]
35
+ puts output.sort
33
36
  expect(output.size).to eq entries.size
34
37
  expect(output.sort).to match entries
35
38
  expect(result[:err]).to eq []
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.4
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-29 00:00:00.000000000 Z
11
+ date: 2020-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -400,7 +400,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
400
400
  - !ruby/object:Gem::Version
401
401
  version: '0'
402
402
  requirements: []
403
- rubygems_version: 3.0.3
403
+ rubyforge_project:
404
+ rubygems_version: 2.7.8
404
405
  signing_key:
405
406
  specification_version: 4
406
407
  summary: LIBIS toolbox.