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,12 +1,13 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/project/plan'
3
+ require 'fedux_org_stdlib/project/plan'
3
4
 
4
- describe FeduxOrg::Stdlib::Project::Plan do
5
- context '#file' do
5
+ RSpec.describe FeduxOrgStdlib::Project::Plan do
6
+ context '#to_s' do
6
7
  it 'uses the working directory by default to find plan' do
7
8
  switch_to_working_directory do
8
- plan = FeduxOrg::Stdlib::Project::Plan.new
9
- expect( plan.file ).to eq( File.join( Dir.getwd , 'plan.tjp' ) )
9
+ plan = FeduxOrgStdlib::Project::Plan.new
10
+ expect(plan.to_s).to eq(File.join(Dir.getwd , 'plan.tjp'))
10
11
  end
11
12
  end
12
13
  end
@@ -1,53 +1,60 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/project/report'
3
- require 'fedux_org/stdlib/filesystem'
3
+ require 'fedux_org_stdlib/project/report'
4
+ require 'fedux_org_stdlib/filesystem'
4
5
 
5
- describe FeduxOrg::Stdlib::Project::Report do
6
+ RSpec.describe FeduxOrgStdlib::Project::Report do
6
7
  context '#generate' do
7
-
8
8
  it 'generates report' do
9
- plan = double( 'Plan' )
10
- allow( plan ).to receive( :file ).and_return { create_file( 'plan.tjp' ) }
9
+ plan_file = create_file('plan.tjp')
10
+ report_file = create_file('reports/Overview.html')
11
+
12
+ plan = double('Plan')
13
+ allow(plan).to receive(:to_s).and_return(plan_file)
14
+ expect(plan).to receive(:needs_to_be_compiled?).with(report_file).and_return(true)
11
15
 
12
- generator = double( 'Generator' )
13
- expect( generator ).to receive( :generate_report )
16
+ generator = double('Generator')
17
+ expect(generator).to receive(:generate_report)
14
18
 
15
- report = FeduxOrg::Stdlib::Project::Report.new( plan, generator )
19
+ report = FeduxOrgStdlib::Project::Report.new(plan: plan, generator: generator, output_file: report_file)
16
20
  report.generate
17
21
  end
18
22
 
19
23
  it 'generates report only if plan file is newer than output file' do
20
- plan_file = create_file( 'plan.tjp' )
21
- report_file = create_file( 'reports/Overview.html' )
24
+ plan_file = create_file('plan.tjp')
25
+ report_file = create_file('reports/Overview.html')
22
26
 
23
27
  FileUtils.touch report_file, :mtime => Time.now - 2.hours
24
28
 
25
- plan = double( 'Plan' )
26
- allow( plan ).to receive( :file ).and_return {plan_file }
29
+ plan = double('Plan')
30
+ allow(plan).to receive(:to_s).and_return(plan_file)
31
+ expect(plan).to receive(:needs_to_be_compiled?).with(report_file).and_return(true)
27
32
 
28
- generator = double( 'Generator' )
29
- expect( generator ).to receive( :generate_report ).once
33
+ generator = double('Generator')
34
+ expect(generator).to receive(:generate_report).once
30
35
 
31
36
  switch_to_working_directory do
32
- report = FeduxOrg::Stdlib::Project::Report.new( plan, generator )
37
+ report = FeduxOrgStdlib::Project::Report.new(plan: plan, generator: generator, output_file: report_file)
33
38
  report.generate
34
39
  end
35
40
  end
36
41
 
37
42
  it 'does not generate report if plan file is older or of eqal age than output file' do
38
- plan_file = create_file( 'plan.tjp' )
39
- report_file = create_file( 'reports/Overview.html' )
43
+ plan_file = create_file('plan.tjp')
44
+ report_file = create_file('reports/Overview.html')
40
45
 
41
46
  FileUtils.touch plan_file, :mtime => Time.now - 2.hours
42
47
 
