atk_toolbox 0.0.59 → 0.0.60

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: 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