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
@@ -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