fedux_org-stdlib 0.7.21 → 0.7.22

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.
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
@@ -18,7 +18,7 @@ module FeduxOrgStdlib
18
18
  # @param [Array] sub_tasks
19
19
  # A list of sub tasks, e.g. 'namespace1:task1', 'task2'
20
20
  def initialize(
21
- sub_tasks:,
21
+ sub_tasks:,
22
22
  **args
23
23
  )
24
24
  super(**args)
@@ -27,7 +27,7 @@ module FeduxOrgStdlib
27
27
  end
28
28
 
29
29
  # @private
30
- def run_task(verbose)
30
+ def run_task(_verbose)
31
31
  sub_tasks.each { |t| ::Rake::Task[t].invoke }
32
32
  end
33
33
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'fedux_org_stdlib/require_files'
3
- require_library %w{ json rake rake/tasklib shellwords active_support/core_ext/object/blank active_support/core_ext/string/inflections}
3
+ require_library %w(json rake rake/tasklib shellwords active_support/core_ext/object/blank active_support/core_ext/string/inflections)
4
4
 
5
5
  require 'fedux_org_stdlib/rake/exceptions'
6
6
  require 'fedux_org_stdlib/logging/logger'
@@ -59,7 +59,7 @@ module FeduxOrgStdlib
59
59
  # @param [Array] dependencies
60
60
  # An array of other tasks this task depends on.
61
61
  #
62
- # @yield
62
+ # @yield
63
63
  # A block which is called before the "run_task"-method is called. The
64
64
  # parameters it taskes depends on the number of parameters the block
65
65
  # can take. If the block is defined which two parameters, it takes two
@@ -81,8 +81,9 @@ module FeduxOrgStdlib
81
81
  @logger = FeduxOrgStdlib::Logging::Logger.new
82
82
  @working_directory = Dir.getwd
83
83
  @activate_ci_mode = activate_ci_mode
84
+ @define_in_ci_mode = define_in_ci_mode
84
85
 
85
- if dependencies.blank?
86
+ if dependencies.blank?
86
87
  @name = name
87
88
  else
