tty-config 0.4.0 → 0.5.0

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.
@@ -45,7 +45,7 @@ module TTY
45
45
  elsif dep_name.size == 1
46
46
  "The dependency `#{dep_name.join}` is missing."
47
47
  else
48
- "The dependencies `#{dep_name.join(", ")}` are missing."
48
+ "The dependencies `#{dep_name.join(', ')}` are missing."
49
49
  end
50
50
  end
51
51
 
@@ -11,7 +11,7 @@ module TTY
11
11
  # the file content
12
12
  #
13
13
  # @api public
14
- def self.generate(data, separator: '=')
14
+ def self.generate(data, separator: "=")
15
15
  content = []
16
16
  values = {}
17
17
  sections = {}
@@ -24,7 +24,7 @@ module TTY
24
24
  (val.is_a?(Array) && val.first.is_a?(Hash))
25
25
  sections[key] = val
26
26
  elsif val.is_a?(Array)
27
- values[key] = val.join(',')
27
+ values[key] = val.join(",")
28
28
  else
29
29
  values[key] = val
30
30
  end
@@ -34,7 +34,7 @@ module TTY
34
34
  values.each do |key, val|
35
35
  content << "#{key} #{separator} #{val}"
36
36
  end
37
- content << '' unless values.empty?
37
+ content << "" unless values.empty?
38
38
 
39
39
  # sections
40
40
  sections.each do |section, object|
@@ -45,10 +45,10 @@ module TTY
45
45
  object = object.reduce({}, :merge!)
46
46
  end
47
47
  object.each do |key, val|
48
- val = val.join(',') if val.is_a?(Array)
48
+ val = val.join(",") if val.is_a?(Array)
49
49
  content << "#{key} #{separator} #{val}" if val
50
50
  end
51
- content << ''
51
+ content << ""
52
52
  end
53
53
  content.join("\n")
54
54
  end
@@ -16,7 +16,7 @@ module TTY
16
16
 
17
17
  module ExtensionsStore
18
18
  def ext
19
- @ext ||= []
19
+ @_ext ||= []
20
20
  end
21
21
 
22
22
  # Set a list of extensions
@@ -27,11 +27,21 @@ module TTY
27
27
  # @api public
28
28
  def extension(*extensions)
29
29
  if extensions[0].is_a?(Array)
30
- @ext = extensions[0]
30
+ @_ext = extensions[0]
31
31
  else
32
- @ext = extensions
32
+ @_ext = extensions
33
33
  end
34
34
  end
35
+
36
+ # Copy extensions to a subclass
37
+ #
38
+ # @param [Object] subclass
39
+ #
40
+ # @api private
41
+ def inherited(subclass)
42
+ super
43
+ subclass.instance_variable_set(:@_ext, @_ext.dup)
44
+ end
35
45
  end
36
46
 
37
47
  # Marshal object into a given format
@@ -3,7 +3,9 @@
3
3
  module TTY
4
4
  class Config
5
5
  class MarshallerRegistry
6
-
6
+ # All registered marshallers
7
+ #
8
+ # @api private
7
9
  attr_reader :marshallers
8
10
 
9
11
  # @api private
@@ -24,7 +26,7 @@ module TTY
24
26
  end
25
27
 
26
28
  def registered?(name_or_object)
27
- marshallers.key?(name_or_object) || marshallers.has_value?(name_or_object)
29
+ marshallers.key?(name_or_object) || marshallers.value?(name_or_object)
28
30
  end
29
31
 
30
32
  def register(name, object)
@@ -5,6 +5,9 @@ require_relative "../marshaller"
5
5
  module TTY
6
6
  class Config
7
7
  module Marshallers
8
+ # Responsible for marshalling content from and into HCL format
9
+ #
10
+ # @api public
8
11
  class HCLMarshaller
9
12
  include TTY::Config::Marshaller
10
13
 
@@ -6,6 +6,9 @@ require_relative "../marshaller"
6
6
  module TTY
7
7
  class Config
8
8
  module Marshallers
9
+ # Responsible for marshalling content from and into INI format
10
+ #
11
+ # @api public
9
12
  class INIMarshaller
10
13
  include TTY::Config::Marshaller
11
14
 
@@ -19,7 +22,7 @@ module TTY
19
22
 
20
23
  def unmarshal(content)
