fedux_org-stdlib 0.7.21 → 0.7.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +23 -19
  5. data/Rakefile +16 -0
  6. data/config/rubocop/exclude.yml +44 -0
  7. data/config/rubocop/include.yml +0 -0
  8. data/fedux_org-stdlib.gemspec +9 -9
  9. data/fixtures/plugin-load-app/fedux_org_stdlib-fixtures-plugin_manager-plugin-load.gemspec +11 -11
  10. data/fixtures/plugin-no_load-app/fedux_org_stdlib-fixtures-plugin_manager-plugin-no_load.gemspec +11 -11
  11. data/lib/fedux_org_stdlib.rb +2 -1
  12. data/lib/fedux_org_stdlib/app_config.rb +22 -21
  13. data/lib/fedux_org_stdlib/colors/html_color.rb +8 -2
  14. data/lib/fedux_org_stdlib/command.rb +1 -0
  15. data/lib/fedux_org_stdlib/command/command_result.rb +1 -0
  16. data/lib/fedux_org_stdlib/command/run_command.rb +6 -5
  17. data/lib/fedux_org_stdlib/command/which.rb +17 -17
  18. data/lib/fedux_org_stdlib/core_ext/array/list.rb +6 -1
  19. data/lib/fedux_org_stdlib/core_ext/hash/list.rb +6 -1
  20. data/lib/fedux_org_stdlib/core_ext/hash/options.rb +1 -0
  21. data/lib/fedux_org_stdlib/core_ext/shellwords/clean.rb +8 -0
  22. data/lib/fedux_org_stdlib/core_ext/string/underline.rb +9 -1
  23. data/lib/fedux_org_stdlib/environment.rb +6 -4
  24. data/lib/fedux_org_stdlib/file_template.rb +8 -10
  25. data/lib/fedux_org_stdlib/filesystem.rb +30 -29
  26. data/lib/fedux_org_stdlib/filesystem/exceptions.rb +1 -1
  27. data/lib/fedux_org_stdlib/gem_plugins/exceptions.rb +1 -0
  28. data/lib/fedux_org_stdlib/gem_plugins/no_plugin.rb +1 -2
  29. data/lib/fedux_org_stdlib/gem_plugins/plugin.rb +6 -6
  30. data/lib/fedux_org_stdlib/gem_plugins/plugin_manager.rb +6 -7
  31. data/lib/fedux_org_stdlib/list.rb +24 -2
  32. data/lib/fedux_org_stdlib/logging.rb +3 -2
  33. data/lib/fedux_org_stdlib/logging/logger.rb +7 -7
  34. data/lib/fedux_org_stdlib/logging/severity.rb +3 -0
  35. data/lib/fedux_org_stdlib/logic_converters.rb +1 -0
  36. data/lib/fedux_org_stdlib/logic_converters/exceptions.rb +2 -2
  37. data/lib/fedux_org_stdlib/logic_converters/logic_converter.rb +9 -8
  38. data/lib/fedux_org_stdlib/logic_converters/on_off_converter.rb +5 -4
  39. data/lib/fedux_org_stdlib/logic_converters/true_false_converter.rb +3 -3
  40. data/lib/fedux_org_stdlib/logic_converters/y_n_converter.rb +3 -3
  41. data/lib/fedux_org_stdlib/logic_converters/yes_no_converter.rb +4 -3
  42. data/lib/fedux_org_stdlib/models/base_model.rb +24 -25
  43. data/lib/fedux_org_stdlib/models/class_based_model.rb +15 -14
  44. data/lib/fedux_org_stdlib/models/exceptions.rb +14 -15
  45. data/lib/fedux_org_stdlib/models/filesystem_based_model.rb +12 -15
  46. data/lib/fedux_org_stdlib/process_environment.rb +11 -1
  47. data/lib/fedux_org_stdlib/project.rb +0 -1
  48. data/lib/fedux_org_stdlib/project/generators/taskjuggler.rb +11 -10
  49. data/lib/fedux_org_stdlib/project/logger.rb +1 -0
  50. data/lib/fedux_org_stdlib/project/plan.rb +1 -1
  51. data/lib/fedux_org_stdlib/project/report.rb +8 -9
  52. data/lib/fedux_org_stdlib/rake/project.rb +4 -4
  53. data/lib/fedux_org_stdlib/rake/project_task.rb +2 -3
  54. data/lib/fedux_org_stdlib/rake/shell_task.rb +7 -7
  55. data/lib/fedux_org_stdlib/rake/sub_task.rb +2 -2
  56. data/lib/fedux_org_stdlib/rake/task.rb +7 -6
  57. data/lib/fedux_org_stdlib/rake/version_bump_task.rb +6 -7
  58. data/lib/fedux_org_stdlib/rake_tasks/console.rb +0 -1
  59. data/lib/fedux_org_stdlib/rake_tasks/documentation/yard.rb +2 -2
  60. data/lib/fedux_org_stdlib/rake_tasks/gems/bundler.rb +1 -1
  61. data/lib/fedux_org_stdlib/rake_tasks/gems/package.rb +1 -1
  62. data/lib/fedux_org_stdlib/rake_tasks/project/report/generate.rb +1 -2
  63. data/lib/fedux_org_stdlib/rake_tasks/project/report/open.rb +1 -2
  64. data/lib/fedux_org_stdlib/rake_tasks/project/report/open_shortcut.rb +1 -1
  65. data/lib/fedux_org_stdlib/rake_tasks/qa/rubocop.rb +1 -1
  66. data/lib/fedux_org_stdlib/rake_tasks/qa/travis.rb +1 -1
  67. data/lib/fedux_org_stdlib/rake_tasks/software_version/bump.rb +1 -1
  68. data/lib/fedux_org_stdlib/rake_tasks/software_version/restore.rb +1 -1
  69. data/lib/fedux_org_stdlib/rake_tasks/software_version/show.rb +2 -3
  70. data/lib/fedux_org_stdlib/rake_tasks/software_version/show_shortcut.rb +1 -1
  71. data/lib/fedux_org_stdlib/rake_tasks/tests/cucumber.rb +0 -1
  72. data/lib/fedux_org_stdlib/rake_tasks/tests/travis.rb +1 -1
  73. data/lib/fedux_org_stdlib/require_files.rb +5 -4
  74. data/lib/fedux_org_stdlib/roles/typable.rb +2 -3
  75. data/lib/fedux_org_stdlib/roles/versionable.rb +3 -2
  76. data/lib/fedux_org_stdlib/shell_language_detector.rb +21 -2
  77. data/lib/fedux_org_stdlib/shell_language_detector/language.rb +9 -1
  78. data/lib/fedux_org_stdlib/support_information.rb +60 -55
  79. data/lib/fedux_org_stdlib/template_directory.rb +8 -11
  80. data/lib/fedux_org_stdlib/version.rb +1 -1
  81. data/lib/fedux_org_stdlib/version_management/library_builder.rb +3 -2
  82. data/lib/fedux_org_stdlib/version_management/ruby_library.rb +2 -2
  83. data/lib/fedux_org_stdlib/version_management/rubygem_version_file.rb +3 -3
  84. data/lib/fedux_org_stdlib/version_management/rubygem_version_file_parser.rb +5 -5
  85. data/lib/fedux_org_stdlib/version_management/software_version.rb +4 -3
  86. data/lib/fedux_org_stdlib/version_management/version_builder.rb +1 -0
  87. data/rakefiles/default.rake +16 -0
  88. data/script/terminal +5 -5
  89. data/spec/app_config_spec.rb +6 -6
  90. data/spec/colors/html_color_spec.rb +1 -1
  91. data/spec/core_ext/array/list_spec.rb +8 -8
  92. data/spec/core_ext/hash/options_spec.rb +17 -17
  93. data/spec/core_ext/shellwords/clean_spec.rb +1 -1
  94. data/spec/environment_spec.rb +7 -5
  95. data/spec/examples/models/class_based/invalid_2.rb +1 -1
  96. data/spec/examples/models/class_based/valid_2.rb +1 -0
  97. data/spec/gem_plugins/plugin_manager_spec.rb +1 -1
  98. data/spec/logger/logger_spec.rb +1 -1
  99. data/spec/models/base_model_spec.rb +22 -22
  100. data/spec/models/class_based_model_spec.rb +66 -66
  101. data/spec/models/filesystem_based_model_spec.rb +28 -28
  102. data/spec/project/plan_spec.rb +1 -1
  103. data/spec/project/report_spec.rb +2 -2
  104. data/spec/project/taskjuggler_spec.rb +4 -4
  105. data/spec/spec_helper.rb +1 -3
  106. data/spec/support/rspec.rb +1 -1
  107. data/spec/version_management/library_builder_spec.rb +2 -2
  108. data/spec/version_management/ruby_library_spec.rb +2 -2
  109. data/spec/version_management/rubygem_version_file_parser_spec.rb +8 -8
  110. data/spec/version_management/rubygem_version_file_spec.rb +8 -8
  111. data/spec/version_management/software_version_spec.rb +1 -1
  112. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f4527fb22b611d0a2eafdeeacda0ddbb8bbeabc
