confc 0.1.0 → 0.2.0

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: 1c3a8dce914874cf543e07abaf7213ef912e7e967bafbcdb03e392a98d3ddbbc
4
- data.tar.gz: 1ef93bd3d41ab029e994aa3e2784526b09f4088e5e9a2edd421ca4f24193004d
3
+ metadata.gz: bcff39b515da905c95db2633bcf1d1e39c5e94e885cec7e3bf1259ad177b7554
4
+ data.tar.gz: d25d12de3ac4ec68c7c9372d6499a2d893a621d6022b6c5eb8b6200f69ebe16a
5
5
  SHA512:
6
- metadata.gz: e65db62da4db911ee9aaa637fbaa218d4da7a5752a90cfd8dade549e19c206e4030561db321b722c47e72f4ba7b31e9df6a200127b9cd40e91d701afcfa7e749
7
- data.tar.gz: cd460bf49cdf8505e21593737b55360979e7ab42e2288b678d484d4b6fbd162be93304415e4b36fc1455cb6114d080e9dda89cc69e5e8a239fded9b7d5c7903a
6
+ metadata.gz: fb0ccf7ce8b3edf78e71ba6c4ef1edec98aa21032b842134bb5b931bb406ff00bcc4f0d6c58b55d733b190b4945f65fa6127d6ae2a9b59f466d4e6921dfd40db
7
+ data.tar.gz: cb249f7fa9ec56fb83fb0d0fb156ee862c7b4abc967f72ed9cb544c0767220a4067dd0ad87dcd1b4fcc60094d58705a0f92de1362739f6e24fdf88bef91e2a11
data/README.md CHANGED
@@ -28,6 +28,38 @@ Clone your default configuration files to current working directory.
28
28
  -h, --help Show help
