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.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.simplecov +7 -6
- data/Gemfile +33 -28
- data/README.md +1 -1
- data/Rakefile +8 -1
- data/doc/colors.md +2 -2
- data/doc/commands.md +2 -2
- data/doc/logic_converters.md +5 -5
- data/doc/models.md +5 -5
- data/fedux_org-stdlib.gemspec +3 -7
- data/lib/fedux_org_stdlib.rb +13 -0
- data/lib/fedux_org_stdlib/app_config.rb +247 -0
- data/lib/fedux_org_stdlib/ci.rb +6 -0
- data/lib/fedux_org_stdlib/colors/html_color.rb +18 -0
- data/lib/fedux_org_stdlib/command.rb +10 -0
- data/lib/fedux_org_stdlib/command/command_result.rb +13 -0
- data/lib/fedux_org_stdlib/command/run_command.rb +55 -0
- data/lib/fedux_org_stdlib/command/which.rb +60 -0
- data/lib/fedux_org_stdlib/core_ext/array.rb +6 -0
- data/lib/fedux_org_stdlib/core_ext/string.rb +3 -0
- data/lib/fedux_org_stdlib/environment.rb +32 -0
- data/lib/fedux_org_stdlib/filesystem.rb +248 -0
- data/lib/fedux_org_stdlib/filesystem/exceptions.rb +12 -0
- data/lib/fedux_org_stdlib/logging.rb +12 -0
- data/lib/fedux_org_stdlib/logging/logger.rb +79 -0
- data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logging/severity.rb +1 -0
- data/lib/fedux_org_stdlib/logic_converters.rb +11 -0
- data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logic_converters/exceptions.rb +1 -0
- data/lib/fedux_org_stdlib/logic_converters/logic_converter.rb +39 -0
- data/lib/fedux_org_stdlib/logic_converters/on_off_converter.rb +35 -0
- data/lib/fedux_org_stdlib/logic_converters/true_false_converter.rb +34 -0
- data/lib/fedux_org_stdlib/logic_converters/y_n_converter.rb +34 -0
- data/lib/fedux_org_stdlib/logic_converters/yes_no_converter.rb +34 -0
- data/lib/fedux_org_stdlib/models.rb +5 -0
- data/lib/fedux_org_stdlib/models/base_model.rb +129 -0
- data/lib/fedux_org_stdlib/models/class_based_model.rb +67 -0
- data/lib/fedux_org_stdlib/models/exceptions.rb +40 -0
- data/lib/fedux_org_stdlib/models/filesystem_based_model.rb +98 -0
- data/lib/fedux_org_stdlib/project.rb +6 -0
- data/lib/fedux_org_stdlib/project/generators/taskjuggler.rb +35 -0
- data/lib/fedux_org_stdlib/project/logger.rb +12 -0
- data/lib/fedux_org_stdlib/project/plan.rb +26 -0
- data/lib/fedux_org_stdlib/project/report.rb +63 -0
- data/lib/fedux_org_stdlib/rake.rb +8 -0
- data/lib/fedux_org_stdlib/rake/exceptions.rb +9 -0
- data/lib/{fedux_org/stdlib → fedux_org_stdlib}/rake/project.rb +4 -4
- data/lib/fedux_org_stdlib/rake/project_task.rb +29 -0
- data/lib/fedux_org_stdlib/rake/shell_task.rb +45 -0
- data/lib/fedux_org_stdlib/rake/sub_task.rb +26 -0
- data/lib/fedux_org_stdlib/rake/task.rb +118 -0
- data/lib/fedux_org_stdlib/rake/version_bump_task.rb +56 -0
- data/lib/fedux_org_stdlib/rake_tasks.rb +8 -0
- data/lib/fedux_org_stdlib/rake_tasks/console.rb +11 -0
- data/lib/fedux_org_stdlib/rake_tasks/documentation.rb +2 -0
- data/lib/fedux_org_stdlib/rake_tasks/documentation/yard.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/gems.rb +3 -0
- data/lib/fedux_org_stdlib/rake_tasks/gems/bundler.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/gems/package.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/project.rb +1 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report.rb +3 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report/generate.rb +10 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report/open.rb +12 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report/open_shortcut.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/qa.rb +4 -0
- data/lib/fedux_org_stdlib/rake_tasks/qa/rubocop.rb +13 -0
- data/lib/fedux_org_stdlib/rake_tasks/qa/travis.rb +13 -0
- data/lib/fedux_org_stdlib/rake_tasks/terminal.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests.rb +4 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests/cucumber.rb +13 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests/rspec.rb +12 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests/travis.rb +11 -0
- data/lib/fedux_org_stdlib/rake_tasks/version.rb +6 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/bump.rb +8 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/restore.rb +11 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/show.rb +12 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/show_shortcut.rb +9 -0
- data/lib/fedux_org_stdlib/require_files.rb +27 -0
- data/lib/fedux_org_stdlib/version.rb +5 -0
- data/lib/fedux_org_stdlib/version_management/exceptions.rb +9 -0
- data/lib/fedux_org_stdlib/version_management/library_builder.rb +12 -0
- data/lib/fedux_org_stdlib/version_management/ruby_library.rb +13 -0
- data/lib/fedux_org_stdlib/version_management/rubygem_version_file.rb +78 -0
- data/lib/fedux_org_stdlib/version_management/rubygem_version_file_parser.rb +22 -0
- data/lib/fedux_org_stdlib/version_management/version.rb +25 -0
- data/lib/fedux_org_stdlib/version_management/version_builder.rb +12 -0
- data/lib/fedux_org_stdlib/versionable.rb +18 -0
- data/rakefiles/default.rake +8 -1
- data/rakefiles/travis.rake +1 -1
- data/script/console +1 -1
- data/script/terminal +3 -2
- data/spec/app_config_spec.rb +7 -0
- data/spec/colors/html_color_spec.rb +7 -14
- data/spec/command/run_command_spec.rb +9 -10
- data/spec/command/which_spec.rb +8 -9
- data/spec/environment_spec.rb +12 -11
- data/spec/logger/logger_spec.rb +17 -16
- data/spec/logic_converters/on_off_converter_spec.rb +8 -7
- data/spec/logic_converters/true_false_converter_spec.rb +8 -7
- data/spec/logic_converters/y_n_converter_spec.rb +8 -7
- data/spec/logic_converters/yes_no_converter_spec.rb +8 -7
- data/spec/models/base_model_spec.rb +7 -7
- data/spec/models/class_based_model_spec.rb +37 -39
- data/spec/models/filesystem_based_model_spec.rb +24 -24
- data/spec/project/plan_spec.rb +6 -5
- data/spec/project/report_spec.rb +35 -29
- data/spec/project/taskjuggler_spec.rb +13 -12
- data/spec/spec_helper.rb +15 -38
- data/spec/support/environment.rb +16 -0
- data/spec/support/filesystem.rb +19 -0
- data/spec/support/reporting.rb +2 -0
- data/spec/support/rspec.rb +5 -0
- data/spec/support/string.rb +2 -0
- data/spec/version_management/library_builder_spec.rb +5 -4
- data/spec/version_management/ruby_library_spec.rb +5 -4
- data/spec/version_management/rubygem_version_file_parser_spec.rb +27 -16
- data/spec/version_management/rubygem_version_file_spec.rb +56 -54
- data/spec/version_management/version_builder_spec.rb +5 -4
- data/spec/version_management/version_spec.rb +16 -16
- metadata +104 -110
- data/lib/fedux_org/stdlib.rb +0 -15
- data/lib/fedux_org/stdlib/colors/html_color.rb +0 -19
- data/lib/fedux_org/stdlib/command.rb +0 -11
- data/lib/fedux_org/stdlib/command/command_result.rb +0 -14
- data/lib/fedux_org/stdlib/command/run_command.rb +0 -55
- data/lib/fedux_org/stdlib/command/which.rb +0 -67
- data/lib/fedux_org/stdlib/environment.rb +0 -31
- data/lib/fedux_org/stdlib/filesystem.rb +0 -247
- data/lib/fedux_org/stdlib/filesystem/exceptions.rb +0 -13
- data/lib/fedux_org/stdlib/logging.rb +0 -13
- data/lib/fedux_org/stdlib/logging/logger.rb +0 -79
- data/lib/fedux_org/stdlib/logic_converters.rb +0 -12
- data/lib/fedux_org/stdlib/logic_converters/logic_converter.rb +0 -40
- data/lib/fedux_org/stdlib/logic_converters/on_off_converter.rb +0 -36
- data/lib/fedux_org/stdlib/logic_converters/true_false_converter.rb +0 -35
- data/lib/fedux_org/stdlib/logic_converters/y_n_converter.rb +0 -35
- data/lib/fedux_org/stdlib/logic_converters/yes_no_converter.rb +0 -35
- data/lib/fedux_org/stdlib/models.rb +0 -4
- data/lib/fedux_org/stdlib/models/base_model.rb +0 -129
- data/lib/fedux_org/stdlib/models/class_based_model.rb +0 -76
- data/lib/fedux_org/stdlib/models/exceptions.rb +0 -41
- data/lib/fedux_org/stdlib/models/filesystem_based_model.rb +0 -99
- data/lib/fedux_org/stdlib/project.rb +0 -5
- data/lib/fedux_org/stdlib/project/generators/taskjuggler.rb +0 -41
- data/lib/fedux_org/stdlib/project/logger.rb +0 -13
- data/lib/fedux_org/stdlib/project/plan.rb +0 -15
- data/lib/fedux_org/stdlib/project/report.rb +0 -67
- data/lib/fedux_org/stdlib/rake.rb +0 -7
- data/lib/fedux_org/stdlib/rake/console.rb +0 -3
- data/lib/fedux_org/stdlib/rake/documentation.rb +0 -1
- data/lib/fedux_org/stdlib/rake/documentation/yard.rb +0 -14
- data/lib/fedux_org/stdlib/rake/gems.rb +0 -2
- data/lib/fedux_org/stdlib/rake/gems/bundler.rb +0 -12
- data/lib/fedux_org/stdlib/rake/gems/package.rb +0 -7
- data/lib/fedux_org/stdlib/rake/library.rb +0 -8
- data/lib/fedux_org/stdlib/rake/terminal.rb +0 -9
- data/lib/fedux_org/stdlib/rake/tests.rb +0 -3
- data/lib/fedux_org/stdlib/rake/tests/cucumber.rb +0 -6
- data/lib/fedux_org/stdlib/rake/tests/rspec.rb +0 -6
- data/lib/fedux_org/stdlib/rake/tests/travis.rb +0 -15
- data/lib/fedux_org/stdlib/rake/travis.rb +0 -1
- data/lib/fedux_org/stdlib/rake/travis/lint.rb +0 -10
- data/lib/fedux_org/stdlib/rake/version.rb +0 -4
- data/lib/fedux_org/stdlib/rake/version/base.rb +0 -7
- data/lib/fedux_org/stdlib/rake/version/bump.rb +0 -78
- data/lib/fedux_org/stdlib/rake/version/restore.rb +0 -9
- data/lib/fedux_org/stdlib/rake/version/show.rb +0 -9
- data/lib/fedux_org/stdlib/rake/version/show_shortcut.rb +0 -6
- data/lib/fedux_org/stdlib/version.rb +0 -6
- data/lib/fedux_org/stdlib/version_management/library_builder.rb +0 -15
- data/lib/fedux_org/stdlib/version_management/ruby_library.rb +0 -14
- data/lib/fedux_org/stdlib/version_management/rubygem_version_file.rb +0 -90
- data/lib/fedux_org/stdlib/version_management/rubygem_version_file_parser.rb +0 -18
- data/lib/fedux_org/stdlib/version_management/version.rb +0 -33
- data/lib/fedux_org/stdlib/version_management/version_builder.rb +0 -15
data/spec/project/plan_spec.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'spec_helper'
|
2
|
-
require '
|
3
|
+
require 'fedux_org_stdlib/project/plan'
|
3
4
|
|
4
|
-
describe
|
5
|
-
context '#
|
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 =
|
9
|
-
expect(
|
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
|
data/spec/project/report_spec.rb
CHANGED
@@ -1,53 +1,60 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'spec_helper'
|
2
|
-
require '
|
3
|
-
require '
|
3
|
+
require 'fedux_org_stdlib/project/report'
|
4
|
+
require 'fedux_org_stdlib/filesystem'
|
4
5
|
|
5
|
-
describe
|
6
|
+
RSpec.describe FeduxOrgStdlib::Project::Report do
|
6
7
|
context '#generate' do
|
7
|
-
|
8
8
|
it 'generates report' do
|
9
|
-
|
10
|
-
|
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(
|
13
|
-
expect(
|
16
|
+
generator = double('Generator')
|
17
|
+
expect(generator).to receive(:generate_report)
|
14
18
|
|
15
|
-
report =
|
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(
|
21
|
-
report_file = create_file(
|
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(
|
26
|
-
allow(
|
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(
|
29
|
-
expect(
|
33
|
+
generator = double('Generator')
|
34
|
+
expect(generator).to receive(:generate_report).once
|
30
35
|
|
31
36
|
switch_to_working_directory do
|
32
|
-
report =
|
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(
|
39
|
-
report_file = create_file(
|
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(
|
44
|
-
|
48
|
+
plan = double('Plan')
|
49
|
+
expect(plan).to receive(:needs_to_be_compiled?).with(report_file).and_return(false)
|
45
50
|
|
46
|
-
generator = double(
|
51
|
+
generator = double('Generator')
|
52
|
+
expect(generator).not_to receive(:generate_report)
|
47
53
|
|
48
54
|
switch_to_working_directory do
|
49
|
-
report =
|
50
|
-
|
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(
|
60
|
-
generator = double(
|
61
|
-
|
66
|
+
plan = double('Plan')
|
67
|
+
generator = double('Generator')
|
68
|
+
report_file = create_file('reports/Overview.html')
|
62
69
|
|
63
|
-
|
64
|
-
|
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 '
|
3
|
+
require 'fedux_org_stdlib/project/generators/taskjuggler'
|
3
4
|
|
4
|
-
describe
|
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(
|
8
|
-
plan_file = File.join(
|
8
|
+
directory = create_directory('projects')
|
9
|
+
plan_file = File.join(examples_directory, 'project', 'plan.tjp')
|
9
10
|
|
10
|
-
generator =
|
11
|
+
generator = FeduxOrgStdlib::Project::Generators::Taskjuggler.new
|
11
12
|
|
12
13
|
switch_to_working_directory do
|
13
|
-
silence(
|
14
|
-
generator.generate_report(
|
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(
|
21
|
-
plan_file = File.join(
|
21
|
+
directory = create_directory('projects')
|
22
|
+
plan_file = File.join(examples_directory, 'project', 'plan_does_not_exist.tjp')
|
22
23
|
|
23
|
-
generator =
|
24
|
+
generator = FeduxOrgStdlib::Project::Generators::Taskjuggler.new
|
24
25
|
|
25
26
|
expect {
|
26
27
|
switch_to_working_directory do
|
27
|
-
silence(
|
28
|
-
generator.generate_report(
|
28
|
+
silence(:stderr) do
|
29
|
+
generator.generate_report(directory, plan_file)
|
29
30
|
end
|
30
31
|
|
31
32
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,46 +1,23 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
require 'ap'
|
8
|
-
require 'benchmark'
|
9
|
-
end
|
8
|
+
require 'simplecov'
|
9
|
+
SimpleCov.command_name 'rspec'
|
10
|
+
SimpleCov.start
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
18
|
-
|
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(
|
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
|
@@ -1,11 +1,12 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'spec_helper'
|
2
|
-
require '
|
3
|
+
require 'fedux_org_stdlib/version_management/library_builder'
|
3
4
|
|
4
|
-
describe
|
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 =
|
8
|
-
expect(
|
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 '
|
3
|
+
require 'fedux_org_stdlib/version_management/ruby_library'
|
3
4
|
|
4
|
-
describe
|
5
|
+
RSpec.describe FeduxOrgStdlib::VersionManagement::RubyLibrary do
|
5
6
|
context '#module_names' do
|
6
7
|
it 'nows about module names' do
|
7
|
-
lib =
|
8
|
-
expect(
|
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 '
|
3
|
+
require 'fedux_org_stdlib/version_management/rubygem_version_file_parser'
|
3
4
|
|
4
|
-
describe
|
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(
|
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(
|
18
|
+
parser.parse(version_file)
|
19
19
|
|
20
|
-
expect(
|
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(
|
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(
|
32
|
+
parser.parse(version_file)
|
33
33
|
|
34
|
-
expect(
|
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(
|
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
|
-
|
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
|
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 '
|
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(
|
10
|
-
expect(version).to receive(
|
8
|
+
version = double('Version')
|
9
|
+
expect(version).to receive(:to_s).and_return('0.0.0')
|
11
10
|
|
12
|
-
library = double(
|
13
|
-
expect(library).to receive(
|
11
|
+
library = double('RubyLibrary')
|
12
|
+
expect(library).to receive(:module_names).and_return([ 'MyLibrary' ])
|
14
13
|
|
15
|
-
version_file =
|
16
|
-
expect(
|
17
|
-
#
|
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(
|
27
|
-
expect(version).to receive(
|
26
|
+
version = double('Version')
|
27
|
+
expect(version).to receive(:to_s).and_return('0.0.0')
|
28
28
|
|
29
|
-
library = double(
|
30
|
-
expect(library).to receive(
|
29
|
+
library = double('RubyLibrary')
|
30
|
+
expect(library).to receive(:module_names).and_return([ 'MyLibrary', 'MyClass' ])
|
31
31
|
|
32
|
-
version_file =
|
33
|
-
expect(
|
34
|
-
#
|
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(
|
48
|
-
expect(version).to receive(
|
48
|
+
version = double('Version')
|
49
|
+
expect(version).to receive(:to_s).and_return('0.0.0')
|
49
50
|
|
50
|
-
library = double(
|
51
|
-
expect(library).to receive(
|
52
|
-
version_file =
|
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(
|
56
|
-
expect(
|
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(
|
63
|
-
library = double(
|
63
|
+
version = double('Version')
|
64
|
+
library = double('Library')
|
64
65
|
|
65
|
-
version_builder = double(
|
66
|
-
expect(
|
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(
|
69
|
-
expect(
|
69
|
+
library_builder = double('LibraryBuilder')
|
70
|
+
expect(library_builder).to receive(:build_from).with([ 'MyModule' ]).and_return(library)
|
70
71
|
|
71
|
-
parser = double(
|
72
|
-
expect(
|
73
|
-
expect(
|
74
|
-
expect(
|
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(
|
77
|
-
#
|
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 =
|
86
|
+
result = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.read(version_file, parser, version_builder, library_builder)
|
85
87
|
|
86
|
-
expect(
|
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(
|
93
|
-
expect(version).to receive(
|
94
|
+
version = double('Version')
|
95
|
+
expect(version).to receive(:to_s).and_return('0.0.0')
|
94
96
|
|
95
|
-
library = double(
|
97
|
+
library = double('RubyLibrary')
|
96
98
|
|
97
|
-
version_file =
|
98
|
-
expect(
|
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(
|
105
|
-
expect(version).to receive(
|
106
|
-
expect(version).to receive(
|
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(
|
110
|
+
library = double('RubyLibrary')
|
109
111
|
|
110
|
-
version_file =
|
111
|
-
version_file.bump(
|
112
|
+
version_file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.new(version, library)
|
113
|
+
version_file.bump(:major)
|
112
114
|
|
113
|
-
expect(
|
115
|
+
expect(version_file.version).to eq('1.0.0')
|
114
116
|
end
|
115
117
|
end
|
116
118
|
end
|