4
- data.tar.gz: a6d760bbd9ecc7902e6d3bfe440b2be42ca56908
3
+ metadata.gz: e0e131c91284b360c65ea622094b771f1dd4ffef
4
+ data.tar.gz: 60c302269d7ac280cb6be8369e5408aa78b3caf6
5
5
  SHA512:
6
- metadata.gz: b3a96b663ce768db511aba23fc39c3eb213e9f9990683cca6e78b9b64a7033f89024efe5cf896c6e97b10251d9342e0f7909065b5135e48d2e16f5cf53cfe63d
7
- data.tar.gz: cb67a095ea80acd945da543c6b289389a416ca0f2e556f6a9d89f68c9660b7a825ea960ca743e06bf56f4de492009344affd7ac4c87e77a3ef39f3422c6456f8
6
+ metadata.gz: 440e5a6eb063a5348a4f4f60fdb5854abb1a0e27c52bfe6e409c428c910e702706b8ea30ed0cd33dfdff8b4f483856068190556b9fe9aeeb2b2a301dfef65bcf
7
+ data.tar.gz: ba554cb16232d30f1f0c42d93a643267342089b67ee084470062b31076a4f84095ec2a5c5e179a78438e05e1400f6c33fdccb930accef6637cb79cde83f9d4fa
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ inherit_from:
2
+ - config/rubocop/exclude.yml
3
+ - config/rubocop/include.yml
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # use gem spec
3
+ # use gem spec
4
4
  gemspec
