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