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
@@ -5,7 +5,7 @@ module FeduxOrgStdlib
5
5
  # Raise if path with '..' given
6
6
  class InvalidPath < Exception; end
7
7
 
8
- #Raised if library is not used correctly
8
+ # Raised if library is not used correctly
9
9
  class InvalidUsageOfLibrary < Exception; end
10
10
  end
11
11
  end
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module FeduxOrgStdlib
3
+ # Errors for gem plugins
3
4
  module GemPlugins
4
5
  end
5
6
  end
@@ -3,7 +3,6 @@ module FeduxOrgStdlib
3
3
  module GemPlugins
4
4
  # Placeholder when no associated gem found, displays warning
5
5
  class NoPlugin
6
-
7
6
  private
8
7
 
9
8
  attr_reader :name
@@ -19,7 +18,7 @@ module FeduxOrgStdlib
19
18
  true
20
19
  end
21
20
 
22
- def method_missing(*args)
21
+ def method_missing(*_args)
23
22
  warn "Warning: The plugin '#{name}' was not found! (no gem found)"
24
23
  end
25
24
  end
@@ -1,18 +1,19 @@
1
1
  # encoding: utf-8
2
2
  require 'fedux_org_stdlib/require_files'
3
3
  require 'fedux_org_stdlib/core_ext/array/list'
4
- require_library %w{ active_support/core_ext/object/blank }
4
+ require_library %w(active_support/core_ext/object/blank)
5
5
 
6
6
  module FeduxOrgStdlib
7
7
  module GemPlugins
8
+ # Plugin
8
9
  class Plugin
9
10
  include Comparable
10
11
 
11
12
  private
12
13
 
13
14
  attr_accessor :enabled, :active
14
- attr_writer :gem_name
15
- attr_reader :prefix
15
+ attr_writer :gem_name
16
+ attr_reader :prefix
16
17
 
17
18
  public
18
19
 
@@ -42,14 +43,13 @@ module FeduxOrgStdlib
42
43
  # disabled)
43
44
  # Does not reload plugin if it's already active.
44
45
  def activate
45
-
46
46
  variants = []
47
47
  variants << gem_name
48
48
  variants << gem_name.gsub(/-/, '/')
49
49
  variants << prefix.source.sub(/-$/, '') if prefix
50
50
 
51
- begin
52
- if !active?
51
+ begin
52
+ unless active?
53
53
  begin
54
54
  required_file = variants.shift
55
55
  require required_file
@@ -63,7 +63,6 @@ module FeduxOrgStdlib
63
63
  # YourApplication.load_plugins
64
64
  #
65
65
  class PluginManager
66
-
67
66
  private
68
67
 
69
68
  attr_reader :plugins, :prefix, :whitelist, :blacklist
@@ -99,12 +98,12 @@ module FeduxOrgStdlib
99
98
 
100
99
  # Require all enabled plugins, disabled plugins are skipped.
101
100
  def load_plugins
102
- each_enabled_plugin { |p| p.activate }
101
+ each_enabled_plugin(&:activate)
103
102
  end
104
103
 
105
104
  # String representation
106
105
  def to_s
107
- data = plugins.sort.inject([]) { |a, e| a << {name: e.name, enabled: e.enabled?, gem_name: e.gem_name, required_file: e.required_file} }
106
+ data = plugins.sort.reduce([]) { |a, e| a << { name: e.name, enabled: e.enabled?, gem_name: e.gem_name, required_file: e.required_file } }
108
107
 