5
5
 
6
6
  group :development, :test do
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fedux_org-stdlib (0.7.20)
4
+ fedux_org-stdlib (0.7.21)
5
5
  activesupport
6
6
 
7
7
  PATH
@@ -30,12 +30,15 @@ GEM
30
30
  cucumber (>= 1.1.1)
31
31
  rspec-expectations (>= 2.7.0)
32
32
  ast (2.0.0)
33
+ astrolabe (1.3.0)
34
+ parser (>= 2.2.0.pre.3, < 3.0)
33
35
  awesome_print (1.2.0)
34
36
  blockenspiel (0.4.5)
35
37
  builder (3.2.2)
36
- byebug (2.7.0)
37
- columnize (~> 0.3)
38
+ byebug (3.4.0)
39
+ columnize (~> 0.8)
38
40
  debugger-linecache (~> 1.2)
41
+ slop (~> 3.6)
39
42
  childprocess (0.5.3)
40
43
  ffi (~> 1.0, >= 1.0.11)
41
44
  coderay (1.1.0)
@@ -60,7 +63,7 @@ GEM
60
63
  diff-lcs (1.2.5)
61
64
  docile (1.1.5)
62
65
  erubis (2.7.0)
63
- facter (2.1.0)
66
+ facter (2.2.0)
64
67
  CFPropertyList (~> 2.2.6)
65
68
  ffi (1.9.3)
66
69
  filegen (0.4.3)
@@ -81,7 +84,7 @@ GEM
81
84
  mime-types (>= 1.16, < 3)
82
85
  method_source (0.8.2)
