atk_toolbox 0.0.59 → 0.0.60

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: 41f8e04ce0df09ec4e281cdc0287db76b1378c03d57ccbae29ee801777846809
4
- data.tar.gz: 8480058eca560d3ee8eb2cbf5571c94b94d44568b97c82d2a888a145ab6bf5d0
3
+ metadata.gz: 44d65649a0eff44005ab8189a44cbb754835fe2b924db8ef32a2411a4d10fa02
4
+ data.tar.gz: 5568c9abaea3119838358c2a2904d47cff1983b772d80eb07e6dadaa159ea4f0
5
5
  SHA512:
6
- metadata.gz: 3f0c7ae05b6a425512fd9227fb859f3c40b89acd6dac420ca90aac3d8d08bb9fd12258cf4ca4f6312e2f70653a307dab99e6be2507b69101ccf6da3fb93b62af
7
- data.tar.gz: ea0093f0113b397070df4c63335831af53349303fa0dc6b7ed9f6de73bf1a92710a80158b1703d9e9fbfca1badc8817bdc5d19067afc4c4392e7bd7b785ca631
6
+ metadata.gz: ecb57106021e63ac87ff5f19b8a4ba6ecdfb7cf11cb8f1f413c57847770caa0e3646348a75e138e35a1656c096a792c76fb0cd2d17006f98ac5514d9deaec2a0
7
+ data.tar.gz: 15e5201c7ecf5c58d66d115c4fdfdb68bd7dbc8a848986d913441988a7c2837aae7ea199907330e4e3ee760d4f9099c6dbef220fb5b4b97b6312125e7a922e2d
data/lib/atk/atk_info.rb CHANGED
@@ -1,4 +1,4 @@
1
- require_relative './extra_file_utils'
1
+ require_relative './file_sys'
2
2
  require_relative './os'
3
3
  require 'yaml'
4
4
 
@@ -2,6 +2,9 @@ require 'etc'
2
2
  require 'fileutils'
3
3
  require 'pathname'
4
4
  require 'open-uri'
5
+ require 'json'
6
+ require 'yaml'
7
+ require 'csv'
5
8
  require_relative './os'
6
9
  require_relative './remove_indent'
7
10
 
@@ -43,6 +46,50 @@ class FileSys
43
46
  IO.write(to, data)
44
47
  end
45
48
 
49
+ def self.save(value, to:nil, as:nil)
50
+ # assume string if as was not given
51
+ if as == nil
52
+ as = :s
53
+ end
54
+
55
+ # add a special exception for csv files
56
+ case as
57
+ when :csv
58
+ FS.write(value.map(&:to_csv).join, to: to)
59
+ else
60
+ conversion_method_name = "to_#{as}"
61
+ if value.respond_to? conversion_method_name
62
+ # this is like calling `value.to_json`, `value.to_yaml`, or `value.to_csv` but programatically
63
+ string_value = value.public_send(conversion_method_name)
64
+ if not string_value.is_a?(String)
65
+ raise <<-HEREDOC.remove_indent
66
+
67
+
68
+ The FileSys.save(value, to: #{to.inspect}, as: #{as.inspect}) had a problem.
69
+ The as: #{as}, gets converted into value.to_#{as}
70
+ Normally that returns a string that can be saved to a file
71
+ However, the value.to_#{as} did not return a string.
72
+ Value is of the #{value.class} class. Add a `to_#{as}`
73
+ method to that class that returns a string to get FileSys.save() working
74
+ HEREDOC
75
+ end
76
+ FS.write(string_value, to:to)
77
+ else
78
+ raise <<-HEREDOC.remove_indent
79
+
80
+
81
+ The FileSys.save(value, to: #{to.inspect}, as: #{as.inspect}) had a problem.
82
+
83
+ The as: #{as}, gets converted into value.to_#{as}
84
+ Normally that returns a string that can be saved to a file
85
+ However, the value.to_#{as} is not a method for value
86
+ Value is of the #{value.class} class. Add a `to_#{as}`
87
+ method to that class that returns a string to get FileSys.save() working
88
+ HEREDOC
89
+ end
90
+ end
91
+ end
92
+
46
93
  def self.read(filepath)
47
94
  begin
48
95
  return IO.read(filepath)
@@ -1,4 +1,4 @@
1
- require_relative './extra_file_utils'
1
+ require_relative './file_sys'
2
2
  require_relative './os'
3
3
  require_relative './atk_info'
4
4
 
@@ -2,7 +2,7 @@
2
2
  require "yaml"
3
3
  require_relative './cmd'
4
4
  require_relative './os'
5
- require_relative './extra_file_utils'
5
+ require_relative './file_sys'
6
6
  require_relative './extra_yaml'
7
7
  require 'fileutils'
8
8
 
@@ -1,3 +1,3 @@
1
1
  module AtkToolbox
2
- VERSION = '0.0.59'
2
+ VERSION = '0.0.60'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atk_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.59
4
+ version: 0.0.60
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Hykin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-13 00:00:00.000000000 Z
11
+ date: 2019-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zip
@@ -34,40 +34,40 @@ dependencies:
34
34
  name: git
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: 1.5.0
40
- - - "~>"
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.5.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: 1.5.0
50
- - - "~>"
50
+ - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.5.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: tty-prompt
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ">="
57
+ - - "~>"
58
58
  - !ruby/object:Gem::Version
59
59
  version: 0.19.0
60
- - - "~>"
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: 0.19.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: 0.19.0
70
- - - "~>"
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: 0.19.0
73
73
  description: ''
@@ -79,8 +79,8 @@ files:
79
79
  - lib/atk/atk_info.rb
80
80
  - lib/atk/cmd.rb
81
81
  - lib/atk/default_info.yaml
82
- - lib/atk/extra_file_utils.rb
83
82
  - lib/atk/extra_yaml.rb
83
+ - lib/atk/file_sys.rb
84
84
  - lib/atk/git.rb
85
85
  - lib/atk/online.rb
86
86
  - lib/atk/os.rb
@@ -114,7 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
- rubygems_version: 3.0.4
117
+ rubyforge_project:
118
+ rubygems_version: 2.7.3
118
119
  signing_key:
119
120
  specification_version: 4
120
121
  summary: The Ruby gem for all the standard tools ATK uses internally