88
89
  @name = {
@@ -93,7 +94,7 @@ module FeduxOrgStdlib
93
94
  after_initialize
94
95
 
95
96
  define_task unless running_in_ci_mode?
96
- define_task if define_in_ci_mode? and running_in_ci_mode?
97
+ define_task if define_in_ci_mode? && running_in_ci_mode?
97
98
  end
98
99
 
99
100
  private
@@ -124,7 +125,7 @@ module FeduxOrgStdlib
124
125
  end
125
126
 
126
127
  # Run code if task is executed
127
- def run_task(verbose); end
128
+ def run_task(_verbose); end
128
129
 
129
130
  # Should this task be defined in continous integration mode
130
131
  def define_in_ci_mode?
@@ -144,7 +145,7 @@ module FeduxOrgStdlib
144
145
  public
145
146
 
146
147
  # Binding to instance
147
- def get_binding
148
+ def instance_binding
148
149
  binding
149
150
  end
150
151
 
@@ -8,19 +8,19 @@ module FeduxOrgStdlib
8
8
  #
9
9
  # @example Create new version task for bumping the major number X.0.0
10
10
  # FeduxOrgStdlib::Rake::VersionBumpTask.new(
11
- # name: 'version:bump:major',
11
+ # name: 'version:bump:major',
12
12
  # description: 'Bump major version part'
13
13
  # ) { |t| t.bump_version :major }
14
14
  #
15
15
  # @example Create new version task for bumping the minor number 0.X.0
16
16
  # FeduxOrgStdlib::Rake::VersionBumpTask.new(
17
- # name: 'version:bump:minor',
17
+ # name: 'version:bump:minor',
18
18
  # description: 'Bump minor version part'
19
19
  # ) { |t| t.bump_version :minor }
20
20
  #
21
21
  # @example Create new version task for bumping the tiny number 0.0.X
22
22
  # FeduxOrgStdlib::Rake::VersionBumpTask.new(
23
- # name: 'version:bump:tiny',
23
+ # name: 'version:bump:tiny',
24
24
  # description: 'Bump tiny version part'
25
25
  # ) { |t| t.bump_version :tiny }
26
26
  #
@@ -31,13 +31,13 @@ module FeduxOrgStdlib
31
31
  # @private
32
32
  def bump_version(type)
33
33
  version_update do |file|
34
- file.bump(type)
34
+ file.bump(type)
35
35
  end
36
36
  end
37
37
 
38
38
  # @private
39
- def set_version(new_version)
40
- raise Exception, "You need to define a version via \"VERSION=<version>\" or \"version=<version>\"." if new_version.blank?
39
+ def version(new_version)
40
+ fail Exception, "You need to define a version via \"VERSION=<version>\" or \"version=<version>\"." if new_version.blank?
41
41
 
42
42
  begin
43
43
  version_update do |file|
@@ -58,7 +58,6 @@ module FeduxOrgStdlib
58
58
  sh "git commit -m 'Version bump to #{version}'"
59
59
  end
60
60
 
61
-
62
61
  def version_update(&block)
63
62
  file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.read(version_file)
64
63
  old_version = file.version
@@ -8,4 +8,3 @@ FeduxOrgStdlib::Rake::ShellTask.new(
8
8
  command: 'script/console',
9
9
  define_in_ci_mode: false
10
10
  )
11
-
@@ -4,7 +4,7 @@ require 'fedux_org_stdlib/ci'
4
4
 
5
5
  unless ci?
6
6
  require 'fedux_org_stdlib/require_files'
7
- require_library %w{ yard }
7
+ require_library %w(yard)
8
8
 
9
- YARD::Rake::YardocTask.new()
9
+ YARD::Rake::YardocTask.new
10
10
  end
@@ -4,6 +4,6 @@ require 'fedux_org_stdlib/ci'
4
4
 
5
5
  unless ci?
6
6
  namespace :gem do
7
- require_library %w{ bundler/gem_tasks }
7
+ require_library %w(bundler/gem_tasks)
8
8
  end
9
9
  end
@@ -4,6 +4,6 @@ require 'fedux_org_stdlib/ci'
4
4
 
5
5
  unless ci?
6
6
  namespace :gem do
7
- require_library %w{ rubygems/package_task }
7
+ require_library %w(rubygems/package_task)
8
8
  end
9
9
  end
@@ -3,8 +3,7 @@ require 'fedux_org_stdlib/rake/project_task'
3
3
 
4
4
  FeduxOrgStdlib::Rake::ProjectTask.new(
5
5
  name: 'project:report:generate',
6
- description: 'Generate report for project plan',
6
+ description: 'Generate report for project plan'
7
7
  ) do |t|
8
8
  t.report.generate
9
9
  end
10
-
@@ -3,8 +3,7 @@ require 'fedux_org_stdlib/rake/project_task'
3
3
 
4
4
  FeduxOrgStdlib::Rake::ProjectTask.new(
5
5
  name: 'project:report:open',
6
- description: 'Open generated report for project plan',
6
+ description: 'Open generated report for project plan'
7
7
  ) do |t|
8
8
  t.report.open
9
9
  end
10
-
@@ -5,5 +5,5 @@ require 'fedux_org_stdlib/rake_tasks/project/report/open'
5
5
  FeduxOrgStdlib::Rake::SubTask.new(
6
6
  name: 'project:report',
7
7
  description: 'Open report for generated project plan',
8
- sub_tasks: %w{ project:report:open },
8
+ sub_tasks: %w(project:report:open)
9
9
  )
@@ -9,5 +9,5 @@ FeduxOrgStdlib::Rake::ShellTask.new(
9
9
  description: 'Run rubocop',
10
10
  use_bundler: true,
11
11
  command: 'rubocop',
12
- define_in_ci_mode: false,
12
+ define_in_ci_mode: false
13
13
  )
@@ -9,5 +9,5 @@ FeduxOrgStdlib::Rake::ShellTask.new(
9
9
  description: 'Runs travis-lint to check .travis.yml',
10
10
  use_bundler: true,
11
11
  command: 'travis-lint',
12
- define_in_ci_mode: false,
12
+ define_in_ci_mode: false
13
13
  )
@@ -5,4 +5,4 @@ require 'fedux_org_stdlib/rake/version_bump_task'
5
5
  FeduxOrgStdlib::Rake::VersionBumpTask.new(name: 'version:bump:major', description: 'Bump major version part') { |t| t.bump_version :major }
6
6
  FeduxOrgStdlib::Rake::VersionBumpTask.new(name: 'version:bump:minor', description: 'Bump minor version part') { |t| t.bump_version :minor }
7
7
  FeduxOrgStdlib::Rake::VersionBumpTask.new(name: 'version:bump:tiny', description: 'Bump tiny version part') { |t| t.bump_version :tiny }
8
- FeduxOrgStdlib::Rake::VersionBumpTask.new(name: 'version:bump', description: 'Bump version to ENV["VERSION"] or ENV["version"]') { |t| t.set_version ENV['VERSION'] || ENV['version'] }
8
+ FeduxOrgStdlib::Rake::VersionBumpTask.new(name: 'version:bump', description: 'Bump version to ENV["VERSION"] or ENV["version"]') { |t| t.version ENV['VERSION'] || ENV['version'] }
@@ -6,6 +6,6 @@ require 'fedux_org_stdlib/rake/shell_task'
6
6
  task = FeduxOrgStdlib::Rake::ShellTask.new(
7
7
  name: 'version:restore',
8
8
  description: 'Restore version file from repository',
9
- command: "git checkout <%= version_file %>"
9
+ command: 'git checkout <%= version_file %>'
10
10
  )
11
11
  task.include FeduxOrgStdlib::Roles::Versionable
@@ -5,8 +5,7 @@ require 'fedux_org_stdlib/rake/task'
5
5
  task = FeduxOrgStdlib::Rake::Task.new(
6
6
  name: 'version:show',
7
7
  description: 'Show version'
8
- ) do |t|
9
- $stderr.puts FeduxOrgStdlib::VersionManagement::RubygemVersionFile.read(version_file).version
8
+ ) do |_t|
9
+ $stderr.puts FeduxOrgStdlib::VersionManagement::RubygemVersionFile.read(version_file).version
10
10
  end