83
86
  mime-types (2.3)
84
- minitest (5.4.0)
87
+ minitest (5.4.1)
85
88
  multi_json (1.10.1)
86
89
  multi_test (0.1.1)
87
90
  netrc (0.7.7)
@@ -94,8 +97,8 @@ GEM
94
97
  coderay (~> 1.1.0)
95
98
  method_source (~> 0.8.1)
96
99
  slop (~> 3.4)
97
- pry-byebug (1.3.3)
98
- byebug (~> 2.7)
100
+ pry-byebug (2.0.0)
101
+ byebug (~> 3.4)
99
102
  pry (~> 0.10)
100
103
  pry-doc (0.6.0)
101
104
  pry (~> 0.9)
@@ -106,22 +109,23 @@ GEM
106
109
  rest-client (1.7.2)
107
110
  mime-types (>= 1.16, < 3.0)
108
111
  netrc (~> 0.7)
109
- rspec (3.0.0)
110
- rspec-core (~> 3.0.0)
111
- rspec-expectations (~> 3.0.0)
112
- rspec-mocks (~> 3.0.0)
113
- rspec-core (3.0.4)
114
- rspec-support (~> 3.0.0)
115
- rspec-expectations (3.0.4)
112
+ rspec (3.1.0)
113
+ rspec-core (~> 3.1.0)
114
+ rspec-expectations (~> 3.1.0)
115
+ rspec-mocks (~> 3.1.0)
116
+ rspec-core (3.1.2)
117
+ rspec-support (~> 3.1.0)
118
+ rspec-expectations (3.1.0)
116
119
  diff-lcs (>= 1.2.0, < 2.0)
117
- rspec-support (~> 3.0.0)
120
+ rspec-support (~> 3.1.0)
118
121
  rspec-legacy_formatters (1.0.0)
119
122
  rspec-core (>= 3.0.0.beta2)
120
123
  rspec-support (>= 3.0.0.beta2)
121
- rspec-mocks (3.0.4)
122
- rspec-support (~> 3.0.0)
123
- rspec-support (3.0.4)
124
- rubocop (0.25.0)
124
+ rspec-mocks (3.1.0)
125
+ rspec-support (~> 3.1.0)
126
+ rspec-support (3.1.0)
127
+ rubocop (0.26.0)
128
+ astrolabe (~> 1.3)
125
129
  parser (>= 2.2.0.pre.4, < 3.0)
126
130
  powerpack (~> 0.0.6)
127
131
  rainbow (>= 1.99.1, < 3.0)
data/Rakefile CHANGED
@@ -8,3 +8,19 @@ desc 'Show help for rake'
8
8
  task :default do
9
9
  sh 'bundle exec rake -T'
10
10
  end
11
+
12
+ desc 'Run test suite'
13
+ task test: ['test:rubocop', 'test:rspec']
14
+
15
+ namespace :test do
16
+ desc 'Test with coveralls'
17
+ task coveralls: ['test', 'coveralls:push']
18
+
19
+ require 'rubocop/rake_task'
20
+ RuboCop::RakeTask.new
21
+
22
+ desc 'Run rspec'
23
+ task :rspec do
24
+ sh 'bundle exec rspec'
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ AllCops:
2
+ Exclude:
3
+ - spec/examples/**/*.rb
4
+
5
+ # Offense count: 230
6
+ # Configuration parameters: AllowURI.
7
+ Metrics/LineLength:
8
+ Max: 331
9
+ Enabled: false
10
+
11
+ ## Offense count: 55
12
+ Style/Documentation:
13
+ Exclude:
14
+ - spec/**/*.rb
15
+ - fixtures/**/*.rb
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: CountComments.
19
+ Metrics/ClassLength:
20
+ Max: 136
21
+
22
+ # Offense count: 5
23
+ Metrics/CyclomaticComplexity:
24
+ Max: 14
25
+
26
+ # Offense count: 19
27
+ # Configuration parameters: CountComments.
28
+ Metrics/MethodLength:
29
+ Max: 38
30
+
31
+ # Offense count: 1
32
+ # Configuration parameters: CountKeywordArgs.
33
+ Metrics/ParameterLists:
34
+ Max: 7
35
+
36
+ # Offense count: 3
37
+ Metrics/PerceivedComplexity:
38
+ Max: 14
39
+
40
+ ## Offense count: 1
41
+ ## Cop supports --auto-correct.
42
+ ## Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, Whitelist.
43
+ #Style/TrivialAccessors:
44
+ # Enabled: false
File without changes
@@ -4,17 +4,17 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'fedux_org_stdlib/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "fedux_org-stdlib"
7
+ spec.name = 'fedux_org-stdlib'
8
8
  spec.version = FeduxOrgStdlib::VERSION
