fedux_org-stdlib 0.3.2 → 0.6.3

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 (175) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.simplecov +7 -6
  4. data/Gemfile +33 -28
  5. data/README.md +1 -1
  6. data/Rakefile +8 -1
  7. data/doc/colors.md +2 -2
  8. data/doc/commands.md +2 -2
  9. data/doc/logic_converters.md +5 -5
  10. data/doc/models.md +5 -5
  11. data/fedux_org-stdlib.gemspec +3 -7
  12. data/lib/fedux_org_stdlib.rb +13 -0
  13. data/lib/fedux_org_stdlib/app_config.rb +247 -0
  14. data/lib/fedux_org_stdlib/ci.rb +6 -0
  15. data/lib/fedux_org_stdlib/colors/html_color.rb +18 -0
  16. data/lib/fedux_org_stdlib/command.rb +10 -0
  17. data/lib/fedux_org_stdlib/command/command_result.rb +13 -0
  18. data/lib/fedux_org_stdlib/command/run_command.rb +55 -0
  19. data/lib/fedux_org_stdlib/command/which.rb +60 -0
  20. data/lib/fedux_org_stdlib/core_ext/array.rb +6 -0
  21. data/lib/fedux_org_stdlib/core_ext/string.rb +3 -0
  22. data/lib/fedux_org_stdlib/environment.rb +32 -0
  23. data/lib/fedux_org_stdlib/filesystem.rb +248 -0
  24. data/lib/fedux_org_stdlib/filesystem/exceptions.rb +12 -0
  25. data/lib/fedux_org_stdlib/logging.rb +12 -0
  26. data/lib/fedux_org_stdlib/logging/logger.rb +79 -0
  27. data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logging/severity.rb +1 -0
  28. data/lib/fedux_org_stdlib/logic_converters.rb +11 -0
  29. data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logic_converters/exceptions.rb +1 -0
  30. data/lib/fedux_org_stdlib/logic_converters/logic_converter.rb +39 -0
  31. data/lib/fedux_org_stdlib/logic_converters/on_off_converter.rb +35 -0
  32. data/lib/fedux_org_stdlib/logic_converters/true_false_converter.rb +34 -0
  33. data/lib/fedux_org_stdlib/logic_converters/y_n_converter.rb +34 -0
  34. data/lib/fedux_org_stdlib/logic_converters/yes_no_converter.rb +34 -0
  35. data/lib/fedux_org_stdlib/models.rb +5 -0
  36. data/lib/fedux_org_stdlib/models/base_model.rb +129 -0
  37. data/lib/fedux_org_stdlib/models/class_based_model.rb +67 -0
  38. data/lib/fedux_org_stdlib/models/exceptions.rb +40 -0
  39. data/lib/fedux_org_stdlib/models/filesystem_based_model.rb +98 -0
  40. data/lib/fedux_org_stdlib/project.rb +6 -0
  41. data/lib/fedux_org_stdlib/project/generators/taskjuggler.rb +35 -0
  42. data/lib/fedux_org_stdlib/project/logger.rb +12 -0
  43. data/lib/fedux_org_stdlib/project/plan.rb +26 -0
  44. data/lib/fedux_org_stdlib/project/report.rb +63 -0
  45. data/lib/fedux_org_stdlib/rake.rb +8 -0
  46. data/lib/fedux_org_stdlib/rake/exceptions.rb +9 -0
  47. data/lib/{fedux_org/stdlib → fedux_org_stdlib}/rake/project.rb +4 -4
  48. data/lib/fedux_org_stdlib/rake/project_task.rb +29 -0
  49. data/lib/fedux_org_stdlib/rake/shell_task.rb +45 -0
  50. data/lib/fedux_org_stdlib/rake/sub_task.rb +26 -0
  51. data/lib/fedux_org_stdlib/rake/task.rb +118 -0
  52. data/lib/fedux_org_stdlib/rake/version_bump_task.rb +56 -0
  53. data/lib/fedux_org_stdlib/rake_tasks.rb +8 -0
  54. data/lib/fedux_org_stdlib/rake_tasks/console.rb +11 -0
  55. data/lib/fedux_org_stdlib/rake_tasks/documentation.rb +2 -0
  56. data/lib/fedux_org_stdlib/rake_tasks/documentation/yard.rb +9 -0
  57. data/lib/fedux_org_stdlib/rake_tasks/gems.rb +3 -0
  58. data/lib/fedux_org_stdlib/rake_tasks/gems/bundler.rb +9 -0
  59. data/lib/fedux_org_stdlib/rake_tasks/gems/package.rb +9 -0
  60. data/lib/fedux_org_stdlib/rake_tasks/project.rb +1 -0
  61. data/lib/fedux_org_stdlib/rake_tasks/project/report.rb +3 -0
  62. data/lib/fedux_org_stdlib/rake_tasks/project/report/generate.rb +10 -0
  63. data/lib/fedux_org_stdlib/rake_tasks/project/report/open.rb +12 -0
  64. data/lib/fedux_org_stdlib/rake_tasks/project/report/open_shortcut.rb +9 -0
  65. data/lib/fedux_org_stdlib/rake_tasks/qa.rb +4 -0
  66. data/lib/fedux_org_stdlib/rake_tasks/qa/rubocop.rb +13 -0
  67. data/lib/fedux_org_stdlib/rake_tasks/qa/travis.rb +13 -0
  68. data/lib/fedux_org_stdlib/rake_tasks/terminal.rb +9 -0
  69. data/lib/fedux_org_stdlib/rake_tasks/tests.rb +4 -0
  70. data/lib/fedux_org_stdlib/rake_tasks/tests/cucumber.rb +13 -0
  71. data/lib/fedux_org_stdlib/rake_tasks/tests/rspec.rb +12 -0
  72. data/lib/fedux_org_stdlib/rake_tasks/tests/travis.rb +11 -0
  73. data/lib/fedux_org_stdlib/rake_tasks/version.rb +6 -0
  74. data/lib/fedux_org_stdlib/rake_tasks/version/bump.rb +8 -0
  75. data/lib/fedux_org_stdlib/rake_tasks/version/restore.rb +11 -0
  76. data/lib/fedux_org_stdlib/rake_tasks/version/show.rb +12 -0
  77. data/lib/fedux_org_stdlib/rake_tasks/version/show_shortcut.rb +9 -0
  78. data/lib/fedux_org_stdlib/require_files.rb +27 -0
  79. data/lib/fedux_org_stdlib/version.rb +5 -0
  80. data/lib/fedux_org_stdlib/version_management/exceptions.rb +9 -0
  81. data/lib/fedux_org_stdlib/version_management/library_builder.rb +12 -0
  82. data/lib/fedux_org_stdlib/version_management/ruby_library.rb +13 -0
  83. data/lib/fedux_org_stdlib/version_management/rubygem_version_file.rb +78 -0
  84. data/lib/fedux_org_stdlib/version_management/rubygem_version_file_parser.rb +22 -0
  85. data/lib/fedux_org_stdlib/version_management/version.rb +25 -0
  86. data/lib/fedux_org_stdlib/version_management/version_builder.rb +12 -0
  87. data/lib/fedux_org_stdlib/versionable.rb +18 -0
  88. data/rakefiles/default.rake +8 -1
  89. data/rakefiles/travis.rake +1 -1
  90. data/script/console +1 -1
  91. data/script/terminal +3 -2
  92. data/spec/app_config_spec.rb +7 -0
  93. data/spec/colors/html_color_spec.rb +7 -14
  94. data/spec/command/run_command_spec.rb +9 -10
  95. data/spec/command/which_spec.rb +8 -9
  96. data/spec/environment_spec.rb +12 -11
  97. data/spec/logger/logger_spec.rb +17 -16
  98. data/spec/logic_converters/on_off_converter_spec.rb +8 -7
  99. data/spec/logic_converters/true_false_converter_spec.rb +8 -7
  100. data/spec/logic_converters/y_n_converter_spec.rb +8 -7
  101. data/spec/logic_converters/yes_no_converter_spec.rb +8 -7
  102. data/spec/models/base_model_spec.rb +7 -7
  103. data/spec/models/class_based_model_spec.rb +37 -39
  104. data/spec/models/filesystem_based_model_spec.rb +24 -24
  105. data/spec/project/plan_spec.rb +6 -5
  106. data/spec/project/report_spec.rb +35 -29
  107. data/spec/project/taskjuggler_spec.rb +13 -12
  108. data/spec/spec_helper.rb +15 -38
  109. data/spec/support/environment.rb +16 -0
  110. data/spec/support/filesystem.rb +19 -0
  111. data/spec/support/reporting.rb +2 -0
  112. data/spec/support/rspec.rb +5 -0
  113. data/spec/support/string.rb +2 -0
  114. data/spec/version_management/library_builder_spec.rb +5 -4
  115. data/spec/version_management/ruby_library_spec.rb +5 -4
  116. data/spec/version_management/rubygem_version_file_parser_spec.rb +27 -16
  117. data/spec/version_management/rubygem_version_file_spec.rb +56 -54
  118. data/spec/version_management/version_builder_spec.rb +5 -4
  119. data/spec/version_management/version_spec.rb +16 -16
  120. metadata +104 -110
  121. data/lib/fedux_org/stdlib.rb +0 -15
  122. data/lib/fedux_org/stdlib/colors/html_color.rb +0 -19
  123. data/lib/fedux_org/stdlib/command.rb +0 -11
  124. data/lib/fedux_org/stdlib/command/command_result.rb +0 -14
  125. data/lib/fedux_org/stdlib/command/run_command.rb +0 -55
  126. data/lib/fedux_org/stdlib/command/which.rb +0 -67
  127. data/lib/fedux_org/stdlib/environment.rb +0 -31
  128. data/lib/fedux_org/stdlib/filesystem.rb +0 -247
  129. data/lib/fedux_org/stdlib/filesystem/exceptions.rb +0 -13
  130. data/lib/fedux_org/stdlib/logging.rb +0 -13
  131. data/lib/fedux_org/stdlib/logging/logger.rb +0 -79
  132. data/lib/fedux_org/stdlib/logic_converters.rb +0 -12
  133. data/lib/fedux_org/stdlib/logic_converters/logic_converter.rb +0 -40
  134. data/lib/fedux_org/stdlib/logic_converters/on_off_converter.rb +0 -36
  135. data/lib/fedux_org/stdlib/logic_converters/true_false_converter.rb +0 -35
  136. data/lib/fedux_org/stdlib/logic_converters/y_n_converter.rb +0 -35
  137. data/lib/fedux_org/stdlib/logic_converters/yes_no_converter.rb +0 -35
  138. data/lib/fedux_org/stdlib/models.rb +0 -4
  139. data/lib/fedux_org/stdlib/models/base_model.rb +0 -129
  140. data/lib/fedux_org/stdlib/models/class_based_model.rb +0 -76
  141. data/lib/fedux_org/stdlib/models/exceptions.rb +0 -41
  142. data/lib/fedux_org/stdlib/models/filesystem_based_model.rb +0 -99
  143. data/lib/fedux_org/stdlib/project.rb +0 -5
  144. data/lib/fedux_org/stdlib/project/generators/taskjuggler.rb +0 -41
  145. data/lib/fedux_org/stdlib/project/logger.rb +0 -13
  146. data/lib/fedux_org/stdlib/project/plan.rb +0 -15
  147. data/lib/fedux_org/stdlib/project/report.rb +0 -67
  148. data/lib/fedux_org/stdlib/rake.rb +0 -7
  149. data/lib/fedux_org/stdlib/rake/console.rb +0 -3
  150. data/lib/fedux_org/stdlib/rake/documentation.rb +0 -1
  151. data/lib/fedux_org/stdlib/rake/documentation/yard.rb +0 -14
  152. data/lib/fedux_org/stdlib/rake/gems.rb +0 -2
  153. data/lib/fedux_org/stdlib/rake/gems/bundler.rb +0 -12
  154. data/lib/fedux_org/stdlib/rake/gems/package.rb +0 -7
  155. data/lib/fedux_org/stdlib/rake/library.rb +0 -8
  156. data/lib/fedux_org/stdlib/rake/terminal.rb +0 -9
  157. data/lib/fedux_org/stdlib/rake/tests.rb +0 -3
  158. data/lib/fedux_org/stdlib/rake/tests/cucumber.rb +0 -6
  159. data/lib/fedux_org/stdlib/rake/tests/rspec.rb +0 -6
  160. data/lib/fedux_org/stdlib/rake/tests/travis.rb +0 -15
  161. data/lib/fedux_org/stdlib/rake/travis.rb +0 -1
  162. data/lib/fedux_org/stdlib/rake/travis/lint.rb +0 -10
  163. data/lib/fedux_org/stdlib/rake/version.rb +0 -4
  164. data/lib/fedux_org/stdlib/rake/version/base.rb +0 -7
  165. data/lib/fedux_org/stdlib/rake/version/bump.rb +0 -78
  166. data/lib/fedux_org/stdlib/rake/version/restore.rb +0 -9
  167. data/lib/fedux_org/stdlib/rake/version/show.rb +0 -9
  168. data/lib/fedux_org/stdlib/rake/version/show_shortcut.rb +0 -6
  169. data/lib/fedux_org/stdlib/version.rb +0 -6
  170. data/lib/fedux_org/stdlib/version_management/library_builder.rb +0 -15
  171. data/lib/fedux_org/stdlib/version_management/ruby_library.rb +0 -14
  172. data/lib/fedux_org/stdlib/version_management/rubygem_version_file.rb +0 -90
  173. data/lib/fedux_org/stdlib/version_management/rubygem_version_file_parser.rb +0 -18
  174. data/lib/fedux_org/stdlib/version_management/version.rb +0 -33
  175. data/lib/fedux_org/stdlib/version_management/version_builder.rb +0 -15