29
29
  ```
30
30
 
31
+ ## Configuration
32
+
33
+ You can configure **ConfC** via `.confcrc`, `.confcrc.json`, `.confcrc.yml` or `.confcrc.yaml` file.
34
+ More information about configuration file can be found from [mysticonfig](https://git.io/mysticonfig).
35
+
36
+ ### .confcrc
37
+ - **path**
38
+ Type: `String`
39
+ Default: **$HOME** (Your **home** directory)
40
+
41
+ Path to directory that contain your default configuration files.
42
+
43
+ - **files**
44
+ Type: `Array<String>`
45
+ Default: Files name in [files.yaml](./files.yaml)
46
+
47
+ List of target files name that you want to clone.
48
+
49
+ > If you have your own configuration files and don't want to use files from [files.yaml](./files.yaml), just replace it with your files name by this option.
50
+
51
+ - **overwrite**
52
+ Type: `Boolean`
53
+ Default: `false`
54
+
55
+ Force to overwrite files if it exists.
56
+
57
+ - **verbose**
58
+ Type: `Boolean`
59
+ Default: `false`
60
+
61
+ Display verbose information.
62
+
31
63
  ## Related
32
64
 
33
65
  - [ConfC](https://github.com/gluons/ConfC) - 🆕 Start new project with your default configs. (Node.js version)
data/confc.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.files = ['confc.gemspec', 'LICENSE', 'Gemfile', 'files.yaml']
16
16
  s.files += Dir['*.md', 'bin/*', 'lib/**/*']
17
17
  s.executables = ['confc']
18
- s.required_ruby_version = '>= 2.1.0'
18
+ s.required_ruby_version = '>= 2.2.2'
19
19
  s.author = 'Saran Tanpituckpong'
20
20
  s.license = 'MIT'
21
21
  s.homepage = 'https://gluons.github.io/ConfC.gem/'
@@ -23,8 +23,10 @@ Gem::Specification.new do |s|
23
23
  'bug_tracker_uri' => 'https://github.com/gluons/ConfC.gem/issues'
24
24
  }
25
25
 
26
+ s.add_runtime_dependency 'activesupport', '~> 5.1', '>= 5.1.5'
27
+ s.add_runtime_dependency 'mysticonfig', '~> 0.1.0'
26
28
  s.add_runtime_dependency 'rainbow', '~> 3.0'
27
- s.add_runtime_dependency 'tty-prompt', '~> 0.13.2'
29
+ s.add_runtime_dependency 'tty-prompt', '~> 0.15.0'
28
30
 
29
31
  s.add_development_dependency 'aruba', '~> 0.14.3'
30
32
  s.add_development_dependency 'rake', '~> 12.3'
data/lib/confc/cli.rb CHANGED
@@ -6,6 +6,7 @@ require_relative 'conf_clone'
6
6
  require_relative 'files'
7
7
  require_relative 'get_existent_files'
8
8
  require_relative 'gethome'
9
+ require_relative 'load_config'
9
10
  require_relative 'to_filenames'
10
11
  require_relative 'version'
11
12
 
@@ -14,17 +15,10 @@ BANNER = <<-BANNER.freeze
14
15
  Usage: #{Rainbow('confc').green} [options] [filenames...]
15
16
 
16
17
  Clone your default configuration files to current working directory.
18
+
17
19
  BANNER
18
20
  # rubocop:enable Layout/IndentHeredoc
19
21
 
20
- DEFAULT_OPTIONS = {
21
- files: ConfC.files,
22
- path: ConfC.gethome,
23
- overwrite: false,
24
- yes: false,
25
- verbose: false
26
- }.freeze
27
-
28
22
  AWW = '(。◕‿◕。)'.freeze
29
23
 
30
24
  ##
@@ -43,7 +37,6 @@ module ConfC
43
37
 
44
38
  confc_options = {
45
39
  overwrite: options[:overwrite],
46
- yes: options[:yes],
47
40
  verbose: options[:verbose]
48
41
  }
49
42
  existent_files = ConfC.get_existent_files(options[:path], files)
@@ -55,7 +48,7 @@ module ConfC
55
48
  ##
56
49
  # Parse CLI ARGV.
57
50
  def self.parse(argv)
58
- options = DEFAULT_OPTIONS.dup
51
+ options = ConfC.load_config
59
52
 
60
53
  parser = OptionParser.new do |opts|
61
54
  opts.banner = BANNER
@@ -0,0 +1,31 @@
1
+ require 'active_support/core_ext/hash/keys'
2
+ require 'mysticonfig'
3
+
4
+ require_relative 'files'
5
+ require_relative 'gethome'
6
+
7
+ DEFAULT_CONFIG = {
8
+ 'path' => ConfC.gethome,
9
+ 'files' => ConfC.files,
10
+ 'overwrite' => false,
11
+ 'verbose' => false,
12
+ 'yes' => false
13
+ }.freeze
14
+
15
+ ##
16
+ # ConfC
17
+ module ConfC
18
+ ##
19
+ # Load ConfC configuration.
20
+ def self.load_config
21
+ loader = Mysticonfig::Loader.new('confc', DEFAULT_CONFIG)
22
+ config = loader.load
23
+ if config.empty?
24
+ DEFAULT_CONFIG.symbolize_keys
25
+ else
26
+ # Truncate un-related config
27
+ config = config.select { |k, _| DEFAULT_CONFIG.keys.include? k }
28
+ config.symbolize_keys
29
+ end
30
+ end
31
+ end
data/lib/confc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ConfC
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,15 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saran Tanpituckpong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-31 00:00:00.000000000 Z
11
+ date: 2018-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 5.1.5
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '5.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 5.1.5
33
+ - !ruby/object:Gem::Dependency
34
+ name: mysticonfig
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.1.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.1.0
13
47
  - !ruby/object:Gem::Dependency
14
48
  name: rainbow
15
49
  requirement: !ruby/object:Gem::Requirement
@@ -30,14 +64,14 @@ dependencies:
30
64
  requirements:
31
65
  - - "~>"
32
66
  - !ruby/object:Gem::Version
33
- version: 0.13.2
67
+ version: 0.15.0
34
68
  type: :runtime
35
69
  prerelease: false
36
70
  version_requirements: !ruby/object:Gem::Requirement
37
71
  requirements:
38
72
  - - "~>"
39
73
  - !ruby/object:Gem::Version
40
- version: 0.13.2
74
+ version: 0.15.0
41
75
  - !ruby/object:Gem::Dependency
42
76
  name: aruba
43
77
  requirement: !ruby/object:Gem::Requirement
@@ -118,6 +152,7 @@ files:
118
152
  - lib/confc/get_existent_files.rb
119
153
  - lib/confc/gethome.rb
120
154
  - lib/confc/interrupt_handler.rb
155
+ - lib/confc/load_config.rb
121
156
  - lib/confc/to_filenames.rb
122
157
  - lib/confc/version.rb
123
158
  homepage: https://gluons.github.io/ConfC.gem/
@@ -133,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
168
  requirements:
134
169
  - - ">="
135
170
  - !ruby/object:Gem::Version
136
- version: 2.1.0
171
+ version: 2.2.2
137
172
  required_rubygems_version: !ruby/object:Gem::Requirement
138
173
  requirements:
139
174
  - - ">="
@@ -141,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
176
  version: '0'
142
177
  requirements: []
143
178
  rubyforge_project:
144
- rubygems_version: 2.7.3
179
+ rubygems_version: 2.7.5
145
180
  signing_key:
146
181
  specification_version: 4
147
182
  summary: Start new project with your default configs.