109
108
  List.new(data).to_s(
110
109
  fields: [:name, :gem_name, :enabled, :required_file]
@@ -114,7 +113,7 @@ module FeduxOrgStdlib
114
113
  private
115
114
 
116
115
  def each_enabled_plugin(&block)
117
- plugins.find_all { |p| p.enabled? }.each(&block)
116
+ plugins.select(&:enabled?).each(&block)
118
117
  end
119
118
 
120
119
  # Find all installed plugins and store them in an internal array.
@@ -136,12 +135,12 @@ module FeduxOrgStdlib
136
135
  else
137
136
  true
138
137
  end
139
-
138
+
140
139
  plgs << Plugin.new(
141
140
  name,
142
- gem_name: gem.name,
141
+ gem_name: gem.name,
143
142
  enabled: enabled,
144
- prefix: prefix,
143
+ prefix: prefix
145
144
  )
146
145
  end
147
146
 
@@ -3,8 +3,24 @@ require 'fedux_org_stdlib/require_files'
3
3
  require_library %w( hirb )
4
4
 
5
5
  module FeduxOrgStdlib
6
+ # A list
7
+ #
8
+ # @example Usage
9
+ #
10
+ # data = [
11
+ # {
12
+ # item1: 'data1',
13
+ # item2: 'data2'
14
+ # },
15
+ # {
16
+ # item1: 'data1',
17
+ # item2: 'data2'
18
+ # },
19
+ # ]
20
+ #
21
+ # list = List.new(data)
22
+ # puts list
6
23
  class List
7
-
8
24
  private
9
25
 
10
26
  attr_reader :data
@@ -16,11 +32,17 @@ module FeduxOrgStdlib
16
32
  end
17
33
 
18
34
  # Render data to table
35
+ #
36
+ # @param [Hash] options
37
+ # Options which are supported by Hirb
19
38
  def to_s(**options)
20
- Hirb::Helpers::Table.render data, header_filter: proc { |h| h.humanize }, **options
39
+ Hirb::Helpers::Table.render data, header_filter: proc(&:humanize), **options
21
40
  end
22
41
 
23
42
  # Data as array
43
+ #
44
+ # @return [Array]
45
+ # The data as array
24
46
  def to_a
25
47
  Array(data)
26
48
  end
@@ -1,12 +1,13 @@
1
1
  # encoding: utf-8
2
2
  require 'fedux_org_stdlib/logging/logger'
3
3
 
4
+ # Main
4
5
  module FeduxOrgStdlib
5
6
  def self.logger
6
7
  @logger ||= FeduxOrgStdlib::Logging::Logger.new
7
8
  end
8
9
 
9
- def self.logger=(logger)
10
- @logger = logger
10
+ class << self
11
+ attr_writer :logger
11
12
  end
12
13
  end
@@ -1,13 +1,13 @@
1
1
  # encoding: utf-8
2
2
  require 'fedux_org_stdlib/require_files'
3
- require_library %w{ logger forwardable }
3
+ require_library %w(logger forwardable)
4
4
 
5
5
  require 'fedux_org_stdlib/logging/severity'
6
6
 
7
7
  module FeduxOrgStdlib
8
8
  module Logging
9
+ # The logger
9
10
  class Logger
10
-
11
11
  extend ::Forwardable
12
12
  def_delegators :@logger, :fatal, :warn, :debug, :info, :error, :unknown
13
13
 
@@ -17,14 +17,14 @@ module FeduxOrgStdlib
17
17
  #
18
18
  # @param [Logger] logger (::Logger.new( $stderr ))
19
19
  # The logger with should be used to output data
20
- def initialize(logger = ::Logger.new( $stderr ) )
20
+ def initialize(logger = ::Logger.new($stderr))
21
21
  @logger = logger
22
22
  self.mode = :info
23
23
  end
24
24
 
25
25
  # Reset logger to ruby logger
26
26
  def reset
27
- @logger = ::Logger.new( $stderr )
27
+ @logger = ::Logger.new($stderr)
28
28
  end
29
29
 
30
30
  # Change mode of logger: DEBUG, ... + Change the output format
@@ -52,14 +52,14 @@ module FeduxOrgStdlib
52
52
  private
53
53
 
54
54
  def format_debug
55
- @logger.formatter = proc { |severity, datetime, progname , msg|
56
- debug_msg("%s %s %s: %s\n" % [ datetime, severity, progname, msg ])
55
+ @logger.formatter = proc { |severity, datetime, progname, msg|
56
+ debug_msg(format("%s %s %s: %s\n", datetime, severity, progname, msg))
57
57
  }
58
58
  end
59
59
 
60
60
  def format_standard
61
61
  @logger.formatter = proc { |severity, datetime, _, msg|
62
- info_msg( "%s %s: %s\n" % [ datetime, severity, msg ] )
62
+ info_msg(format("%s %s: %s\n", datetime, severity, msg))
63
63
  }
64
64
  end
65
65
 
@@ -1,4 +1,7 @@
1
1
  # encoding: utf-8
2
+ # Ruby Logger-class
3
+ # rubocop:disable Style/ClassAndModuleChildren:
2
4
  class ::Logger
5
+ # rubocop:enable Style/ClassAndModuleChildren:
3
6
  SILENT = 9999 unless defined? SILENT
4
7
  end
@@ -6,6 +6,7 @@ require 'fedux_org_stdlib/logic_converters/true_false_converter'
6
6
  require 'fedux_org_stdlib/logic_converters/yes_no_converter'
7
7
 
8
8
  module FeduxOrgStdlib
9
+ # Logic converters
9
10
  module LogicConverters
10
11
  end
11
12
  end
@@ -3,9 +3,9 @@ module FeduxOrg
3
3
  module Stdlib
4
4
  module LogicConverters
5
5
  module Exceptions
6
- #raised if invalid value was provided for conversion
6
+ # raised if invalid value was provided for conversion
7
7
  class InvalidValue < Exception; end
8
- #raised if invalid value was provided for conversion
8
+ # raised if invalid value was provided for conversion
9
9
  class InvalidType < Exception; end
10
10
  end
11
11
  end
@@ -8,22 +8,23 @@ require 'fedux_org_stdlib/logic_converters/y_n_converter'
8
8
 
9
9
  module FeduxOrgStdlib
10
10
  module LogicConverters
11
+ # Generic converter which passes arguments to other converters, e.g.
12
+ # true/false, yes/no, on/off, y/n-converters
11
13
  class LogicConverter
12
-
13
14
  # @param [String, Symbol] type (true_false, yes_no, on_off)
14
- # choose the type of converter which should be used
15
+ # choose the type of converter which should be used
15
16
  def initialize(type)
16
17
  @converter = case type.to_s
17
18
  when 'true_false'
18
19
  TrueFalseConverter.new
19
- when 'yes_no'
20
+ when 'yes_no'
20
21
  YesNoConverter.new
21
- when 'on_off'
22
+ when 'on_off'
22
23
  OnOffConverter.new
23
- when 'y_n'
24
+ when 'y_n'
24
25
  YNConverter.new
25
26
  else
26
- raise FeduxOrgStdlib::LogicConverters::Exceptions::InvalidType, "Unknown type \"#{type}\" for logic converter. Valid types are \"true_false\", \"yes_no\" or \"on_off\"."
27
+ fail FeduxOrgStdlib::LogicConverters::Exceptions::InvalidType, "Unknown type \"#{type}\" for logic converter. Valid types are \"true_false\", \"yes_no\" or \"on_off\"."
27
28
  end
28
29
  end
29
30
 
@@ -31,8 +32,8 @@ module FeduxOrgStdlib
31
32
  # the logic value which should be converted
32
33
  # @return [String]
33
34
  # the converted value
34
- def parse( value )
35
- @converter.parse( value )
35
+ def parse(value)
36
+ @converter.parse(value)
36
37
  end
37
38
  end
38
39
  end
@@ -2,9 +2,10 @@
2
2
  require 'fedux_org_stdlib/logic_converters/exceptions'
3
3
 
4
4
  module FeduxOrgStdlib
5
+ # Logic Converters
5
6
  module LogicConverters
7
+ # Convert on/off to true/false
6
8
  class OnOffConverter
7
-
8
9
  # @param [true,false] value
9
10
  # the logic value which should be converted
10
11
  # @return [String]
@@ -17,8 +18,8 @@ module FeduxOrgStdlib
17
18
  # @example Parse false
18
19
  # converter = FeduxOrgStdlib::LogicConverters::OnOffConverter.new
19
20
  # converter.parse( false ) # off
20
- #
21
- def parse( value )
21
+ #
22
+ def parse(value)
22
23
  case value
23
24
  when true
24
25
  'on'
@@ -27,7 +28,7 @@ module FeduxOrgStdlib
27
28
  when ''
28
29
  nil
29
30
  else
30
- raise FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
31
+ fail FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
31
32
  end
32
33
  end
33
34
  end
@@ -3,8 +3,8 @@ require 'fedux_org_stdlib/logic_converters/exceptions'
3
3
 
4
4
  module FeduxOrgStdlib
5
5
  module LogicConverters
6
+ # Convert 'true'/'false' to true/false
6
7
  class TrueFalseConverter
7
-
8
8
  # @param [true,false] value
9
9
  # the logic value which should be converted
10
10
  # @return [String]
@@ -17,7 +17,7 @@ module FeduxOrgStdlib
17
17
  # @example Parse false
18
18
  # converter = FeduxOrgStdlib::LogicConverters::OnOffConverter.new
19
19
  # converter.parse( false ) # 'false'
20
- def parse( value )
20
+ def parse(value)
21
21
  case value
22
22
  when true
23
23
  'true'
@@ -26,7 +26,7 @@ module FeduxOrgStdlib
26
26
  when ''
27
27
  nil
28
28
  else
29
- raise FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
29
+ fail FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
30
30
  end
31
31
  end
32
32
  end
@@ -3,8 +3,8 @@ require 'fedux_org_stdlib/logic_converters/exceptions'
3
3
 
4
4
  module FeduxOrgStdlib
5
5
  module LogicConverters
6
+ # Convert y/n to true/false
6
7
  class YNConverter
7
-
8
8
  # @param [true,false] value
9
9
  # the logic value which should be converted
10
10
  # @return [String]
@@ -17,7 +17,7 @@ module FeduxOrgStdlib
17
17
  # @example Parse false
18
18
  # converter = FeduxOrgStdlib::LogicConverters::OnOffConverter.new
19
19
  # converter.parse( false ) # 'n'
20
- def parse( value )
20
+ def parse(value)
21
21
  case value
22
22
  when true
23
23
  'y'
@@ -26,7 +26,7 @@ module FeduxOrgStdlib
26
26
  when ''
27
27
  nil
28
28
  else
29
- raise FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
29
+ fail FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
30
30
  end
31
31
  end
32
32
  end
@@ -3,6 +3,7 @@ require 'fedux_org_stdlib/logic_converters/exceptions'
3
3
 
4
4
  module FeduxOrgStdlib
5
5
  module LogicConverters
6
+ # Convert yes/no to true/false
6
7
  class YesNoConverter
7
8
  # @param [true,false] value
8
9
  # the logic value which should be converted
@@ -16,8 +17,8 @@ module FeduxOrgStdlib
16
17
  # @example Parse false
17
18
  # converter = FeduxOrgStdlib::LogicConverters::OnOffConverter.new
18
19
  # converter.parse( false ) # 'no'
19
- #
20
- def parse( value )
20
+ #
21
+ def parse(value)
21
22
  case value
22
23
  when true
23
24
  'yes'
@@ -26,7 +27,7 @@ module FeduxOrgStdlib
26
27
  when ''
27
28
  nil
28
29
  else
29
- raise FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
30
+ fail FeduxOrgStdlib::LogicConverters::Exceptions::InvalidValue, "Unknown logic value \"#{value}\"."
30
31
  end
31
32
  end
32
33
  end
@@ -2,12 +2,12 @@
2
2
  require 'fedux_org_stdlib/require_files'
3
3
  require 'fedux_org_stdlib/logging'
4
4
  require 'fedux_org_stdlib/models/exceptions'
5
- require_library %w{ set }
5
+ require_library %w(set)
6
6
 
7
7
  module FeduxOrgStdlib
8
8
  module Models
9
+ # Base model
9
10
  class BaseModel
10
-
11
11
  include Comparable
12
12
 
13
13
  @instances = ::Set.new
@@ -23,13 +23,13 @@ module FeduxOrgStdlib
23
23
  @enabled = false
24
24
  end
25
25
 
26
- #enable action
26
+ # enable action
27
27
  def enable
28
28
  @enabled = true
29
29
  end
30
30
 
31
- #check if action is enabled
32
- def enabled?(val=true)
31
+ # check if action is enabled
32
+ def enabled?(val = true)
33
33
  @enabled == val
34
34
  end
35
35
 
@@ -46,11 +46,11 @@ module FeduxOrgStdlib
46
46
  end
47
47
 
48
48
  def hash
49
- name.to_s.hash
49
+ name.to_s.hash
50
50
  end
51
51
 
52
52
  class << self
53
- #attr_accessor :instances
53
+ # attr_accessor :instances
54
54
 
55
55
  def register(element)
56
56
  @instances << element
@@ -58,17 +58,17 @@ module FeduxOrgStdlib
58
58
  element
59
59
  end
60
60
 
61
- def create( *args, &block )
61
+ def create(*args, &block)
62
62
  if block_given?
63
- register( new( *args, &block ) )
63
+ register(new(*args, &block))
64
64
  else
65
- register( new( *args ) )
65
+ register(new(*args))
66
66
  end
67
67
  end
68
68
 
69
- def delete( val )
70
- element = self.find( val.to_s.to_sym )
71
- raise FeduxOrgStdlib::Exceptions::InstanceNotFound unless element
69
+ def delete(val)
70
+ element = find(val.to_s.to_sym)
71
+ fail FeduxOrgStdlib::Exceptions::InstanceNotFound unless element
72
72
  @instances.delete element
73
73
 
74
74
  element
@@ -82,8 +82,8 @@ module FeduxOrgStdlib
82
82
  @instances.to_a
83
83
  end
84
84
 
85
- #return all names as string
86
- def all_names_as_string(connector=", ")
85
+ # return all names as string
86
+ def all_names_as_string(connector = ', ')
87
87
  find_all(enabled: true).map(&:name).sort.join(connector)
88
88
  end
89
89
 
@@ -95,36 +95,35 @@ module FeduxOrgStdlib
95
95
  @instances.to_a.last
96
96
  end
97
97
 
98
- #enables a specific instance
98
+ # enables a specific instance
99
99
  def enable(name)
100
100
  find(name: name).enable
101
- rescue NoMethodError => e
101
+ rescue NoMethodError
102
102
  raise FeduxOrgStdlib::Models::Exceptions::InvalidSearchCriteria, "Sorry I'm not able to enable \"#{name}\". You need to create an instance with name \"#{name}\" first."
103
103
  end
104
104
 
105
- #finds a single instance
105
+ # finds a single instance
106
106
  def find(criteria = {})
107
107
  find_all(criteria).first
108
108
  end
109
109
 
110
- #finds all instances
110
+ # finds all instances
111
111
  def find_all(criteria = {})
112
112
  FeduxOrgStdlib.logger.debug(self) { "Criteria for search: #{ criteria }" }
113
- criteria = { name: criteria.to_sym } if criteria.kind_of? Symbol or criteria.kind_of? String
113
+ criteria = { name: criteria.to_sym } if criteria.is_a?(Symbol) || criteria.is_a?(String)
114
114
 
115
- FeduxOrgStdlib.logger.debug(self) { "Instances to be searched for: #{ @instances.map { |i| "#{i.name} (#{i.class})" }.join(", ") }" }
116
- @instances.find_all do |i|
117
- criteria.all? do |c,v|
115
+ FeduxOrgStdlib.logger.debug(self) { "Instances to be searched for: #{ @instances.map { |i| "#{i.name} (#{i.class})" }.join(', ') }" }
116
+ @instances.select do |i|
117
+ criteria.all? do |c, v|
118
118
 
119
119
  FeduxOrgStdlib.logger.debug(self) { "Check method for search: #{ c }" }
120
- i.send( "#{c}?".to_sym , v )
120
+ i.send("#{c}?".to_sym, v)
121
121
  end
122
122
  end
123
123
  rescue NameError => e
124
124
  raise FeduxOrgStdlib::Models::Exceptions::InvalidSearchCriteria, e.message
125
125
  end
126
126
  end
127
-
128
127
  end
129
128
  end
130
129
  end