@@ -1,67 +0,0 @@
1
- require 'pathname'
2
-
3
- begin
4
- require 'active_support/core_ext/object/blank'
5
- rescue LoadError
6
- $stderr.puts 'You need to install the "activesupport"-gem to make that rake task work.'
7
- exit 1
8
- end
9
-
10
- module FeduxOrg
11
- module Stdlib
12
- module Command
13
- module Which
14
-
15
- # Search for command
16
- # @param [String] cmd
17
- # name of command or path to command (will be reduced to basename and then searched in PATH)
18
- #
19
- # @param [Array,String] paths
20
- # a string containing paths separated by "File::PATH_SEPARATOR" or an array of paths
21
- #
22
- # @param [Array,String] pathexts
23
- # a string containing pathexts separated by ";" or an array of pathexts
24
- #
25
- # @return [String]
26
- # path to command
27
- def which(cmd, options={})
28
- options = {
29
- paths: ENV['PATH'].split(File::PATH_SEPARATOR),
30
- pathexts: ENV['PATHEXT'].to_s.split( /;/ ),
31
- raise_error_on_not_executable: false,
32
- raise_error_on_not_found: false,
33
- }.merge options
34
-
35
- cmd = Pathname.new(cmd)
36
-
37
- paths = options[:paths]
38
- pathexts = options[:pathexts]
39
- raise_error_on_not_executable = options[:raise_error_on_not_executable]
40
- raise_error_on_not_found = options[:raise_error_on_not_found]
41
-
42
- raise Exceptions::CommandNotFound if cmd.to_s.empty?
43
- return nil if cmd.to_s.empty?
44
-
45
- if cmd.absolute?
46
- return cmd.to_s if cmd.executable?
47
- raise Exceptions::CommandNotFound if raise_error_on_not_found and not cmd.exist?
48
- raise Exceptions::CommandNotExecutable if raise_error_on_not_executable and not cmd.executable?
49
- return nil
50
- end
51
-
52
- pathexts = [''] if pathexts.blank?
53
-
54
- Array( paths ).each do |path|
55
- Array( pathexts ).each do |ext|
56
- file = Pathname.new( File.join(path, "#{cmd.to_s}#{ext.to_s}") )
57
- return file.to_s if file.executable?
58
- raise Exceptions::CommandNotExecutable if raise_error_on_not_executable and not cmd.executable?
59
- end
60
- end
61
- raise Exceptions::CommandNotFound if raise_error_on_not_found
62
- nil
63
- end
64
- end
65
- end
66
- end
67
- end
@@ -1,31 +0,0 @@
1
- module FeduxOrg
2
- module Stdlib
3
- module Environment
4
-
5
- # Set environment variable for code block
6
- #
7
- # @param [Hash] new_environment_variables
8
- # the variables which should be set for that environment
9
- #
10
- # @param [Hash] options
11
- # options for environment manipulation
12
- #
13
- # @option options [True,False] :clear
14
- # Should the environment clear before merge?
15
- #
16
- # @yield
17
- # the block which should be run which the change environment
18
- def isolated_environment(new_environment_variables, options={}, &block)
19
- old_environment = ENV.to_hash
20
-
21
- ENV.clear if options[:clear] == true
22
- ENV.update new_environment_variables
23
-
24
- block.call
25
- ensure
26
- ENV.clear
27
- ENV.update old_environment
28
- end
29
- end
30
- end
31
- end
@@ -1,247 +0,0 @@
1
- require 'fileutils'
2
- require 'fedux_org/stdlib/filesystem/exceptions'
3
-
4
- # helper for file system
5
- module FeduxOrg
6
- module Stdlib
7
- module Filesystem
8
-
9
- # The root directory of the project
10
- #
11
- # @return [String]
12
- # the root directory
13
- def root_directory
14
- #::File.expand_path('../../../', __FILE__)
15
- raise Exceptions::InvalidUsageOfLibrary , "Sorry, but you need to define the root directory yourself"
16
- end
17
-
18
- # The temporary directory for the project
19
- #
20
- # @return [String]
21
- # the directory created for the tests
22
- def working_directory
23
- ::File.join(root_directory, 'tmp', 'test')
24
- end
25
-
26
- # Create temporary directory
27
- def create_working_directory
28
- FileUtils.mkdir_p(working_directory) unless ::File.exists? working_directory
29
- end
30
-
31
- # Delete temporary directory
32
- def delete_working_directory
33
- FileUtils.rm_rf(working_directory) if ::File.exists? working_directory
34
- end
35
-
36
- # Clean up test directory
37
- def cleanup_working_directory
38
- delete_working_directory
39
- create_working_directory
40
- end
41
-
42
- # Switch the current working directory to
43
- # the temporary one and execute code block
44
- def switch_to_working_directory(&block)
45
- Dir.chdir(working_directory, &block)
46
- end
47
- alias_method :in_working_directory, :switch_to_working_directory
48
-
49
- # Create directory(ies)
50
- #
51
- # @param [String,Array] dirs
52
- # the directories to be created, multiple arguments are possible as well
53
- #
54
- # @return [String,Array]
55
- # returns a string if there was only one file given, and an array with
56
- # muliple files
57
- def create_directory(*dirs)
58
- raise_if_forbidden_path_for_create_operation(dirs)
59
-
60
- directories = expand_path(dirs.flatten)
61
- FileUtils.mkdir_p(directories)
62
-
63
- if directories.size == 1
64
- return directories.first
65
- else
66
- return directories
67
- end
68
- end
69
-
70
- # Delete directory(ies)
71
- #
72
- # @param [String, Array] dirs
73
- # the directories to be deleted, multiple arguments are possible as well
74
- #
75
- # @return [String,Array]
76
- # returns a string if there was only one file given, and an array with
77
- # muliple files
78
- def delete_directory(*dirs)
79
- raise_if_forbidden_path_for_delete_operation(dirs)
80
-
81
- directories = expand_path(dirs.flatten)
82
- FileUtils.rm_r(directories)
83
-
84
- if directories.size == 1
85
- return directories.first
86
- else
87
- return directories
88
- end
89
- end
90
-
91
- # Check existence of path(s)
92
- #
93
- # @param [String,Array] paths
94
- # which path(s) should be checked, multiple arguments are possible as well
95
- #
96
- # @return [TrueClass,FalseClass]
97
- # the result of all checks done
98
- def path_exists?(*paths)
99
- raise_if_forbidden_path_for_create_operation(paths)
100
-
101
- paths_expanded = expand_path(paths.flatten)
102
- paths_expanded.flatten.all? { |p| ::File.exists?(p) }
103
- end
104
-
105
- # Check absence of path(s)
106
- #
107
- # @param [String,Array] paths
108
- # which path(s) should be checked, multiple arguments are possible as well
109
- #
110
- # @return [TrueClass,FalseClass]
111
- # the result of all checks done
112
- def path_does_not_exist?(*paths)
113
- not path_exists?(paths)
114
- end
115
-
116
- # Create a single file
117
- #
118
- # @param [String] path
119
- # the path for the new file (can include directories)
120
- #
121
- # @param [String] content
122
- # the content written to the file
123
- #
124
- # @return [String]
125
- # the path to the created file
126
- def create_file(path, content='', mode=0644)
127
- raise_if_forbidden_path_for_create_operation(path)
128
-
129
- file = expand_path(path).first
130
- directory = ::File.dirname(file)
131
-
132
- FileUtils.mkdir_p(directory) unless directory == '.'
133
- ::File.open(file, "wb") do |f|
134
- f.write content
135
- end
136
-
137
- FileUtils.chmod(mode, file)
138
-
139
- file
140
- end
141
-
142
- # Delete a single file
143
- #
144
- # @param [String] files
145
- # the path for the new file (can include directories)
146
- #
147
- # @return [String]
148
- # the path to the deleted file
149
- def delete_file(*files)
150
- raise_if_forbidden_path_for_delete_operation(files)
151
-
152
- files_to_be_deleted = expand_path(files.flatten)
153
- FileUtils.rm(files_to_be_deleted)
154
-
155
- if files_to_be_deleted.size == 1
156
- return files_to_be_deleted.first
157
- else
158
- return files_to_be_deleted
159
- end
160
- end
161
-
162
- # Read the content of a file
163
- #
164
- # @param [String] path
165
- # the path to the file
166
- #
167
- # @return [String,Binary]
168
- # the content of the file
169
- def read_file(path)
170
- raise_if_forbidden_path_for_create_operation(path)
171
-
172
- file_path = expand_path(path).first
173
- return ::File.read(file_path)
174
- end
175
-
176
- # Expand path based on temporary directory
177
- #
178
- # @param [String, Array, Multiple Values] paths
179
- # the paths to be expanded
180
- #
181
- # @return [Array, String]
182
- # the expanded arrays
183
- def expand_path(*paths)
184
- raise_if_forbidden_path_for_create_operation(paths)
185
-
186
- paths.flatten.map do |p|
187
- case p
188
- when /^~/
189
- ::File.expand_path(p)
190
- else
191
- ::File.join(working_directory, p )
192
- end
193
- end
194
- end
195
-
196
- # Check if path is forbidden for delete operation
197
- #
198
- # @param [String, Array] paths
199
- # paths which should be checked
200
- #
201
- # @return [TrueClass, FalseClass]
202
- # true if path is forbidden, false if path is not forbidden
203
- def raise_if_forbidden_path_for_create_operation(*paths)
204
- flattend_paths = paths.flatten
205
- strings = []
206
- regex = %r[\.\.]
207
-
208
- raise FileSystem::Exceptions::InvalidPath , "Sorry, but you cannot use paths matching \"#{strings.join(', ')}\" or \"#{regex.inspect}\" here!" if path_matches?(strings, regex, flattend_paths)
209
- end
210
-
211
- # Check if path is forbidden for delete operation
212
- #
213
- # @param [String, Array] paths
214
- # paths which should be checked
215
- #
216
- # @return [TrueClass, FalseClass]
217
- # true if path is forbidden, false if path is not forbidden
218
- def raise_if_forbidden_path_for_delete_operation(*paths)
219
- flattend_paths = paths.flatten
220
- strings = %w[ / ]
221
- regex = %r[\.\.]
222
-
223
- raise FileSystem::Exceptions::InvalidPath , "Sorry, but you cannot use paths matching \"#{strings.join(', ')}\" or \"#{regex.to_s}\" here!" if path_matches?(strings, regex, flattend_paths)
224
- end
225
-
226
- # Check if path matches
227
- #
228
- # @param [Array, String] strings
229
- # strings which are checked against paths
230
- #
231
- # @param [Array, String] regex
232
- # regex which is checked against path
233
- #
234
- # @param [Array, String] paths
235
- # the paths to be checked
236
- #
237
- # @return [TrueClass, FalseClass]
238
- # true if path is valid, false if invalid
239
- def path_matches?(strings, regex, *paths)
240
- flattend_paths = paths.flatten
241
- flattend_strings = strings.flatten
242
-
243
- flattend_paths.any? { |f| f =~ regex or flattend_strings.include?(f) }
244
- end
245
- end
246
- end
247
- end
@@ -1,13 +0,0 @@
1
- module FeduxOrg
2
- module Stdlib
3
- module FileSystem
4
- module Exceptions
5
- # Raise if path with '..' given
6
- class InvalidPath < Exception; end
7
-
8
- #Raised if library is not used correctly
9
- class InvalidUsageOfLibrary < Exception; end
10
- end
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- require 'fedux_org/stdlib/logging/logger'
2
-
3
- module FeduxOrg
4
- module Stdlib
5
- def self.logger
6
- @logger ||= FeduxOrg::Stdlib::Logging::Logger.new
7
- end
8
-
9
- def self.logger=(logger)
10
- @logger = logger
11
- end
12
- end
13
- end
@@ -1,79 +0,0 @@
1
- require 'logger'
2
- require 'forwardable'
3
- require 'fedux_org/stdlib/logging/severity'
4
-
5
- module FeduxOrg
6
- module Stdlib
7
- module Logging
8
- class Logger
9
-
10
- extend ::Forwardable
11
- def_delegators :@logger, :fatal, :warn, :debug, :info, :error, :unknown
12
-
13
- attr_reader :mode
14
-
15
- # Create logger
16
- #
17
- # @param [Logger] logger (::Logger.new( $stderr ))
18
- # The logger with should be used to output data
19
- def initialize(logger = ::Logger.new( $stderr ) )
20
- @logger = logger
21
- self.mode = :info
22
- end
23
-
24
- # Reset logger to ruby logger
25
- def reset
26
- @logger = ::Logger.new( $stderr )
27
- end
28
-
29
- # Change mode of logger: DEBUG, ... + Change the output format
30
- #
31
- # @param [Symbol] m
32
- # the mode: DEBUG, ...
33
- def mode=(m)
34
- @mode = m
35
-
36
- case m
37
- when :debug
38
- @logger.level = ::Logger::DEBUG
39
- format_debug
40
- when :silent
41
- @logger.level = ::Logger::SILENT
42
- when :info
43
- @logger.level = ::Logger::INFO
44
- format_standard
45
- else
46
- @logger.level = ::Logger::INFO
47
- format_standard
48
- end
49
- end
50
-
51
- private
52
-
53
- def format_debug
54
- @logger.formatter = proc { |severity, datetime, progname , msg|
55
- debug_msg("%s %s %s: %s\n" % [ datetime, severity, progname, msg ])
56
- }
57
- end
58
-
59
- def format_standard
60
- @logger.formatter = proc { |severity, datetime, _, msg|
61
- info_msg( "%s %s: %s\n" % [ datetime, severity, msg ] )
62
- }
63
- end
64
-
65
- def error_msg(msg)
66
- ANSI.red(msg)
67
- end
68
-
69
- def info_msg(msg)
70
- msg
71
- end
72
-
73
- def debug_msg(msg)
74
- msg
75
- end
76
- end
77
- end
78
- end
79
- end