fedux_org-stdlib 0.3.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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,99 +0,0 @@
1
- require 'fedux_org/stdlib/models/base_model'
2
-
3
- module FeduxOrg
4
- module Stdlib
5
- module Models
6
- # model for import action
7
- module FilesystemBasedModel
8
-
9
- def self.included(base)
10
- base.extend ClassMethods
11
- end
12
-
13
- module ClassMethods
14
-
15
- #initialize model
16
- def init
17
- load_from_filesystem
18
- end
19
-
20
- private
21
-
22
- def module_name
23
- name = fqcn
24
- name.pop
25
-
26
- name.join('::')
27
- end
28
-
29
- def fqcn
30
- self.to_s.split(/::/)
31
- end
32
-
33
- def model_name
34
- fqcn.last
35
- end
36
-
37
- def library_name
38
- fqcn.first
39
- end
40
-
41
- def suffix
42
- raise FeduxOrg::Stdlib::Models::Exceptions::MethodNeedsToBeImplemented, "Please defined the method \"suffix\" to make the library work."
43
- end
44
-
45
- def model_path
46
- raise FeduxOrg::Stdlib::Models::Exceptions::MethodNeedsToBeImplemented, "Please defined the method \"model_path\" to make the library work."
47
- end
48
-
49
- def ignore
50
- 'BORING_STRING_WHICH_SHOULD_NEVER_MATCH'
51
- end
52
-
53
- def find_files
54
- files = []
55
- Find.find(path_to_instances) do |path|
56
- next unless File.file? path
57
- next if suffix and path !~/#{suffix}$/
58
- next if path =~ /^\.\.?/
59
- next if path =~ %r{#{ignore}}
60
-
61
- files << path
62
- end
63
-
64
- files
65
- rescue
66
- raise FeduxOrg::Stdlib::Models::Exceptions::NoImplementationsForModelFound, "You might need to create the directory\"#{File.dirname(path_to_instances)}\"."
67
- end
68
-
69
- def path_to_instances
70
- return_path = ::File.expand_path("../../#{model_name.pluralize.underscore}", model_path )
71
-
72
- FeduxOrg::Stdlib.logger.debug(self) { "Path to instances of model: #{return_path}" }
73
-
74
- return_path
75
- end
76
-
77
- def name(path)
78
- name = File.basename(path, suffix ).to_sym
79
- raise FeduxOrg::Stdlib::Models::Exceptions::UnauthorizedUseOfKeyword if forbidden_keywords.include? name
80
-
81
- FeduxOrg::Stdlib.logger.debug(self) { "Name of model: #{name}" }
82
-
83
- name
84
- end
85
-
86
- def load_from_filesystem
87
- raise FeduxOrg::Stdlib::Models::Exceptions::MethodNeedsToBeImplemented
88
- end
89
-
90
- def forbidden_keywords
91
- [ ]
92
- end
93
-
94
- end
95
-
96
- end
97
- end
98
- end
99
- end
@@ -1,5 +0,0 @@
1
- require 'fedux_org/stdlib/project/logger'
2
- require 'fedux_org/stdlib/project/plan'
3
- require 'fedux_org/stdlib/project/report'
4
- require 'fedux_org/stdlib/project/generators/taskjuggler'
5
-
@@ -1,41 +0,0 @@
1
- require 'fedux_org/stdlib/logging/logger'
2
-
3
- begin
4
- require 'command_exec'
5
- rescue LoadError => e
6
- $stderr.puts "You need to install the following gems to make it work: \"command_exec\"."
7
- exit 1
8
- end
9
-
10
- module FeduxOrg
11
- module Stdlib
12
- module Project
13
- module Generators
14
-
15
- class Taskjuggler
16
- def generate_report( directory, plan_file )
17
- FeduxOrg::Stdlib::Project.logger.debug "Start generating report."
18
-
19
- begin
20
- command = CommandExec::Command.new(:tj3 ,
21
- :parameter => "-o #{directory} #{plan_file}",
22
- :error_detection_on => [:return_code],
23
- :error_indicators => {
24
- :allowed_return_code => [0],
25
- },
26
- :on_error_do => :raise_error,
27
- )
28
- command.run
29
- rescue CommandExec::Exceptions::CommandExecutionFailed
30
- FeduxOrg::Stdlib::Project.logger.fatal "Failed to generate report:\n\n#{ command.result.stderr.join( "\n" ) }"
31
- exit 1
32
- end
33
-
34
- FeduxOrg::Stdlib::Project.logger.info "Generating report succeeded."
35
- end
36
- end
37
-
38
- end
39
- end
40
- end
41
- end
@@ -1,13 +0,0 @@
1
- require 'fedux_org/stdlib/logging/logger'
2
-
3
- module FeduxOrg
4
- module Stdlib
5
- module Project
6
- class << self
7
- def logger
8
- @logger ||= FeduxOrg::Stdlib::Logging::Logger.new
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,15 +0,0 @@
1
- module FeduxOrg
2
- module Stdlib
3
-
4
- module Project
5
- class Plan
6
- attr_reader :file
7
-
8
- def initialize(file = File.join( Dir.getwd, 'plan.tjp' ) )
9
- @file = file
10
- end
11
- end
12
-
13
- end
14
- end
15
- end
@@ -1,67 +0,0 @@
1
- require 'fedux_org/stdlib/logging/logger'
2
- require 'fedux_org/stdlib/project/logger'
3
- require 'fedux_org/stdlib/project/generators/taskjuggler'
4
-
5
- require 'fileutils'
6
-
7
- begin
8
- require 'launchy'
9
- rescue LoadError => e
10
- $stderr.puts "You need to install the following gems to make it work: \"launchy\"."
11
- exit 1
12
- end
13
-
14
- module FeduxOrg
15
- module Stdlib
16
- module Project
17
-
18
- class Report
19
- attr_reader :directory, :file
20
-
21
- def initialize( plan, generator = FeduxOrg::Stdlib::Project::Generators::Taskjuggler.new,
22
- output_directory = File.join( Dir.getwd, 'reports' ),
23
- output_file = nil
24
- )
25
- @plan = plan
26
- @output_directory = output_directory
27
- @output_file = case output_file
28
- when nil
29
- File.join( @output_directory, 'Overview.html' )
30
- else
31
- output_file
32
- end
33
- @generator = generator
34
- end
35
-
36
- def generate
37
- prepare_environment
38
-
39
- if output_file_exists? and plan_is_newer_than_output_file?
40
- FeduxOrg::Stdlib::Project.logger.warn "No need to re-generate report. The plan file \"#{@plan.file}\" is NOT newer than output \"#{@output_file}\"."
41
- else
42
- @generator.generate_report( @output_directory, @plan.file )
43
- end
44
- end
45
-
46
- def open
47
- Launchy.open( @output_file )
48
- end
49
-
50
- private
51
-
52
- def prepare_environment
53
- FileUtils.mkdir_p @output_directory
54
- end
55
-
56
- def output_file_exists?
57
- File.exists? @output_file
58
- end
59
-
60
- def plan_is_newer_than_output_file?
61
- File.mtime( @output_file ) > File.mtime( @plan.file)
62
- end
63
- end
64
-
65
- end
66
- end
67
- end
@@ -1,7 +0,0 @@
1
- require 'fedux_org/stdlib/rake/terminal'
2
- require 'fedux_org/stdlib/rake/version'
3
- require 'fedux_org/stdlib/rake/travis'
4
- require 'fedux_org/stdlib/rake/tests'
5
- require 'fedux_org/stdlib/rake/console'
6
- require 'fedux_org/stdlib/rake/documentation'
7
- require 'fedux_org/stdlib/rake/gems'
@@ -1,3 +0,0 @@
1
- task :console do
2
- sh 'script/console'
3
- end
@@ -1 +0,0 @@
1
- require_relative 'documentation/yard'
@@ -1,14 +0,0 @@
1
- unless ENV.to_hash.has_key? 'CI'
2
-
3
- begin
4
- require 'yard'
5
- rescue LoadError
6
- $stderr.puts 'You need to install the "yard"-gem to make that rake task work.'
7
- exit 1
8
- end
9
-
10
- YARD::Rake::YardocTask.new() do |y|
11
- # y.options << '--verbose'
12
- end
13
-
14
- end
@@ -1,2 +0,0 @@
1
- require_relative 'gems/bundler'
2
- require_relative 'gems/package'
@@ -1,12 +0,0 @@
1
- unless ENV.to_hash.has_key? 'CI'
2
-
3
- namespace :gem do
4
- begin
5
- require 'bundler/gem_tasks'
6
- rescue LoadError
7
- $stderr.puts 'You need to install the "bundler"-gem to make that rake task work.'
8
- exit 1
9
- end
10
- end
11
-
12
- end
@@ -1,7 +0,0 @@
1
- unless ENV.to_hash.has_key? 'CI'
2
-
3
- namespace :gem do
4
- require 'rubygems/package_task'
5
- end
6
-
7
- end
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env rake
2
- require 'fedux_org/stdlib/rake/terminal'
3
- require 'fedux_org/stdlib/rake/version'
4
- require 'fedux_org/stdlib/rake/travis'
5
- require 'fedux_org/stdlib/rake/test'
6
- require 'fedux_org/stdlib/rake/console'
7
- require 'fedux_org/stdlib/rake/documentation'
8
- require 'fedux_org/stdlib/rake/gems'
@@ -1,9 +0,0 @@
1
- desc 'start tmux'
2
- task :terminal do
3
- sh "script/terminal"
4
- end
5
-
6
- task :term => :terminal
7
- task :t => :terminal
8
-
9
-
@@ -1,3 +0,0 @@
1
- require_relative 'tests/cucumber'
2
- require_relative 'tests/rspec'
3
- require_relative 'tests/travis'
@@ -1,6 +0,0 @@
1
- namespace :test do
2
- desc 'Run specs'
3
- task :cucumber do
4
- sh 'bundle exec cucumber'
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- namespace :test do
2
- desc 'Run specs'
3
- task :rspec do
4
- sh 'bundle exec rspec'
5
- end
6
- end
@@ -1,15 +0,0 @@
1
- require 'fedux_org/stdlib/command/which'
2
-
3
- resolver = Class.new do
4
- include FeduxOrg::Stdlib::Command::Which
5
- end
6
-
7
- namespace :test do
8
- desc 'Run tests in "travis mode"'
9
- task :travis_specs do
10
- ENV['CI'] = 'true'
11
-
12
- sh 'rspec spec' if resolver.new.which( 'rspec' )
13
- sh 'cucumber -p all' if resolver.new.which( 'cucumber' )
14
- end
15
- end
@@ -1 +0,0 @@
1
- require_relative 'travis/lint'
@@ -1,10 +0,0 @@
1
- unless ENV.to_hash.has_key? 'CI'
2
-
3
- namespace :travis do
4
- desc 'Runs travis-lint to check .travis.yml'
5
- task :lint do
6
- sh 'travis-lint'
7
- end
8
- end
9
-
10
- end
@@ -1,4 +0,0 @@
1
- require_relative 'version/bump'
2
- require_relative 'version/restore'
3
- require_relative 'version/show'
4
- require_relative 'version/show_shortcut'
@@ -1,7 +0,0 @@
1
- def version_file
2
- file = Dir.glob('lib/*/version.rb').first || Dir.glob('lib/*/*/version.rb').first
3
-
4
- raise Exception, "Cannot find version file" until file
5
-
6
- file
7
- end
@@ -1,78 +0,0 @@
1
- unless ENV.to_hash.has_key? 'CI'
2
-
3
- require_relative 'base'
4
-
5
- begin
6
- require 'active_support/core_ext/string/strip'
7
- rescue LoadError
8
- $stderr.puts 'You need to install the "activesupport"-gem to make that rake task work.'
9
- exit 1
10
- end
11
-
12
- begin
13
- require 'erubis'
14
- rescue LoadError
15
- $stderr.puts 'You need to install the "erubis"-gem to make that rake task work.'
16
- exit 1
17
- end
18
-
19
- require 'fedux_org/stdlib/logging/logger'
20
-
21
- namespace :version do
22
- @logger = FeduxOrg::Stdlib::Logging::Logger.new
23
-
24
- def add_to_repo(file, version)
25
- @logger.info('Adding new version file to repository.')
26
- sh "git add #{file}"
27
- sh "git commit -m 'version bump to #{version}'"
28
- end
29
-
30
- def bump_version(type)
31
- version_update do |file|
32
- file.bump(type)
33
- end
34
- end
35
-
36
- def version_update(&block)
37
- file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.read(version_file)
38
- old_version = file.version
39
- block.call(file)
40
- new_version = file.version
41
-
42
- file.write(version_file)
43
- @logger.info("Updated version. It was \"#{old_version}\". It is now \"#{new_version}\".")
44
- add_to_repo(version_file, file.version)
45
- end
46
-
47
- desc "Bump x.1.1"
48
- task :bump_major do
49
- bump_version(:major)
50
- end
51
-
52
- desc "Bump 1.x.1"
53
- task :bump_minor do
54
- bump_version(:minor)
55
- end
56
-
57
- desc "Bump 1.1.x"
58
- task :bump_tiny do
59
- bump_version(:tiny)
60
- end
61
-
62
- desc 'bump version of library to new version'
63
- task :bump do
64
- new_version = ENV['VERSION'] || ENV['version']
65
- raise Exception, "You need to define a version via \"VERSION=<version>\" or \"version=<version>\"." unless new_version
66
-
67
- begin
68
- version_update do |file|
69
- file.version = new_version
70
- file.write(version_file)
71
- add_to_repo(version_file, new_version)
72
- end
73
- rescue
74
- @logger.fatal('Nothing has changed since your last commit or has been added to the index. Therefor nothing needs to be commited.')
75
- end
76
- end
77
- end
78
- end