11
11
  task.include FeduxOrgStdlib::Roles::Versionable
12
-
@@ -5,5 +5,5 @@ require 'fedux_org_stdlib/rake_tasks/software_version/show'
5
5
  FeduxOrgStdlib::Rake::SubTask.new(
6
6
  name: 'version',
7
7
  description: 'Show version',
8
- sub_tasks: %w{ version:show }
8
+ sub_tasks: %w(version:show)
9
9
  )
@@ -10,4 +10,3 @@ FeduxOrgStdlib::Rake::ShellTask.new(
10
10
  use_bundler: true,
11
11
  command: 'cucumber -p all'
12
12
  )
13
-
@@ -6,6 +6,6 @@ require 'fedux_org_stdlib/rake_tasks/test/cucumber'
6
6
  FeduxOrgStdlib::Rake::SubTask.new(
7
7
  name: 'test:travis',
8
8
  description: 'Runs rspec and cucumber on travis',
9
- sub_tasks: %w{ test:rspec test:cucumber },
9
+ sub_tasks: %w(test:rspec test:cucumber),
10
10
  activate_ci_mode: true
11
11
  )
@@ -2,6 +2,7 @@
2
2
  require 'fedux_org_stdlib/core_ext/array'
3
3
 
4
4
  module FeduxOrgStdlib
5
+ # Helper
5
6
  module RequireFiles
6
7
  def require_library(libraries, message_template = 'You need to install %s to make "%s" work.')
7
8
  libraries = Array(libraries)