9
- spec.authors = ["Max Meyer"]
10
- spec.email = ["dev@fedux.org"]
11
- spec.summary = %q{Collection of useful libraries. It maybe depend on external libraries.}
12
- spec.homepage = ""
13
- spec.license = "MIT"
9
+ spec.authors = ['Max Meyer']
10
+ spec.email = ['dev@fedux.org']
11
+ spec.summary = 'Collection of useful libraries. It maybe depend on external libraries.'
12
+ spec.homepage = ''
13
+ spec.license = 'MIT'
14
14
 
15
- spec.files = `git ls-files`.split($/)
16
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
16
+ spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(/^(test|spec|features)\//)
18
18
  spec.require_paths = ['lib']
19
19
 
20
20
  spec.required_ruby_version = '>= 2.1.0'
@@ -3,19 +3,19 @@ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "fedux_org_stdlib-fixtures-plugin_manager-plugin-load"
6
+ spec.name = 'fedux_org_stdlib-fixtures-plugin_manager-plugin-load'
7
7
  spec.version = '0.0.1'
8
- spec.authors = ["Blub"]
9
- spec.email = ["email@example.com"]
10
- spec.summary = %q{Summary}
11
- spec.homepage = ""
12
- spec.license = "MIT"
8
+ spec.authors = ['Blub']
9
+ spec.email = ['email@example.com']
10
+ spec.summary = 'Summary'
11
+ spec.homepage = ''
12
+ spec.license = 'MIT'
13
13
 
14
14
  spec.files = `git ls-files -z`.split("\x0")
15
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
- spec.require_paths = ["lib"]
15
+ spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(/^(test|spec|features)\//)
17
+ spec.require_paths = ['lib']
18
18
 
19
- spec.add_development_dependency "bundler", "~> 1.6"
20
- spec.add_development_dependency "rake", "~> 10.0"
19
+ spec.add_development_dependency 'bundler', '~> 1.6'
20
+ spec.add_development_dependency 'rake', '~> 10.0'
21
21
  end
@@ -3,19 +3,19 @@ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "fedux_org_stdlib-fixtures-plugin_manager-plugin-no_load"
6
+ spec.name = 'fedux_org_stdlib-fixtures-plugin_manager-plugin-no_load'
7
7
  spec.version = '0.0.1'
8
- spec.authors = ["blub"]
9
- spec.email = ["example@email.com"]
10
- spec.summary = %q{Summary}
11
- spec.homepage = ""
12
- spec.license = "MIT"
8
+ spec.authors = ['blub']
9
+ spec.email = ['example@email.com']
10
+ spec.summary = 'Summary'
11
+ spec.homepage = ''
12
+ spec.license = 'MIT'
13
13
 
14
14
  spec.files = `git ls-files -z`.split("\x0")
15
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
- spec.require_paths = ["lib"]
15
+ spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(/^(test|spec|features)\//)
17
+ spec.require_paths = ['lib']
18
18
 
19
- spec.add_development_dependency "bundler", "~> 1.6"
20
- spec.add_development_dependency "rake", "~> 10.0"
19
+ spec.add_development_dependency 'bundler', '~> 1.6'
20
+ spec.add_development_dependency 'rake', '~> 10.0'
21
21
  end
@@ -6,8 +6,9 @@ require 'fedux_org_stdlib/logic_converters'
6
6
  require 'fedux_org_stdlib/models'
7
7
  require 'fedux_org_stdlib/version'
8
8
 
9
+ # Main
9
10
  module FeduxOrgStdlib
10
11
  def self.root_directory
11
- File.expand_path( '../../..', __FILE__ )
12
+ File.expand_path('../../..', __FILE__)
12
13
  end
13
14
  end
@@ -5,7 +5,7 @@ require 'fedux_org_stdlib/process_environment'
5
5
  require 'fedux_org_stdlib/core_ext/array/list'
6
6
  require 'fedux_org_stdlib/core_ext/hash/list'
7
7
  require 'fedux_org_stdlib/logging/logger'
8
- require_library %w{ json psych active_support/core_ext/string/inflections set active_support/core_ext/hash/slice active_support/core_ext/object/blank active_support/core_ext/hash/keys}
8
+ require_library %w(json psych active_support/core_ext/string/inflections set active_support/core_ext/hash/slice active_support/core_ext/object/blank active_support/core_ext/hash/keys)
9
9
 
10
10
  module FeduxOrgStdlib
11
11
  # This class makes a config file available as an object. The config file
@@ -31,7 +31,7 @@ module FeduxOrgStdlib
31
31
  # off, e.g "ClientConfig" becomes "clients.yaml" (mind the pluralized name)
32
32
  #
33
33
  # Most conventions defined by me are implemented as separate methods. If one convention
34
- # is not suitable for your use case, just overwrite the method.
34
+ # is not suitable for your use case, just overwrite the method.
35
35
  #
36
36
  # If you prefer to use a different path to the config file or name of the
37
37
  # config file one of the following methods needs to be overwritten:
@@ -70,7 +70,6 @@ module FeduxOrgStdlib
70
70
  # option1: 'data2'
71
71
  class AppConfig
72
72
  class << self
73
-
74
73
  # @api private
75
74
  def known_options
76
75
  @options ||= Set.new
@@ -104,7 +103,7 @@ module FeduxOrgStdlib
104
103
  _config.fetch(option, default_value)
105
104
  end
106
105
 
107
- self.known_options << option
106
+ known_options << option
108
107
  end
109
108
 
110
109
  # Define a writer for option
@@ -131,7 +130,7 @@ module FeduxOrgStdlib
131
130
  end
132
131
  end
133
132
 
134
- self.known_options << option
133
+ known_options << option
135
134
  end
136
135
 
137
136
  # Define a writer and a reader for option
@@ -150,9 +149,11 @@ module FeduxOrgStdlib
150
149
  private
151
150
 
152
151
  # Holds the config
152
+ # rubocop:disable Style/TrivialAccessors
153
153
  def _config
154
154
  @__config
155
155
  end
156
+ # rubocop:enable Style/TrivialAccessors
156
157
 
157
158
  public
158
159
 
@@ -178,9 +179,9 @@ module FeduxOrgStdlib
178
179
  # @return [AppConfig]
179
180
  # The config instance. If the resulting data structure created by the
180
181
  # config_engine does not respond to `:[]` an empty config object will be
181
- # created.
182
+ # created.
182
183
  def initialize(
183
- file: _available_config_file,
184
+ file: _available_config_file,
184
185
  config_engine: Psych,
185
186
  logger: FeduxOrgStdlib::Logging::Logger.new,
186
187
  check_unknown_options: true
@@ -188,24 +189,24 @@ module FeduxOrgStdlib
188
189
  @logger = logger
189
190
 
190
191
  unless file
191
- logger.debug "No configuration file found at #{_allowed_config_file_paths.to_list}, therefor I'm going to use an empty config object instead."
192
+ logger.debug "No configuration file found at #{_allowed_config_file_paths.to_list}, therefor I'm going to use an empty config object instead."
192
193
  @__config = {}
193
194
 
194
- return
195
+ return
195
196
  end
196
197
 
197
198
  begin
198
- yaml = Psych.safe_load(File.read(file), [Symbol])
199
+ yaml = config_engine.safe_load(File.read(file), [Symbol])
199
200
  rescue StandardError => e
200
- fail Exceptions::ConfigFileNotReadable, JSON.dump(message: e.message, file: file)
201
+ raise Exceptions::ConfigFileNotReadable, JSON.dump(message: e.message, file: file)
201
202
  end
202
203
 
203
204
  if yaml.blank?
204
205
  @__config = {}
205
- elsif yaml.kind_of? Hash
206
+ elsif yaml.is_a? Hash
206
207
  yaml = yaml.deep_symbolize_keys
207
208
 
208
- yaml_withknown_options = yaml.deep_symbolize_keys.slice(*self.known_options)
209
+ yaml_withknown_options = yaml.deep_symbolize_keys.slice(*known_options)
209
210
  unknown_options = yaml.keys - yaml_withknown_options.keys
210
211
 
211
212
  logger.warn "Unknown config options #{(unknown_options).to_list} in config file #{file} detected. Please define them in your config class or remove the entries in your config file or disable check via `check_unknown_options: false` to get rid of this warning." unless unknown_options.blank? && check_unknown_options == true
@@ -233,11 +234,11 @@ module FeduxOrgStdlib
233
234
  # An formatted version of the configuration
234
235
  def to_s
235
236
  # header 'length' = 6 letters
236
- length = self.class.known_options.inject(6) { |memo, o| o.size > memo ? o.size : memo }
237
+ length = self.class.known_options.reduce(6) { |a, e| e.size > a ? e.size : a }
237
238
 
238
239
  result = []
239
- result << sprintf("%#{length}s | %s", 'option', 'value')
240
- result << sprintf("%s + %s", '-' * length, '-' * 80)
240
+ result << format("%#{length}s | %s", 'option', 'value')
241
+ result << format('%s + %s', '-' * length, '-' * 80)
241
242
 
242
243
  self.class.known_options.each do |o|
243
244
  value = public_send(o)
@@ -252,7 +253,7 @@ module FeduxOrgStdlib
252
253
  Array(value)
253
254
  end
254
255
 
255
- result << sprintf("%#{length}s | %s", o, value.to_list)
256
+ result << format("%#{length}s | %s", o, value.to_list)
256
257
  end
257
258
 
258
259
  result.join("\n")
@@ -300,7 +301,7 @@ module FeduxOrgStdlib
300
301
  unless (name = _class_name.sub(/Config/, '').underscore.pluralize).blank?
301
302
  return name
302
303
  end
303
-
304
+
304
305
  fail Exceptions::ClassNameIsMissing, JSON.dump(klass: _class_name)
305
306
  end
306
307
 
@@ -346,13 +347,13 @@ module FeduxOrgStdlib
346
347
  end
347
348
 
348
349
  def _available_config_file
349
- _allowed_config_file_paths.find { |f| ::File.exists? f }
350
+ _allowed_config_file_paths.find { |f| ::File.exist? f }
350
351
  end
351
352
 
352
353
  def self._reserved_key_words
353
- (methods | instance_methods | private_methods | private_instance_methods ) - (Class.methods | Class.private_methods ) | [:to_s]
354
+ (methods | instance_methods | private_methods | private_instance_methods) - (Class.methods | Class.private_methods) | [:to_s]
354
355
  end
355
-
356
+
356
357
  def method_missing(*args, &block)
357
358
  $stderr.puts "Please check if you have defined an option for #{args.first}."
358
359
 
@@ -1,17 +1,23 @@
1
1
  # encoding: utf-8
2
2
  module FeduxOrgStdlib
3
3
  module Colors
4
+ # HTML color
5
+ #
6
+ # Helps you to check if given string is a valid html color
4
7
  class HtmlColor
5
8
  # @param [String] color
6
9
  # string in the html color format
7
- def initialize( color )
8
- @color = color
10
+ def initialize(color)
11
+ @color = color
9
12
  @validator_regex = /^#[a-f0-9]{6}$/
10
13
  end
11
14
 
15
+ # Is color valid?
12
16
  # @return [true,false] color string is valid
13
17
  def valid?
18
+ # rubocop:disable Style/CaseEquality
14
19
  @validator_regex === @color
20
+ # rubocop:enable Style/CaseEquality
15
21
  end
16
22
  end
17
23
  end