43
- plan = double( 'Plan' )
44
- allow( plan ).to receive( :file ).and_return { plan_file }
48
+ plan = double('Plan')
49
+ expect(plan).to receive(:needs_to_be_compiled?).with(report_file).and_return(false)
45
50
 
46
- generator = double( 'Generator' )
51
+ generator = double('Generator')
52
+ expect(generator).not_to receive(:generate_report)
47
53
 
48
54
  switch_to_working_directory do
49
- report = FeduxOrg::Stdlib::Project::Report.new( plan, generator )
50
- silence( :stderr ) do
55
+ report = FeduxOrgStdlib::Project::Report.new(plan: plan, generator: generator, output_file: report_file)
56
+
57
+ silence(:stderr) do
51
58
  report.generate
52
59
  end
53
60
  end
@@ -56,13 +63,12 @@ describe FeduxOrg::Stdlib::Project::Report do
56
63
 
57
64
  context '#open' do
58
65
  it 'can open a report in a browser' do
59
- plan = double( 'Plan' )
60
- generator = double( 'Generator' )
61
- report = FeduxOrg::Stdlib::Project::Report.new( plan, generator )
66
+ plan = double('Plan')
67
+ generator = double('Generator')
68
+ report_file = create_file('reports/Overview.html')
62
69
 
63
- expect(
64
- report.respond_to? :open
65
- ).to be_true
70
+ report = FeduxOrgStdlib::Project::Report.new(plan: plan, generator: generator, output_file: report_file)
71
+ expect(report).to respond_to :open
66
72
  end
67
73
  end
68
74
  end
@@ -1,31 +1,32 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/project/generators/taskjuggler'
3
+ require 'fedux_org_stdlib/project/generators/taskjuggler'
3
4
 
4
- describe FeduxOrg::Stdlib::Project::Generators::Taskjuggler do
5
+ RSpec.describe FeduxOrgStdlib::Project::Generators::Taskjuggler do
5
6
  context '#generate_report' do
6
7
  it "generates a report using taskjuggler" do
7
- directory = create_directory( 'projects' )
8
- plan_file = File.join( examples_directory, 'project', 'plan.tjp' )
8
+ directory = create_directory('projects')
9
+ plan_file = File.join(examples_directory, 'project', 'plan.tjp')
9
10
 
10
- generator = FeduxOrg::Stdlib::Project::Generators::Taskjuggler.new
11
+ generator = FeduxOrgStdlib::Project::Generators::Taskjuggler.new
11
12
 
12
13
  switch_to_working_directory do
13
- silence( :stderr ) do
14
- generator.generate_report( directory, plan_file )
14
+ silence(:stderr) do
15
+ generator.generate_report(directory, plan_file)
15
16
  end
16
17
  end
17
18
  end
18
19
 
19
20
  it "fails if an error occured while generating the report" do
20
- directory = create_directory( 'projects' )
21
- plan_file = File.join( examples_directory, 'project', 'plan_does_not_exist.tjp' )
21
+ directory = create_directory('projects')
22
+ plan_file = File.join(examples_directory, 'project', 'plan_does_not_exist.tjp')
22
23
 
23
- generator = FeduxOrg::Stdlib::Project::Generators::Taskjuggler.new
24
+ generator = FeduxOrgStdlib::Project::Generators::Taskjuggler.new
24
25
 