@@ -9,17 +10,17 @@ module FeduxOrgStdlib
9
10
  begin
10
11
  libraries.each { |l| require l }
11
12
  rescue LoadError => e
12
- $stderr.puts format(message_template, libraries.map { |l| l.split(%r{/}).first }.uniq.to_list, caller[1].split(/:/)[0,2].join(':'))
13
+ $stderr.puts format(message_template, libraries.map { |l| l.split(/\//).first }.uniq.to_list, caller[1].split(/:/)[0, 2].join(':'))
13
14
  $stderr.puts
14
15
  $stderr.puts e.message
15
- exit 1
16
+ exit 1
16
17
  end
17
18
  end
18
19
 
19
- def require_installed_gem(gems, message_template = 'You need to install %s to make "%s" work.')
20
+ def require_installed_gem(gems, _message_template = 'You need to install %s to make "%s" work.')
20
21
  gems = Array(gems)
21
22
 
22
- raise LoadError, JSON.dump(gems: gems) if gems.any? { |name| Gem::Specification.find_all_by_name(name).blank? }
23
+ fail LoadError, JSON.dump(gems: gems) if gems.any? { |name| Gem::Specification.find_all_by_name(name).blank? }
23
24
  end
24
25
  end
25
26
  end
@@ -9,7 +9,7 @@ module FeduxOrgStdlib
9
9
  # a `Pathname`.
10
10
  #
11
11
  # @example
12
- #
12
+ #
13
13
  # class MyClass
14
14
  # include FeduxOrgStdlib::Roles::Typeable
15
15
  #
@@ -32,7 +32,6 @@ module FeduxOrgStdlib
32
32
  # object.image? # => false
33
33
  # object.stylesheet? # => true
34
34
  module Typable
35
-
36
35
  def source_path
37
36
  fail NoMethodError, :source_path
38
37
  end
@@ -129,7 +128,7 @@ module FeduxOrgStdlib
129
128
  def font?
130
129
  font_by_path? || font_by_extension?
131
130
  end
132
-
131
+
133
132
  private
134
133
 
135
134
  # Is font by path?
@@ -3,14 +3,15 @@ require 'fedux_org_stdlib/rake/exceptions'
3
3
 
4
4
  module FeduxOrgStdlib
5
5
  module Roles
6
+ # Versionable
6
7
  module Versionable
7
8
  def version_file(working_directory = Dir.getwd)
8
9
  paths = []
9
10
  paths << File.join(working_directory, 'lib', '**', 'version.rb')
10
11
 
11
- file = Dir.glob(paths.shift).first while !paths.blank? and file.blank?
12
+ file = Dir.glob(paths.shift).first while !paths.blank? && file.blank?
12
13
 
13
- raise FeduxOrgStdlib::Rake::Exceptions::VersionFileNotFound, JSON.dump(message: 'Cannot find version file') unless file
14
+ fail FeduxOrgStdlib::Rake::Exceptions::VersionFileNotFound, JSON.dump(message: 'Cannot find version file') unless file
14
15
 
15
16
  file
16
17
  end
@@ -3,6 +3,25 @@ require 'fedux_org_stdlib/process_environment'
3
3
  require 'fedux_org_stdlib/shell_language_detector/language'
4
4
 
5
5
  module FeduxOrgStdlib
6
+ # Detect language of shell
7
+ #
8
+ # @example Simple Usage
9
+ #
10
+ # detector = ShellLanguageDetector.new
11
+ # lang = detector.detect
12
+ # puts lang.language_code
13
+ # puts lang.country_code
14
+ # puts lang.encoding
15
+ #
16
+ # @example Overwrite detected lang
17
+ #
18
+ # detector = ShellLanguageDetector.new
19
+ # lang = detector.detect(overwrite: [:de, :de, :utf_8]
20
+ #
21
+ # @example Allowed languages
22
+ #
23
+ # detector = ShellLanguageDetector.new
24
+ # lang = detector.detect(allowed: [:de, :en])
6
25
  class ShellLanguageDetector
7
26
  private
8
27
 
@@ -27,8 +46,8 @@ module FeduxOrgStdlib
27
46
  overwrite = Array(overwrite).map(&:to_sym)
28
47
 
29
48
  lang = environment.fetch 'LANG'
30
- language_code, country_code, encoding = lang.scan(/([^_-]+)[_-]([^.]+)\.([A-Za-z0-9_-]*)/i).flatten.map(&:downcase).map { |e| e.gsub('-', '_') }.map { |e| e.to_sym if !e.nil? }
31
- language_code, country_code, encoding = *overwrite if !overwrite.blank? && overwrite.none? { |o| o.blank? }
49
+ language_code, country_code, encoding = lang.scan(/([^_-]+)[_-]([^.]+)\.([A-Za-z0-9_-]*)/i).flatten.map(&:downcase).map { |e| e.gsub('-', '_') }.map { |e| e.to_sym unless e.nil? }
50
+ language_code, country_code, encoding = *overwrite if !overwrite.blank? && overwrite.none?(&:blank?)
32
51
 
33
52
  return Language.new(language_code: language_code, country_code: country_code, encoding: encoding) if language_code && (allowed.blank? || allowed.include?(language_code))
34
53
  Language.new(language_code: default_language_code, country_code: default_country_code, encoding: default_encoding)
@@ -1,8 +1,16 @@
1
1
  # encoding: utf-8
2
2
  module FeduxOrgStdlib
3
3
  class ShellLanguageDetector
4
+ # The detected langauge
4
5
  class Language
5
-
6
+ # @!attribute [r] language_code
7
+ # The language code, e.g de_DE.utf-8 => de
8
+ #
9
+ # @!attribute [r] country_code
10
+ # The country code, e.g de_DE.utf-8 => DE
11
+ #
12
+ # @!attribute [r] encoding
13
+ # The country code, e.g de_DE.utf-8 => utf-8
6
14
  attr_reader :language_code, :country_code, :encoding
7
15
 
8
16
  def initialize(language_code:, country_code:, encoding: nil)
@@ -1,9 +1,15 @@
1
1
  # encoding: utf-8
2
2
  require 'fedux_org_stdlib/require_files'
3
3
  require 'fedux_org_stdlib/core_ext/string/underline'
4
- require_library %w{ facter }
4
+ require_library %w(facter)
5
5
 
6
6
  module FeduxOrgStdlib
7
+ # Gather support information
8
+ #
9
+ # @example Gather information
10
+ #
11
+ # info = SupportInformation.new
12
+ # puts info
7
13
  class SupportInformation
8
14
  private
9
15
 
@@ -28,30 +34,30 @@ module FeduxOrgStdlib
28
34
 
29
35
  result << headlines.fetch(:system_information, 'System Information').underline(character: underline_character)
30
36
  result << format("%#{max_field_length}s | %s", 'Information', 'Value')
31
- result << format("%s + %s", '-' * max_field_length, '-' * 40)
32
- result.concat system_information.sort_by { |key, value| key }.map { |key, value| format("%#{max_field_length}s | %s", key, value) }
37
+ result << format('%s + %s', '-' * max_field_length, '-' * 40)
38
+ result.concat system_information.sort_by { |key, _value| key }.map { |key, value| format("%#{max_field_length}s | %s", key, value) }
33
39
 
34
- result << ""
35
- result << ""
36
- result << ""
40
+ result << ''
41
+ result << ''
42
+ result << ''
37
43
 
38
44
  max_field_length = determine_max_field_length(rubygems_information.keys)
39
45
 
40
46
  result << headlines.fetch(:rubygems_information, 'Rubygems Information').underline(character: underline_character)
41
47
  result << format("%#{max_field_length}s | %s", 'Information', 'Value')
42
- result << format("%s + %s", '-' * max_field_length, '-' * 40)
43
- result.concat rubygems_information.sort_by { |key, value| key }.map { |key, value| format("%#{max_field_length}s | %s", key, value) }
48
+ result << format('%s + %s', '-' * max_field_length, '-' * 40)
49
+ result.concat rubygems_information.sort_by { |key, _value| key }.map { |key, value| format("%#{max_field_length}s | %s", key, value) }
44
50
 
45
- result << ""
46
- result << ""
47
- result << ""
51
+ result << ''
52
+ result << ''
53
+ result << ''
48
54
 
49
55
  max_field_length = determine_max_field_length(installed_rubygems.keys)
50
56
 
51
57
  result << headlines.fetch(:installed_rubygems, 'Installed Rubygems').underline(character: underline_character)
52
58
  result << format("%#{max_field_length}s | %s", 'Name', 'version')
53
- result << format("%s + %s", '-' * max_field_length, '-' * 40)
54
- result.concat installed_rubygems.sort_by { |key, value| key }.map { |key, value| format("%#{max_field_length}s | %s", key, value) }
59
+ result << format('%s + %s', '-' * max_field_length, '-' * 40)
60
+ result.concat installed_rubygems.sort_by { |key, _value| key }.map { |key, value| format("%#{max_field_length}s | %s", key, value) }
55
61
 
56
62
  result.join "\n"
57
63
  end
@@ -76,8 +82,8 @@ module FeduxOrgStdlib
76
82
  end
77
83
 
78
84
  def system_information
79
- Timeout::timeout(10) do
80
- Facter.to_hash.keep_if { |key,_| facter_fields.include?(key.to_s) }
85
+ Timeout.timeout(10) do
86
+ Facter.to_hash.keep_if { |key, _| facter_fields.include?(key.to_s) }
81
87
  end
82
88
  rescue Timeout::Error
83
89
  logger.warn 'Getting environment information took to long. Please make sure the name resolver is available. This might cause the latency.'
@@ -85,49 +91,48 @@ module FeduxOrgStdlib
85
91
  end
86
92
 
87
93
  def determine_max_field_length(list)
88
- list.inject(0) { |memo, f| memo = f.size if f.size > memo ; memo}
94
+ list.reduce(0) { |a, e| e.size > a ? e.size : a }
89
95
  end
90
96
 
91
97
  def facter_fields
92
- %w[
93
- architecture
94
- filesystems
95
- hardwareisa
96
- hardwaremodel
97
- is_virtual
98
- kernel
99
- kernelmajversion
100
- kernelrelease
101
- kernelversion
102
- memoryfree
103
- memoryfree_mb
104
- memorysize
105
- memorysize_mb
106
- memorytotal
107
- operatingsystem
108
- operatingsystemrelease
109
- osfamily
110
- path
111
- physicalprocessorcount
112
- processor0
113
- processor1
114
- processorcount
115
- ps
116
- rubysitedir
117
- rubyversion
118
- selinux
119
- swapfree
120
- swapfree_mb
121
- swapsize
122
- swapsize_mb
123
- timezone
124
- uptime
125
- uptime_days
126
- uptime_hours
127
- uptime_seconds
128
- virtual
129
- ]
98
+ %w(
99
+ architecture
100
+ filesystems
101
+ hardwareisa
102
+ hardwaremodel
103
+ is_virtual
104
+ kernel
105
+ kernelmajversion
106
+ kernelrelease
107
+ kernelversion
108
+ memoryfree
109
+ memoryfree_mb
110
+ memorysize
111
+ memorysize_mb
112
+ memorytotal
113
+ operatingsystem
114
+ operatingsystemrelease
115
+ osfamily
116
+ path
117
+ physicalprocessorcount
118
+ processor0
119
+ processor1
120
+ processorcount
121
+ ps
122
+ rubysitedir
123
+ rubyversion
124
+ selinux
125
+ swapfree
126
+ swapfree_mb
127
+ swapsize
128
+ swapsize_mb
129
+ timezone
130
+ uptime
131
+ uptime_days
132
+ uptime_hours
133
+ uptime_seconds
134
+ virtual
135
+ )
130
136
  end
131
-
132
137
  end
133
138
  end