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.
- 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/logger/logger_spec.rb
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
|
-
describe
|
|
4
|
+
RSpec.describe FeduxOrgStdlib::Logging::Logger do
|
|
4
5
|
context '#new' do
|
|
5
6
|
it 'defaults to ruby logger class' do
|
|
6
|
-
logger =
|
|
7
|
-
expect(
|
|
7
|
+
logger = FeduxOrgStdlib::Logging::Logger.new
|
|
8
|
+
expect(logger.respond_to? :debug).to be_truthy
|
|
8
9
|
end
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
context '#reset' do
|
|
12
13
|
it '_resets_ the logger to the ruby logger' do
|
|
13
|
-
log1 = double(
|
|
14
|
-
allow(
|
|
15
|
-
allow(
|
|
14
|
+
log1 = double('Logger')
|
|
15
|
+
allow(log1).to receive(:level=)
|
|
16
|
+
allow(log1).to receive(:formatter=)
|
|
16
17
|
|
|
17
|
-
logger =
|
|
18
|
-
expect(
|
|
18
|
+
logger = FeduxOrgStdlib::Logging::Logger.new(log1)
|
|
19
|
+
expect(logger.instance_variable_get(:@logger)).to be_kind_of ::RSpec::Mocks::Double
|
|
19
20
|
logger.reset
|
|
20
|
-
expect(
|
|
21
|
+
expect(logger.instance_variable_get(:@logger)).to be_kind_of ::Logger
|
|
21
22
|
end
|
|
22
23
|
end
|
|
23
24
|
|
|
@@ -25,26 +26,26 @@ describe FeduxOrg::Stdlib::Logging::Logger do
|
|
|
25
26
|
it 'defaults to info mode' do
|
|
26
27
|
bucket = StringIO.new
|
|
27
28
|
|
|
28
|
-
logger =
|
|
29
|
+
logger = FeduxOrgStdlib::Logging::Logger.new(Logger.new(bucket))
|
|
29
30
|
logger.debug 'Not visible'
|
|
30
31
|
logger.info 'Visible'
|
|
31
32
|
|
|
32
|
-
expect(
|
|
33
|
-
expect(
|
|
33
|
+
expect(bucket.string).to include('Visible')
|
|
34
|
+
expect(bucket.string).not_to include('Not visible')
|
|
34
35
|
end
|
|
35
36
|
|
|
36
37
|
it 'changes the mode (log level) of the logger' do
|
|
37
38
|
bucket = StringIO.new
|
|
38
39
|
|
|
39
|
-
logger =
|
|
40
|
+
logger = FeduxOrgStdlib::Logging::Logger.new(Logger.new(bucket))
|
|
40
41
|
logger.debug 'Not visible Debug'
|
|
41
42
|
logger.info 'Visible Info'
|
|
42
43
|
logger.mode = :debug
|
|
43
44
|
logger.debug 'Visible Debug'
|
|
44
45
|
|
|
45
|
-
expect(
|
|
46
|
-
expect(
|
|
47
|
-
expect(
|
|
46
|
+
expect(bucket.string).not_to include('Not visible Debug')
|
|
47
|
+
expect(bucket.string).to include('Visible Info')
|
|
48
|
+
expect(bucket.string).to include('Visible Debug')
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
end
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'fedux_org_stdlib/logic_converters/on_off_converter'
|
|
2
3
|
|
|
3
|
-
describe
|
|
4
|
-
let(
|
|
4
|
+
RSpec.describe FeduxOrgStdlib::LogicConverters::OnOffConverter do
|
|
5
|
+
let(:converter) { FeduxOrgStdlib::LogicConverters::OnOffConverter.new }
|
|
5
6
|
|
|
6
7
|
context '#parse' do
|
|
7
8
|
it 'converts true to on' do
|
|
8
|
-
result = converter.parse(
|
|
9
|
-
expect(
|
|
9
|
+
result = converter.parse(true)
|
|
10
|
+
expect(result).to eq('on')
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
it 'converts false to off' do
|
|
13
|
-
result = converter.parse(
|
|
14
|
-
expect(
|
|
14
|
+
result = converter.parse(false)
|
|
15
|
+
expect(result).to eq('off')
|
|
15
16
|
end
|
|
16
17
|
end
|
|
17
18
|
end
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'fedux_org_stdlib/logic_converters/true_false_converter'
|
|
2
3
|
|
|
3
|
-
describe
|
|
4
|
-
let(
|
|
4
|
+
RSpec.describe FeduxOrgStdlib::LogicConverters::TrueFalseConverter do
|
|
5
|
+
let(:converter) { FeduxOrgStdlib::LogicConverters::TrueFalseConverter.new }
|
|
5
6
|
|
|
6
7
|
context '#parse' do
|
|
7
8
|
it 'converts true to "true"' do
|
|
8
|
-
result = converter.parse(
|
|
9
|
-
expect(
|
|
9
|
+
result = converter.parse(true)
|
|
10
|
+
expect(result).to eq('true')
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
it 'converts false to "false"' do
|
|
13
|
-
result = converter.parse(
|
|
14
|
-
expect(
|
|
14
|
+
result = converter.parse(false)
|
|
15
|
+
expect(result).to eq('false')
|
|
15
16
|
end
|
|
16
17
|
end
|
|
17
18
|
end
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'fedux_org_stdlib/logic_converters/y_n_converter'
|
|
2
3
|
|
|
3
|
-
describe
|
|
4
|
-
let(
|
|
4
|
+
RSpec.describe FeduxOrgStdlib::LogicConverters::YNConverter do
|
|
5
|
+
let(:converter) { FeduxOrgStdlib::LogicConverters::YNConverter.new }
|
|
5
6
|
|
|
6
7
|
context '#parse' do
|
|
7
8
|
it 'converts true to on' do
|
|
8
|
-
result = converter.parse(
|
|
9
|
-
expect(
|
|
9
|
+
result = converter.parse(true)
|
|
10
|
+
expect(result).to eq('y')
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
it 'converts false to off' do
|
|
13
|
-
result = converter.parse(
|
|
14
|
-
expect(
|
|
14
|
+
result = converter.parse(false)
|
|
15
|
+
expect(result).to eq('n')
|
|
15
16
|
end
|
|
16
17
|
end
|
|
17
18
|
end
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'fedux_org_stdlib/logic_converters/yes_no_converter'
|
|
2
3
|
|
|
3
|
-
describe
|
|
4
|
-
let(
|
|
4
|
+
RSpec.describe FeduxOrgStdlib::LogicConverters::YesNoConverter do
|
|
5
|
+
let(:converter) { FeduxOrgStdlib::LogicConverters::YesNoConverter.new }
|
|
5
6
|
|
|
6
7
|
context '#parse' do
|
|
7
8
|
it 'converts true to "true"' do
|
|
8
|
-
result = converter.parse(
|
|
9
|
-
expect(
|
|
9
|
+
result = converter.parse(true)
|
|
10
|
+
expect(result).to eq('yes')
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
it 'converts false to "false"' do
|
|
13
|
-
result = converter.parse(
|
|
14
|
-
expect(
|
|
14
|
+
result = converter.parse(false)
|
|
15
|
+
expect(result).to eq('no')
|
|
15
16
|
end
|
|
16
17
|
end
|
|
17
18
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
3
|
+
require 'fedux_org_stdlib/models'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
describe Models::BaseModel do
|
|
5
|
+
RSpec.describe Models::BaseModel do
|
|
6
6
|
|
|
7
7
|
before(:each) {
|
|
8
8
|
Models::BaseModel.clear
|
|
@@ -41,7 +41,7 @@ describe Models::BaseModel do
|
|
|
41
41
|
it "raises an error if instance given by name is not available" do
|
|
42
42
|
expect {
|
|
43
43
|
Models::BaseModel.enable :name1
|
|
44
|
-
}.to raise_error
|
|
44
|
+
}.to raise_error FeduxOrgStdlib::Models::Exceptions::InvalidSearchCriteria
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
end
|
|
@@ -82,7 +82,7 @@ describe Models::BaseModel do
|
|
|
82
82
|
Models::BaseModel.create('name3')
|
|
83
83
|
|
|
84
84
|
Models::BaseModel.clear
|
|
85
|
-
expect(Models::BaseModel.all).to eq(
|
|
85
|
+
expect(Models::BaseModel.all).to eq([])
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
it "return first object" do
|
|
@@ -91,7 +91,7 @@ describe Models::BaseModel do
|
|
|
91
91
|
Models::BaseModel.create('name3')
|
|
92
92
|
|
|
93
93
|
result = Models::BaseModel.first
|
|
94
|
-
expect(result).to eq(
|
|
94
|
+
expect(result).to eq(expected_result)
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
it "return last object" do
|
|
@@ -100,7 +100,7 @@ describe Models::BaseModel do
|
|
|
100
100
|
expected_result = Models::BaseModel.create('name3')
|
|
101
101
|
|
|
102
102
|
result = Models::BaseModel.last
|
|
103
|
-
expect(result).to eq(
|
|
103
|
+
expect(result).to eq(expected_result)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
end
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
3
|
+
require 'fedux_org_stdlib/models/class_based_model'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
describe Models::ClassBasedModel do
|
|
6
|
-
|
|
5
|
+
RSpec.describe Models::ClassBasedModel do
|
|
7
6
|
before(:each) do
|
|
8
|
-
|
|
9
7
|
module TestIt
|
|
10
8
|
module Exceptions
|
|
11
9
|
class InvalidTestClass < Exception; end
|
|
@@ -14,11 +12,11 @@ describe Models::ClassBasedModel do
|
|
|
14
12
|
|
|
15
13
|
module Test123
|
|
16
14
|
module Models
|
|
17
|
-
class TestClassForFilesystem <
|
|
18
|
-
include
|
|
19
|
-
include
|
|
15
|
+
class TestClassForFilesystem < FeduxOrgStdlib::Models::BaseModel
|
|
16
|
+
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
17
|
+
include FeduxOrgStdlib::Models::ClassBasedModel
|
|
20
18
|
def self.model_path
|
|
21
|
-
File.join(
|
|
19
|
+
File.join(examples_dir, 'models', 'class_based.rb')
|
|
22
20
|
end
|
|
23
21
|
end
|
|
24
22
|
end
|
|
@@ -26,11 +24,11 @@ describe Models::ClassBasedModel do
|
|
|
26
24
|
|
|
27
25
|
module Test123
|
|
28
26
|
module Models
|
|
29
|
-
class TestClassForFilesystem2 <
|
|
30
|
-
include
|
|
31
|
-
include
|
|
27
|
+
class TestClassForFilesystem2 < FeduxOrgStdlib::Models::BaseModel
|
|
28
|
+
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
29
|
+
include FeduxOrgStdlib::Models::ClassBasedModel
|
|
32
30
|
def self.model_path
|
|
33
|
-
File.join(
|
|
31
|
+
File.join(examples_dir, 'models', 'forbidden.rb')
|
|
34
32
|
end
|
|
35
33
|
|
|
36
34
|
def self.forbidden_keywords
|
|
@@ -86,11 +84,11 @@ describe Models::ClassBasedModel do
|
|
|
86
84
|
end
|
|
87
85
|
|
|
88
86
|
def self.path_to_instances
|
|
89
|
-
File.join(
|
|
87
|
+
File.join(examples_dir, 'models', 'class_based', 'valid_1.rb')
|
|
90
88
|
end
|
|
91
89
|
|
|
92
90
|
def self.require_path(name)
|
|
93
|
-
File.join(
|
|
91
|
+
File.join(examples_dir, 'models', 'class_based', 'valid_1')
|
|
94
92
|
end
|
|
95
93
|
end
|
|
96
94
|
|
|
@@ -122,11 +120,11 @@ describe Models::ClassBasedModel do
|
|
|
122
120
|
end
|
|
123
121
|
|
|
124
122
|
def self.path_to_instances
|
|
125
|
-
File.join(
|
|
123
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_1.rb')
|
|
126
124
|
end
|
|
127
125
|
|
|
128
126
|
def self.require_path(name)
|
|
129
|
-
File.join(
|
|
127
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_1')
|
|
130
128
|
end
|
|
131
129
|
end
|
|
132
130
|
|
|
@@ -155,11 +153,11 @@ describe Models::ClassBasedModel do
|
|
|
155
153
|
end
|
|
156
154
|
|
|
157
155
|
def self.path_to_instances
|
|
158
|
-
File.join(
|
|
156
|
+
File.join(examples_dir, 'models', 'class_based', 'forbidden_keyword.rb')
|
|
159
157
|
end
|
|
160
158
|
|
|
161
159
|
def self.require_path(name)
|
|
162
|
-
File.join(
|
|
160
|
+
File.join(examples_dir, 'models', 'class_based', 'forbidden_keyword')
|
|
163
161
|
end
|
|
164
162
|
|
|
165
163
|
def self.forbidden_keywords
|
|
@@ -169,7 +167,7 @@ describe Models::ClassBasedModel do
|
|
|
169
167
|
|
|
170
168
|
expect {
|
|
171
169
|
test_class.init
|
|
172
|
-
}.to raise_error
|
|
170
|
+
}.to raise_error FeduxOrgStdlib::Models::Exceptions::UnauthorizedUseOfKeyword
|
|
173
171
|
end
|
|
174
172
|
|
|
175
173
|
context "#check_method" do
|
|
@@ -193,11 +191,11 @@ describe Models::ClassBasedModel do
|
|
|
193
191
|
end
|
|
194
192
|
|
|
195
193
|
def self.path_to_instances
|
|
196
|
-
File.join(
|
|
194
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_2.rb')
|
|
197
195
|
end
|
|
198
196
|
|
|
199
197
|
def self.require_path(name)
|
|
200
|
-
File.join(
|
|
198
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_2')
|
|
201
199
|
end
|
|
202
200
|
|
|
203
201
|
def self.check_method
|
|
@@ -230,11 +228,11 @@ describe Models::ClassBasedModel do
|
|
|
230
228
|
end
|
|
231
229
|
|
|
232
230
|
def self.path_to_instances
|
|
233
|
-
File.join(
|
|
231
|
+
File.join(examples_dir, 'models', 'class_based', 'valid_2.rb')
|
|
234
232
|
end
|
|
235
233
|
|
|
236
234
|
def self.require_path(name)
|
|
237
|
-
File.join(
|
|
235
|
+
File.join(examples_dir, 'models', 'class_based', 'valid_2')
|
|
238
236
|
end
|
|
239
237
|
|
|
240
238
|
def self.check_method
|
|
@@ -267,11 +265,11 @@ describe Models::ClassBasedModel do
|
|
|
267
265
|
end
|
|
268
266
|
|
|
269
267
|
def self.path_to_instances
|
|
270
|
-
File.join(
|
|
268
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_3.rb')
|
|
271
269
|
end
|
|
272
270
|
|
|
273
271
|
def self.require_path(name)
|
|
274
|
-
File.join(
|
|
272
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_3')
|
|
275
273
|
end
|
|
276
274
|
|
|
277
275
|
def self.check_method
|
|
@@ -290,30 +288,30 @@ describe Models::ClassBasedModel do
|
|
|
290
288
|
include Models::FilesystemBasedModel
|
|
291
289
|
|
|
292
290
|
def self.require_path(name)
|
|
293
|
-
File.join(
|
|
291
|
+
File.join(examples_dir, 'models', 'class_based', 'invalid_2')
|
|
294
292
|
end
|
|
295
293
|
|
|
296
294
|
end
|
|
297
|
-
expect_result = File.join(
|
|
298
|
-
result = model.send(
|
|
295
|
+
expect_result = File.join(examples_dir, 'models', 'class_based', 'invalid_2')
|
|
296
|
+
result = model.send(:require_path, :name)
|
|
299
297
|
|
|
300
|
-
expect(
|
|
298
|
+
expect(result).to eq(expect_result)
|
|
301
299
|
end
|
|
302
300
|
|
|
303
301
|
it "returns the name for the instance based on the path to the ruby file" do
|
|
304
|
-
expect(
|
|
302
|
+
expect(Test123::Models::TestClassForFilesystem.send(:name, Test123::Models::TestClassForFilesystem.send(:model_path))).to eq(:class_based)
|
|
305
303
|
end
|
|
306
304
|
|
|
307
305
|
it "check if the name for the instances is forbidden" do
|
|
308
306
|
expect {
|
|
309
|
-
Test123::Models::TestClassForFilesystem2.send(:name, Test123::Models::TestClassForFilesystem2.send(
|
|
310
|
-
}.to raise_error
|
|
307
|
+
Test123::Models::TestClassForFilesystem2.send(:name, Test123::Models::TestClassForFilesystem2.send(:model_path))
|
|
308
|
+
}.to raise_error FeduxOrgStdlib::Models::Exceptions::UnauthorizedUseOfKeyword
|
|
311
309
|
end
|
|
312
310
|
|
|
313
311
|
it "raises an exception if no valid algorithms could be found for model" do
|
|
314
|
-
klass = Class.new(
|
|
315
|
-
include
|
|
316
|
-
include
|
|
312
|
+
klass = Class.new(FeduxOrgStdlib::Models::BaseModel) do
|
|
313
|
+
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
314
|
+
include FeduxOrgStdlib::Models::ClassBasedModel
|
|
317
315
|
|
|
318
316
|
def self.module_name
|
|
319
317
|
'ProjectXY'
|
|
@@ -329,7 +327,7 @@ describe Models::ClassBasedModel do
|
|
|
329
327
|
end
|
|
330
328
|
expect {
|
|
331
329
|
klass.send(:load_from_filesystem)
|
|
332
|
-
}.to raise_error
|
|
330
|
+
}.to raise_error FeduxOrgStdlib::Models::Exceptions::NoImplementationsForModelFound
|
|
333
331
|
end
|
|
334
332
|
|
|
335
333
|
it "#ignore" do
|
|
@@ -352,11 +350,11 @@ describe Models::ClassBasedModel do
|
|
|
352
350
|
end
|
|
353
351
|
|
|
354
352
|
def self.path_to_instances
|
|
355
|
-
File.join(
|
|
353
|
+
File.join(examples_dir, 'models', 'class_based', 'ignore')
|
|
356
354
|
end
|
|
357
355
|
|
|
358
356
|
def self.require_path(name)
|
|
359
|
-
File.join(
|
|
357
|
+
File.join(examples_dir, 'models', 'class_based', 'ignore', 'valid_1.rb')
|
|
360
358
|
end
|
|
361
359
|
|
|
362
360
|
def self.check_method
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
3
|
+
require 'fedux_org_stdlib/models/filesystem_based_model'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
describe Models::FilesystemBasedModel do
|
|
5
|
+
RSpec.describe Models::FilesystemBasedModel do
|
|
6
6
|
before(:each) do
|
|
7
7
|
@model = Class.new(Models::BaseModel) do
|
|
8
8
|
include Models::FilesystemBasedModel
|
|
9
9
|
|
|
10
10
|
def self.load_from_filesystem
|
|
11
|
-
[ :hello, :world ].each { |s| create(
|
|
11
|
+
[ :hello, :world ].each { |s| create(s) }
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -17,8 +17,8 @@ describe Models::FilesystemBasedModel do
|
|
|
17
17
|
#where a name for a class is relevant
|
|
18
18
|
module Test123
|
|
19
19
|
module Models
|
|
20
|
-
class TestClassForFilesystem <
|
|
21
|
-
include
|
|
20
|
+
class TestClassForFilesystem < FeduxOrgStdlib::Models::BaseModel
|
|
21
|
+
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
end
|
|
@@ -40,10 +40,10 @@ describe Models::FilesystemBasedModel do
|
|
|
40
40
|
it "enables a filter by request" do
|
|
41
41
|
@model.init
|
|
42
42
|
@model.enable(:hello)
|
|
43
|
-
all_enabled_filter = @model.find_all(
|
|
44
|
-
filter = @model.find(
|
|
43
|
+
all_enabled_filter = @model.find_all(enabled: true)
|
|
44
|
+
filter = @model.find(:hello)
|
|
45
45
|
|
|
46
|
-
expect(
|
|
46
|
+
expect(all_enabled_filter).to eq([ filter ])
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
it "s find method supports a hash based syntax" do
|
|
@@ -76,48 +76,48 @@ describe Models::FilesystemBasedModel do
|
|
|
76
76
|
@model.init
|
|
77
77
|
expect {
|
|
78
78
|
enabled_filter = @model.find(unknown: 'hello')
|
|
79
|
-
}.to raise_error
|
|
79
|
+
}.to raise_error FeduxOrgStdlib::Models::Exceptions::InvalidSearchCriteria
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
it "returns the module name" do
|
|
83
|
-
expect(
|
|
83
|
+
expect(Test123::Models::TestClassForFilesystem.send(:module_name)).to eq('Test123::Models')
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
it "returns the model name" do
|
|
87
|
-
expect(
|
|
87
|
+
expect(Test123::Models::TestClassForFilesystem.send(:model_name)).to eq('TestClassForFilesystem')
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
context "#library_name" do
|
|
91
91
|
it "returns the library name" do
|
|
92
|
-
expect(
|
|
92
|
+
expect(Test123::Models::TestClassForFilesystem.send(:library_name)).to eq('Test123')
|
|
93
93
|
end
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
context "#path_to_instances" do
|
|
97
|
-
klass = Class.new(
|
|
98
|
-
include
|
|
97
|
+
klass = Class.new(FeduxOrgStdlib::Models::BaseModel) do
|
|
98
|
+
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
99
99
|
|
|
100
100
|
def self.model_name
|
|
101
101
|
'FindFiles'
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def self.model_path
|
|
105
|
-
File.join(
|
|
105
|
+
File.join(examples_dir, 'models', 'filesystem_based', 'find_files')
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
it "returns the path to the instances" do
|
|
111
|
-
expect(
|
|
111
|
+
expect(klass.send(:path_to_instances)).to eq(File.join(examples_dir, 'models', 'find_files'))
|
|
112
112
|
end
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
context "#find_files" do
|
|
116
|
-
klass = Class.new(
|
|
117
|
-
include
|
|
116
|
+
klass = Class.new(FeduxOrgStdlib::Models::BaseModel) do
|
|
117
|
+
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
118
118
|
|
|
119
119
|
def self.path_to_instances
|
|
120
|
-
File.join(
|
|
120
|
+
File.join(examples_dir, 'models', 'filesystem_based', 'find_files')
|
|
121
121
|
end
|
|
122
122
|
|
|
123
123
|
def self.suffix
|
|
@@ -126,12 +126,12 @@ describe Models::FilesystemBasedModel do
|
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
it "search for available instances in filesystem" do
|
|
129
|
-
expect(
|
|
129
|
+
expect(klass.send(:find_files)).to eq(
|
|
130
130
|
[
|
|
131
|
-
File.join(
|
|
132
|
-
File.join(
|
|
131
|
+
File.join(examples_dir, 'models', 'filesystem_based', 'find_files', 'abc.rb'),
|
|
132
|
+
File.join(examples_dir, 'models', 'filesystem_based', 'find_files', 'cde.rb')
|
|
133
133
|
]
|
|
134
|
-
|
|
134
|
+
)
|
|
135
135
|
end
|
|
136
136
|
end
|
|
137
137
|
|