25
26
  expect {
26
27
  switch_to_working_directory do
27
- silence( :stderr) do
28
- generator.generate_report( directory, plan_file )
28
+ silence(:stderr) do
29
+ generator.generate_report(directory, plan_file)
29
30
  end
30
31
 
31
32
  end
@@ -1,46 +1,23 @@
1
- #encoding: utf-8
2
- $LOAD_PATH << File.expand_path( '../../lib', __FILE__ )
1
+ # encoding: utf-8
2
+ #
3
+ $LOAD_PATH << File.expand_path('../../lib', __FILE__)
4
+ require 'fedux_org_stdlib'
5
+ # Avoid writing "describe MyModule::MyClass do [..]" but "describe MyClass do [..]"
6
+ include FeduxOrgStdlib
3
7
 
4
- unless ENV['CI'] == 'true'
5
- require 'pry'
6
- require 'debugger'
7
- require 'ap'
8
- require 'benchmark'
9
- end
8
+ require 'simplecov'
9
+ SimpleCov.command_name 'rspec'
10
+ SimpleCov.start
10
11
 
11
- unless ENV['CI'] == 'true'
12
- require 'simplecov'
13
- SimpleCov.start
14
- SimpleCov.command_name 'rspec'
15
- end
12
+ # Pull in all of the gems including those in the `test` group
13
+ require 'bundler'
14
+ Bundler.require :default, :test, :development
16
15
 
17
- require 'fedux_org/stdlib'
18
- include FeduxOrg::Stdlib
16
+ # Loading support files
17
+ Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
19
18
 
20
- RSpec.configure do |c|
21
- c.treat_symbols_as_metadata_keys_with_true_values = true
22
- c.filter_run :focus => true
23
- c.run_all_when_everything_filtered = true
24
- end
25
19
 
26
20
  def examples_dir
27
- File.expand_path( '../examples', __FILE__ )
21
+ File.expand_path('../examples', __FILE__)
28
22
  end
29
23
  alias :examples_directory :examples_dir
30
-
31
-
32
- require 'fedux_org/stdlib/filesystem'
33
- include FeduxOrg::Stdlib::Filesystem
34
-
35
- def root_directory
36
- FeduxOrg::Stdlib.root_directory
37
- end
38
-
39
- RSpec.configure do |c|
40
- c.before( :each ) do
41
- cleanup_working_directory
42
- end
43
- end
44
-
45
- require 'active_support/core_ext/kernel/reporting'
46
- require 'active_support/core_ext/string/strip'
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/environment'
3
+
4
+ module FeduxOrgStdlib
5
+ module SpecHelper
6
+ module Environment
7
+ include FeduxOrgStdlib::Environment
8
+ alias_method :with_environment, :isolated_environment
9
+ end
10
+ end
11
+ end
12
+
13
+ RSpec.configure do |c|
14
+ c.include FeduxOrgStdlib::SpecHelper::Environment
15
+ end
16
+
@@ -0,0 +1,19 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/filesystem'
3
+
4
+ module FeduxOrgStdlib
5
+ module SpecHelper
6
+ module Filesystem
7
+ include FeduxOrgStdlib::Filesystem
8
+
9
+ def root_directory
10
+ ::File.expand_path('../../../', __FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ RSpec.configure do |c|
17
+ c.include FeduxOrgStdlib::SpecHelper::Filesystem
18
+ c.before(:each) { cleanup_working_directory }
19
+ end
@@ -0,0 +1,2 @@
1
+ # encoding: utf-8
2
+ require 'active_support/core_ext/kernel/reporting'
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+ RSpec.configure do |c|
3
+ c.filter_run_including :focus => true
4
+ c.run_all_when_everything_filtered = true
5
+ end
@@ -0,0 +1,2 @@
1
+ # encoding: utf-8
2
+ require 'active_support/core_ext/string/strip'
@@ -1,11 +1,12 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/version_management/library_builder'
3
+ require 'fedux_org_stdlib/version_management/library_builder'
3
4
 
4
- describe FeduxOrg::Stdlib::VersionManagement::LibraryBuilder do
5
+ RSpec.describe FeduxOrgStdlib::VersionManagement::LibraryBuilder do
5
6
  context '#build_from' do
6
7
  it 'accepts a version string and builds a version object' do
7
- library = FeduxOrg::Stdlib::VersionManagement::LibraryBuilder.new.build_from( [ 'MyModules' ] )
8
- expect( library.module_names ).to eq( [ 'MyModules' ] )
8
+ library = FeduxOrgStdlib::VersionManagement::LibraryBuilder.new.build_from([ 'MyModules' ])
9
+ expect(library.module_names).to eq([ 'MyModules' ])
9
10
  end
10
11
  end
11
12
  end
@@ -1,11 +1,12 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/version_management/ruby_library'
3
+ require 'fedux_org_stdlib/version_management/ruby_library'
3
4
 
4
- describe FeduxOrg::Stdlib::VersionManagement::RubyLibrary do
5
+ RSpec.describe FeduxOrgStdlib::VersionManagement::RubyLibrary do
5
6
  context '#module_names' do
6
7
  it 'nows about module names' do
7
- lib = FeduxOrg::Stdlib::VersionManagement::RubyLibrary.new( ['MyModule', 'MyClass' ] )
8
- expect( lib.module_names ).to eq( ['MyModule', 'MyClass' ] )
8
+ lib = FeduxOrgStdlib::VersionManagement::RubyLibrary.new(['MyModule', 'MyClass' ])
9
+ expect(lib.module_names).to eq(['MyModule', 'MyClass' ])
9
10
  end
10
11
  end
11
12
  end
@@ -1,41 +1,41 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/version_management/rubygem_version_file_parser'
3
+ require 'fedux_org_stdlib/version_management/rubygem_version_file_parser'
3
4
 
4
- describe FeduxOrg::Stdlib::VersionManagement::RubygemVersionFileParser do
5
-
6
- let( :parser ) { FeduxOrg::Stdlib::VersionManagement::RubygemVersionFileParser.new }
5
+ RSpec.describe FeduxOrgStdlib::VersionManagement::RubygemVersionFileParser do
6
+ let(:parser) { FeduxOrgStdlib::VersionManagement::RubygemVersionFileParser.new }
7
7
 
8
8
  context '#parse' do
9
9
  it 'extracts version number' do
10
- version_file = create_file( 'version.rb', <<-EOS.strip_heredoc
10
+ version_file = create_file('version.rb', <<-EOS.strip_heredoc
11
11
  #main MyLibrary
12
12
  module MyLibrary
13
13
  VERSION = '0.0.0'
14
14
  end
15
15
  EOS
16
- )
16
+ )
17
17
 
18
- parser.parse( version_file )
18
+ parser.parse(version_file)
19
19
 
20
- expect( parser.version ).to eq( '0.0.0' )
20
+ expect(parser.version).to eq('0.0.0')
21
21
  end
22
22
 
23
23
  it 'extracts modules' do
24
- version_file = create_file( 'version.rb', <<-EOS.strip_heredoc
24
+ version_file = create_file('version.rb', <<-EOS.strip_heredoc
25
25
  #main MyLibrary
26
26
  module MyLibrary
27
27
  VERSION = '0.0.0'
28
28
  end
29
29
  EOS
30
- )
30
+ )
31
31
 
32
- parser.parse( version_file )
32
+ parser.parse(version_file)
33
33
 
34
- expect( parser.modules ).to eq( [ 'MyLibrary' ] )
34
+ expect(parser.modules).to eq([ 'MyLibrary' ])
35
35
  end
36
36
 
37
37
  it 'extracts nested modules as well' do
38
- version_file = create_file( 'version.rb', <<-EOS.strip_heredoc
38
+ version_file = create_file('version.rb', <<-EOS.strip_heredoc
39
39
  #main MyLibrary
40
40
  module MyLibrary
41
41
  module MyClass
@@ -43,11 +43,22 @@ describe FeduxOrg::Stdlib::VersionManagement::RubygemVersionFileParser do
43
43
  end
44
44
  end
45
45
  EOS
46
- )
46
+ )
47
+
48
+ parser.parse(version_file)
49
+
50
+ expect(parser.modules).to eq([ 'MyLibrary', 'MyClass' ])
51
+ end
47
52
 
48
- parser.parse( version_file )
53
+ it 'fails if version cannot be extracted' do
54
+ version_file = create_file('version.rb', <<-EOS.strip_heredoc
55
+ #main MyLibrary
56
+ EOS
57
+ )
49
58
 
50
- expect( parser.modules ).to eq( [ 'MyLibrary', 'MyClass' ] )
59
+ expect {
60
+ parser.parse(version_file)
61
+ }.to raise_error VersionManagement::Exceptions::VersionFileInvalid
51
62
  end
52
63
  end
53
64
  end
@@ -1,116 +1,118 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/version_management/rubygem_version_file'
3
-
4
- describe FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile do
3
+ require 'fedux_org_stdlib/version_management/rubygem_version_file'
5
4
 
5
+ RSpec.describe FeduxOrgStdlib::VersionManagement::RubygemVersionFile do
6
6
  context '#to_s' do
7
-
8
7
  it 'outputs the content for version file' do
9
- version = double( 'Version' )
10
- expect(version).to receive( :to_s ).and_return( '0.0.0' )
8
+ version = double('Version')
9
+ expect(version).to receive(:to_s).and_return('0.0.0')
11
10
 
12
- library = double( 'RubyLibrary' )
13
- expect(library).to receive( :module_names ).and_return( [ 'MyLibrary' ] )
11
+ library = double('RubyLibrary')
12
+ expect(library).to receive(:module_names).and_return([ 'MyLibrary' ])
14
13
 
15
- version_file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.new( version, library )
16
- expect( version_file.to_s ).to eq(<<-EOS.strip_heredoc
17
- #main MyLibrary
14
+ version_file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.new(version, library)
15
+ expect(version_file.to_s).to eq(<<-EOS.strip_heredoc
16
+ # encoding: utf-8
17
+ # MyLibrary
18
18
  module MyLibrary
19
19
  VERSION = '0.0.0'
20
20
  end
21
21
  EOS
22
- )
22
+ )
23
23
  end
24
24
 
25
25
  it 'outputs the content for version file for a more deeply nested module' do
26
- version = double( 'Version' )
27
- expect(version).to receive( :to_s ).and_return( '0.0.0' )
26
+ version = double('Version')
27
+ expect(version).to receive(:to_s).and_return('0.0.0')
28
28
 
29
- library = double( 'RubyLibrary' )
30
- expect(library).to receive( :module_names ).and_return( [ 'MyLibrary', 'MyClass' ] )
29
+ library = double('RubyLibrary')
30
+ expect(library).to receive(:module_names).and_return([ 'MyLibrary', 'MyClass' ])
31
31
 
32
- version_file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.new( version, library )
33
- expect( version_file.to_s ).to eq(<<-EOS.strip_heredoc
34
- #main MyLibrary
32
+ version_file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.new(version, library)
33
+ expect(version_file.to_s).to eq(<<-EOS.strip_heredoc
34
+ # encoding: utf-8
35
+ # MyLibrary
35
36
  module MyLibrary
36
37
  module MyClass
37
38
  VERSION = '0.0.0'
38
39
  end
39
40
  end
40
41
  EOS
41
- )
42
+ )
42
43
  end
43
44
  end
44
45
 
45
46
  context '#write' do
46
47
  it 'writes the generated version file to disk' do
47
- version = double( 'Version' )
48
- expect(version).to receive( :to_s ).and_return( '0.0.0' )
48
+ version = double('Version')
49
+ expect(version).to receive(:to_s).and_return('0.0.0')
49
50
 
50
- library = double( 'RubyLibrary' )
51
- expect(library).to receive( :module_names ).and_return( [ 'MyLibrary', 'MyClass' ] )
52
- version_file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.new( version, library )
51
+ library = double('RubyLibrary')
52
+ expect(library).to receive(:module_names).and_return([ 'MyLibrary', 'MyClass' ])
53
+ version_file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.new(version, library)
53
54
 
54
55
  switch_to_working_directory do
55
- version_file.write( 'version.rb' )
56
- expect( File ).to be_exists( 'version.rb' )
56
+ version_file.write('version.rb')
57
+ expect(File).to be_exists('version.rb')
57
58
  end
58
59
  end
59
60
 
60
61
  context '#read' do
61
62
  it 'reads a version file and handover parsing to parser' do
62
- version = double( 'Version' )
63
- library = double( 'Library' )
63
+ version = double('Version')
64
+ library = double('Library')
64
65
 
65
- version_builder = double( 'VersionBuilder' )
66
- expect( version_builder ).to receive( :build_from ).with( '0.0.0' ).and_return( version )
66
+ version_builder = double('VersionBuilder')
67
+ expect(version_builder).to receive(:build_from).with('0.0.0').and_return(version)
67
68
 
68
- library_builder = double( 'LibraryBuilder' )
69
- expect( library_builder ).to receive( :build_from ).with( [ 'MyModule' ] ).and_return( library )
69
+ library_builder = double('LibraryBuilder')
70
+ expect(library_builder).to receive(:build_from).with([ 'MyModule' ]).and_return(library)
70
71
 
71
- parser = double( 'Parser' )
72
- expect( parser ).to receive( :parse )
73
- expect( parser ).to receive( :version ).and_return( '0.0.0' )
74
- expect( parser ).to receive( :modules ).and_return( [ 'MyModule' ] )
72
+ parser = double('Parser')
73
+ expect(parser).to receive(:parse)
74
+ expect(parser).to receive(:version).and_return('0.0.0')
75
+ expect(parser).to receive(:modules).and_return([ 'MyModule' ])
75
76
 
76
- version_file = create_file( 'version.rb', <<-EOS.strip_heredoc
77
- #main MyLibrary
77
+ version_file = create_file('version.rb', <<-EOS.strip_heredoc
78
+ # encoding: utf-8
79
+ # MyLibrary
78
80
  module MyLibrary
79
81
  VERSION = '0.0.0'
80
82
  end
81
83
  EOS
82
- )
84
+ )
83
85
 
84
- result = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.read( version_file, parser, version_builder, library_builder )
86
+ result = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.read(version_file, parser, version_builder, library_builder)
85
87
 
86
- expect( result ).to be_kind_of( FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile )
88
+ expect(result).to be_kind_of(FeduxOrgStdlib::VersionManagement::RubygemVersionFile)
87
89
  end
88
90
  end
89
91
 
90
92
  context '#version' do
91
93
  it "returns the version for the file" do
92
- version = double( 'Version' )
93
- expect(version).to receive( :to_s ).and_return( '0.0.0' )
94
+ version = double('Version')
95
+ expect(version).to receive(:to_s).and_return('0.0.0')
94
96
 
95
- library = double( 'RubyLibrary' )
97
+ library = double('RubyLibrary')
96
98
 
97
- version_file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.new( version, library )
98
- expect( version_file.version ).to eq('0.0.0' )
99
+ version_file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.new(version, library)
100
+ expect(version_file.version).to eq('0.0.0')
99
101
  end
100
102
  end
101
103
 
102
104
  context '#bump' do
103
105
  it "bumps versions" do
104
- version = double( 'Version' )
105
- expect(version).to receive( :bump ).with( :major )
106
- expect(version).to receive( :to_s ).and_return( '1.0.0' )
106
+ version = double('Version')
107
+ expect(version).to receive(:bump).with(:major)
108
+ expect(version).to receive(:to_s).and_return('1.0.0')
107
109
 
108
- library = double( 'RubyLibrary' )
110
+ library = double('RubyLibrary')
109
111
 
110
- version_file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.new( version, library )
111
- version_file.bump( :major )
112
+ version_file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.new(version, library)
113
+ version_file.bump(:major)
112
114
 
113
- expect( version_file.version ).to eq('1.0.0' )
115
+ expect(version_file.version).to eq('1.0.0')
114
116
  end
115
117
  end
116
118
  end