21
24
  ini = IniFile.new(content: content).to_h
22
- global = ini.delete('global')
25
+ global = ini.delete("global")
23
26
  ini.merge!(global)
24
27
  end
25
28
  end # INIMarshaller
@@ -5,6 +5,9 @@ require_relative "../marshaller"
5
5
  module TTY
6
6
  class Config
7
7
  module Marshallers
8
+ # Responsible for marshalling content from and into Java properties format
9
+ #
10
+ # @api public
8
11
  class JavaPropsMarshaller
9
12
  include TTY::Config::Marshaller
10
13
 
@@ -5,6 +5,9 @@ require_relative "../marshaller"
5
5
  module TTY
6
6
  class Config
7
7
  module Marshallers
8
+ # Responsible for marshalling content from and into JSON format
9
+ #
10
+ # @api public
8
11
  class JSONMarshaller
9
12
  include TTY::Config::Marshaller
10
13
 
@@ -5,6 +5,9 @@ require_relative "../marshaller"
5
5
  module TTY
6
6
  class Config
7
7
  module Marshallers
8
+ # Responsible for marshalling content from and into TOML format
9
+ #
10
+ # @api public
8
11
  class TOMLMarshaller
9
12
  include TTY::Config::Marshaller
10
13
 
@@ -5,6 +5,9 @@ require_relative "../marshaller"
5
5
  module TTY
6
6
  class Config
7
7
  module Marshallers
8
+ # Responsible for marshalling content from and into YAML format
9
+ #
10
+ # @api public
8
11
  class YAMLMarshaller
9
12
  include TTY::Config::Marshaller
10
13
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module TTY
4
4
  class Config
5
- VERSION = "0.4.0"
6
- end
7
- end
5
+ VERSION = "0.5.0"
6
+ end # Config
7
+ end # TTY
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tty-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Murach
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-25 00:00:00.000000000 Z
11
+ date: 2021-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '1.5'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '1.5'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -42,14 +28,14 @@ dependencies:
42
28
  name: rspec
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
- - - "~>"
31
+ - - ">="
46
32
  - !ruby/object:Gem::Version
47
33
  version: '3.0'
48
34
  type: :development
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - "~>"
38
+ - - ">="
53
39
  - !ruby/object:Gem::Version
54
40
  version: '3.0'
55
41
  - !ruby/object:Gem::Dependency
@@ -58,58 +44,59 @@ dependencies:
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: 0.2.0
47
+ version: '0.2'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: 0.2.0
54
+ version: '0.2'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: inifile
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: 3.0.0
61
+ version: '3.0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: 3.0.0
68
+ version: '3.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rhcl
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 0.1.0
75
+ version: '0.1'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 0.1.0
82
+ version: '0.1'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: java-properties
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 0.2.0
89
+ version: '0.3'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 0.2.0
111
- description: Define, read and write any Ruby app configurations with a penchant for
112
- terminal clients.
96
+ version: '0.3'
97
+ description: A highly customisable application configuration interface for building
98
+ terminal tools. It supports many file formats such as YAML, JSON, TOML, INI, HCL
99
+ and Java Properties.
113
100
  email:
114
101
  - piotr@piotrmurach.com
115
102
  executables: []
@@ -117,6 +104,7 @@ extensions: []
117
104
  extra_rdoc_files:
118
105
  - README.md
119
106
  - CHANGELOG.md
107
+ - LICENSE.txt
120
108
  files:
121
109
  - CHANGELOG.md
122
110
  - LICENSE.txt
@@ -145,7 +133,7 @@ metadata:
145
133
  documentation_uri: https://www.rubydoc.info/gems/tty-config
146
134
  homepage_uri: https://ttytoolkit.org
147
135
  source_code_uri: https://github.com/piotrmurach/tty-config
148
- post_install_message:
136
+ post_install_message:
149
137
  rdoc_options: []
150
138
  require_paths:
151
139
  - lib
@@ -161,8 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
149
  version: '0'
162
150
  requirements: []
163
151
  rubygems_version: 3.1.2
164
- signing_key:
152
+ signing_key:
165
153
  specification_version: 4
166
- summary: Define, read and write any Ruby app configurations with a penchant for terminal
167
- clients.
154
+ summary: A highly customisable application configuration interface for building terminal
155
+ tools.
168
156
  test_files: []