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