fedux_org-stdlib 0.7.21 → 0.7.22
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 +4 -4
- data/.rubocop.yml +3 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +23 -19
- data/Rakefile +16 -0
- data/config/rubocop/exclude.yml +44 -0
- data/config/rubocop/include.yml +0 -0
- data/fedux_org-stdlib.gemspec +9 -9
- data/fixtures/plugin-load-app/fedux_org_stdlib-fixtures-plugin_manager-plugin-load.gemspec +11 -11
- data/fixtures/plugin-no_load-app/fedux_org_stdlib-fixtures-plugin_manager-plugin-no_load.gemspec +11 -11
- data/lib/fedux_org_stdlib.rb +2 -1
- data/lib/fedux_org_stdlib/app_config.rb +22 -21
- data/lib/fedux_org_stdlib/colors/html_color.rb +8 -2
- data/lib/fedux_org_stdlib/command.rb +1 -0
- data/lib/fedux_org_stdlib/command/command_result.rb +1 -0
- data/lib/fedux_org_stdlib/command/run_command.rb +6 -5
- data/lib/fedux_org_stdlib/command/which.rb +17 -17
- data/lib/fedux_org_stdlib/core_ext/array/list.rb +6 -1
- data/lib/fedux_org_stdlib/core_ext/hash/list.rb +6 -1
- data/lib/fedux_org_stdlib/core_ext/hash/options.rb +1 -0
- data/lib/fedux_org_stdlib/core_ext/shellwords/clean.rb +8 -0
- data/lib/fedux_org_stdlib/core_ext/string/underline.rb +9 -1
- data/lib/fedux_org_stdlib/environment.rb +6 -4
- data/lib/fedux_org_stdlib/file_template.rb +8 -10
- data/lib/fedux_org_stdlib/filesystem.rb +30 -29
- data/lib/fedux_org_stdlib/filesystem/exceptions.rb +1 -1
- data/lib/fedux_org_stdlib/gem_plugins/exceptions.rb +1 -0
- data/lib/fedux_org_stdlib/gem_plugins/no_plugin.rb +1 -2
- data/lib/fedux_org_stdlib/gem_plugins/plugin.rb +6 -6
- data/lib/fedux_org_stdlib/gem_plugins/plugin_manager.rb +6 -7
- data/lib/fedux_org_stdlib/list.rb +24 -2
- data/lib/fedux_org_stdlib/logging.rb +3 -2
- data/lib/fedux_org_stdlib/logging/logger.rb +7 -7
- data/lib/fedux_org_stdlib/logging/severity.rb +3 -0
- data/lib/fedux_org_stdlib/logic_converters.rb +1 -0
- data/lib/fedux_org_stdlib/logic_converters/exceptions.rb +2 -2
- data/lib/fedux_org_stdlib/logic_converters/logic_converter.rb +9 -8
- data/lib/fedux_org_stdlib/logic_converters/on_off_converter.rb +5 -4
- data/lib/fedux_org_stdlib/logic_converters/true_false_converter.rb +3 -3
- data/lib/fedux_org_stdlib/logic_converters/y_n_converter.rb +3 -3
- data/lib/fedux_org_stdlib/logic_converters/yes_no_converter.rb +4 -3
- data/lib/fedux_org_stdlib/models/base_model.rb +24 -25
- data/lib/fedux_org_stdlib/models/class_based_model.rb +15 -14
- data/lib/fedux_org_stdlib/models/exceptions.rb +14 -15
- data/lib/fedux_org_stdlib/models/filesystem_based_model.rb +12 -15
- data/lib/fedux_org_stdlib/process_environment.rb +11 -1
- data/lib/fedux_org_stdlib/project.rb +0 -1
- data/lib/fedux_org_stdlib/project/generators/taskjuggler.rb +11 -10
- data/lib/fedux_org_stdlib/project/logger.rb +1 -0
- data/lib/fedux_org_stdlib/project/plan.rb +1 -1
- data/lib/fedux_org_stdlib/project/report.rb +8 -9
- data/lib/fedux_org_stdlib/rake/project.rb +4 -4
- data/lib/fedux_org_stdlib/rake/project_task.rb +2 -3
- data/lib/fedux_org_stdlib/rake/shell_task.rb +7 -7
- data/lib/fedux_org_stdlib/rake/sub_task.rb +2 -2
- data/lib/fedux_org_stdlib/rake/task.rb +7 -6
- data/lib/fedux_org_stdlib/rake/version_bump_task.rb +6 -7
- data/lib/fedux_org_stdlib/rake_tasks/console.rb +0 -1
- data/lib/fedux_org_stdlib/rake_tasks/documentation/yard.rb +2 -2
- data/lib/fedux_org_stdlib/rake_tasks/gems/bundler.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/gems/package.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/project/report/generate.rb +1 -2
- data/lib/fedux_org_stdlib/rake_tasks/project/report/open.rb +1 -2
- data/lib/fedux_org_stdlib/rake_tasks/project/report/open_shortcut.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/qa/rubocop.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/qa/travis.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/software_version/bump.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/software_version/restore.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/software_version/show.rb +2 -3
- data/lib/fedux_org_stdlib/rake_tasks/software_version/show_shortcut.rb +1 -1
- data/lib/fedux_org_stdlib/rake_tasks/tests/cucumber.rb +0 -1
- data/lib/fedux_org_stdlib/rake_tasks/tests/travis.rb +1 -1
- data/lib/fedux_org_stdlib/require_files.rb +5 -4
- data/lib/fedux_org_stdlib/roles/typable.rb +2 -3
- data/lib/fedux_org_stdlib/roles/versionable.rb +3 -2
- data/lib/fedux_org_stdlib/shell_language_detector.rb +21 -2
- data/lib/fedux_org_stdlib/shell_language_detector/language.rb +9 -1
- data/lib/fedux_org_stdlib/support_information.rb +60 -55
- data/lib/fedux_org_stdlib/template_directory.rb +8 -11
- data/lib/fedux_org_stdlib/version.rb +1 -1
- data/lib/fedux_org_stdlib/version_management/library_builder.rb +3 -2
- data/lib/fedux_org_stdlib/version_management/ruby_library.rb +2 -2
- data/lib/fedux_org_stdlib/version_management/rubygem_version_file.rb +3 -3
- data/lib/fedux_org_stdlib/version_management/rubygem_version_file_parser.rb +5 -5
- data/lib/fedux_org_stdlib/version_management/software_version.rb +4 -3
- data/lib/fedux_org_stdlib/version_management/version_builder.rb +1 -0
- data/rakefiles/default.rake +16 -0
- data/script/terminal +5 -5
- data/spec/app_config_spec.rb +6 -6
- data/spec/colors/html_color_spec.rb +1 -1
- data/spec/core_ext/array/list_spec.rb +8 -8
- data/spec/core_ext/hash/options_spec.rb +17 -17
- data/spec/core_ext/shellwords/clean_spec.rb +1 -1
- data/spec/environment_spec.rb +7 -5
- data/spec/examples/models/class_based/invalid_2.rb +1 -1
- data/spec/examples/models/class_based/valid_2.rb +1 -0
- data/spec/gem_plugins/plugin_manager_spec.rb +1 -1
- data/spec/logger/logger_spec.rb +1 -1
- data/spec/models/base_model_spec.rb +22 -22
- data/spec/models/class_based_model_spec.rb +66 -66
- data/spec/models/filesystem_based_model_spec.rb +28 -28
- data/spec/project/plan_spec.rb +1 -1
- data/spec/project/report_spec.rb +2 -2
- data/spec/project/taskjuggler_spec.rb +4 -4
- data/spec/spec_helper.rb +1 -3
- data/spec/support/rspec.rb +1 -1
- data/spec/version_management/library_builder_spec.rb +2 -2
- data/spec/version_management/ruby_library_spec.rb +2 -2
- data/spec/version_management/rubygem_version_file_parser_spec.rb +8 -8
- data/spec/version_management/rubygem_version_file_spec.rb +8 -8
- data/spec/version_management/software_version_spec.rb +1 -1
- metadata +5 -2
|
@@ -12,7 +12,7 @@ RSpec.describe GemPlugins::PluginManager do
|
|
|
12
12
|
expect('FeduxOrgStdlib::Fixtures::PluginManager::Plugin::Load').to be_defined
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
context '#disable' do
|
|
17
17
|
it 'disable plugin' do
|
|
18
18
|
manager = GemPlugins::PluginManager.new prefix: 'fedux_org_stdlib-fixtures-plugin_manager-'
|
data/spec/logger/logger_spec.rb
CHANGED
|
@@ -18,7 +18,7 @@ RSpec.describe FeduxOrgStdlib::Logging::Logger do
|
|
|
18
18
|
logger = FeduxOrgStdlib::Logging::Logger.new(log1)
|
|
19
19
|
expect(logger.instance_variable_get(:@logger)).to be_kind_of ::RSpec::Mocks::Double
|
|
20
20
|
logger.reset
|
|
21
|
-
expect(logger.instance_variable_get(:@logger)).to be_kind_of ::Logger
|
|
21
|
+
expect(logger.instance_variable_get(:@logger)).to be_kind_of ::Logger
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -4,17 +4,17 @@ require 'fedux_org_stdlib/models'
|
|
|
4
4
|
|
|
5
5
|
RSpec.describe Models::BaseModel do
|
|
6
6
|
|
|
7
|
-
before(:each)
|
|
7
|
+
before(:each) do
|
|
8
8
|
Models::BaseModel.clear
|
|
9
|
-
|
|
9
|
+
end
|
|
10
10
|
|
|
11
|
-
it
|
|
11
|
+
it 'is possible to register a message' do
|
|
12
12
|
m1 = Models::BaseModel.new('name')
|
|
13
13
|
Models::BaseModel.register m1
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
context
|
|
17
|
-
it
|
|
16
|
+
context '#find' do
|
|
17
|
+
it 'is possible to find an object' do
|
|
18
18
|
m1 = Models::BaseModel.new('name')
|
|
19
19
|
Models::BaseModel.register m1
|
|
20
20
|
|
|
@@ -23,60 +23,60 @@ RSpec.describe Models::BaseModel do
|
|
|
23
23
|
expect(m1).to eq(m_found)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
it
|
|
26
|
+
it 'returns nil if no instance is available' do
|
|
27
27
|
m_found = Models::BaseModel.find('name')
|
|
28
28
|
|
|
29
29
|
expect(m_found).to eq(nil)
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
context
|
|
34
|
-
it
|
|
33
|
+
context '#enable' do
|
|
34
|
+
it 'enables instances' do
|
|
35
35
|
m = Models::BaseModel.create(:name1)
|
|
36
36
|
Models::BaseModel.enable :name1
|
|
37
37
|
|
|
38
38
|
expect(Models::BaseModel.all.first).to eq(m)
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
it
|
|
42
|
-
expect
|
|
41
|
+
it 'raises an error if instance given by name is not available' do
|
|
42
|
+
expect do
|
|
43
43
|
Models::BaseModel.enable :name1
|
|
44
|
-
|
|
44
|
+
end.to raise_error FeduxOrgStdlib::Models::Exceptions::InvalidSearchCriteria
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
it
|
|
49
|
+
it 'returns a string of all active instances' do
|
|
50
50
|
Models::BaseModel.create(:name1)
|
|
51
51
|
Models::BaseModel.create(:name2)
|
|
52
52
|
Models::BaseModel.enable :name1
|
|
53
53
|
Models::BaseModel.enable :name2
|
|
54
54
|
|
|
55
|
-
result = Models::BaseModel.all_names_as_string(
|
|
56
|
-
expect(result).to eq(
|
|
55
|
+
result = Models::BaseModel.all_names_as_string(', ')
|
|
56
|
+
expect(result).to eq('name1, name2')
|
|
57
57
|
|
|
58
|
-
result = Models::BaseModel.all_names_as_string(
|
|
59
|
-
expect(result).to eq(
|
|
58
|
+
result = Models::BaseModel.all_names_as_string(': ')
|
|
59
|
+
expect(result).to eq('name1: name2')
|
|
60
60
|
|
|
61
61
|
result = Models::BaseModel.all_names_as_string
|
|
62
|
-
expect(result).to eq(
|
|
62
|
+
expect(result).to eq('name1, name2')
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
-
it
|
|
65
|
+
it 'is possible to create and register in one step' do
|
|
66
66
|
m1 = Models::BaseModel.create('name')
|
|
67
67
|
m_found = Models::BaseModel.find('name')
|
|
68
68
|
|
|
69
69
|
expect(m1).to eq(m_found)
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
-
it
|
|
72
|
+
it 'is possible to delete an object' do
|
|
73
73
|
m1 = Models::BaseModel.create('name')
|
|
74
74
|
m2 = Models::BaseModel.delete('name')
|
|
75
75
|
|
|
76
76
|
expect(m1).to eq(m2)
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
-
it
|
|
79
|
+
it 'is possible to delete all objects' do
|
|
80
80
|
Models::BaseModel.create('name1')
|
|
81
81
|
Models::BaseModel.create('name2')
|
|
82
82
|
Models::BaseModel.create('name3')
|
|
@@ -85,7 +85,7 @@ RSpec.describe Models::BaseModel do
|
|
|
85
85
|
expect(Models::BaseModel.all).to eq([])
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
it
|
|
88
|
+
it 'return first object' do
|
|
89
89
|
expected_result = Models::BaseModel.create('name1')
|
|
90
90
|
Models::BaseModel.create('name2')
|
|
91
91
|
Models::BaseModel.create('name3')
|
|
@@ -94,7 +94,7 @@ RSpec.describe Models::BaseModel do
|
|
|
94
94
|
expect(result).to eq(expected_result)
|
|
95
95
|
end
|
|
96
96
|
|
|
97
|
-
it
|
|
97
|
+
it 'return last object' do
|
|
98
98
|
Models::BaseModel.create('name1')
|
|
99
99
|
Models::BaseModel.create('name2')
|
|
100
100
|
expected_result = Models::BaseModel.create('name3')
|
|
@@ -9,30 +9,30 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
9
9
|
class InvalidTestClass < Exception; end
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
module Test123
|
|
14
14
|
module Models
|
|
15
15
|
class TestClassForFilesystem < FeduxOrgStdlib::Models::BaseModel
|
|
16
16
|
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
17
17
|
include FeduxOrgStdlib::Models::ClassBasedModel
|
|
18
18
|
def self.model_path
|
|
19
|
-
File.join(
|
|
19
|
+
File.join(examples_directory, 'models', 'class_based.rb')
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
module Test123
|
|
26
26
|
module Models
|
|
27
27
|
class TestClassForFilesystem2 < FeduxOrgStdlib::Models::BaseModel
|
|
28
28
|
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
29
29
|
include FeduxOrgStdlib::Models::ClassBasedModel
|
|
30
30
|
def self.model_path
|
|
31
|
-
File.join(
|
|
31
|
+
File.join(examples_directory, 'models', 'forbidden.rb')
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def self.forbidden_keywords
|
|
35
|
-
[
|
|
35
|
+
[:forbidden]
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
end
|
|
@@ -40,10 +40,10 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
40
40
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
it
|
|
43
|
+
it 'loads all available instances from the file system and make the classes available.' do
|
|
44
44
|
# all loaded instances need be defined like that
|
|
45
45
|
#
|
|
46
|
-
# model:
|
|
46
|
+
# model:
|
|
47
47
|
# ------
|
|
48
48
|
# class Testmodel
|
|
49
49
|
# end
|
|
@@ -84,11 +84,11 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
def self.path_to_instances
|
|
87
|
-
File.join(
|
|
87
|
+
File.join(examples_directory, 'models', 'class_based', 'valid_1.rb')
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
def self.require_path(
|
|
91
|
-
File.join(
|
|
90
|
+
def self.require_path(_name)
|
|
91
|
+
File.join(examples_directory, 'models', 'class_based', 'valid_1')
|
|
92
92
|
end
|
|
93
93
|
end
|
|
94
94
|
|
|
@@ -96,7 +96,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
96
96
|
expect(test_class.all.first.name).to eq(:valid_1)
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
-
it
|
|
99
|
+
it 'raises an error if an instance is invalid: name error' do
|
|
100
100
|
test_class = Class.new(Models::BaseModel) do
|
|
101
101
|
include Models::FilesystemBasedModel
|
|
102
102
|
include Models::ClassBasedModel
|
|
@@ -108,7 +108,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
def self.model_name
|
|
111
|
-
|
|
111
|
+
'TestClass'
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
def self.library_name
|
|
@@ -120,20 +120,20 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
def self.path_to_instances
|
|
123
|
-
File.join(
|
|
123
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_1.rb')
|
|
124
124
|
end
|
|
125
125
|
|
|
126
|
-
def self.require_path(
|
|
127
|
-
File.join(
|
|
126
|
+
def self.require_path(_name)
|
|
127
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_1')
|
|
128
128
|
end
|
|
129
129
|
end
|
|
130
130
|
|
|
131
|
-
expect
|
|
131
|
+
expect do
|
|
132
132
|
test_class.init
|
|
133
|
-
|
|
133
|
+
end.to raise_error
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
it
|
|
136
|
+
it 'an import filter uses a forbidden keywords as name' do
|
|
137
137
|
test_class = Class.new(Models::BaseModel) do
|
|
138
138
|
include Models::FilesystemBasedModel
|
|
139
139
|
include Models::ClassBasedModel
|
|
@@ -145,7 +145,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
145
145
|
end
|
|
146
146
|
|
|
147
147
|
def self.model_name
|
|
148
|
-
|
|
148
|
+
'TestClass'
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
def self.library_name
|
|
@@ -153,25 +153,25 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
def self.path_to_instances
|
|
156
|
-
File.join(
|
|
156
|
+
File.join(examples_directory, 'models', 'class_based', 'forbidden_keyword.rb')
|
|
157
157
|
end
|
|
158
158
|
|
|
159
|
-
def self.require_path(
|
|
160
|
-
File.join(
|
|
159
|
+
def self.require_path(_name)
|
|
160
|
+
File.join(examples_directory, 'models', 'class_based', 'forbidden_keyword')
|
|
161
161
|
end
|
|
162
162
|
|
|
163
163
|
def self.forbidden_keywords
|
|
164
|
-
[
|
|
164
|
+
[:forbidden_keyword]
|
|
165
165
|
end
|
|
166
166
|
end
|
|
167
167
|
|
|
168
|
-
expect
|
|
168
|
+
expect do
|
|
169
169
|
test_class.init
|
|
170
|
-
|
|
170
|
+
end.to raise_error FeduxOrgStdlib::Models::Exceptions::UnauthorizedUseOfKeyword
|
|
171
171
|
end
|
|
172
172
|
|
|
173
|
-
context
|
|
174
|
-
it
|
|
173
|
+
context '#check_method' do
|
|
174
|
+
it 'raises an error if an import filter is invalid: missing method' do
|
|
175
175
|
test_class = Class.new(Models::BaseModel) do
|
|
176
176
|
include Models::FilesystemBasedModel
|
|
177
177
|
include Models::ClassBasedModel
|
|
@@ -183,7 +183,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
183
183
|
end
|
|
184
184
|
|
|
185
185
|
def self.model_name
|
|
186
|
-
|
|
186
|
+
'TestClass'
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
def self.library_name
|
|
@@ -191,11 +191,11 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
191
191
|
end
|
|
192
192
|
|
|
193
193
|
def self.path_to_instances
|
|
194
|
-
File.join(
|
|
194
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_2.rb')
|
|
195
195
|
end
|
|
196
196
|
|
|
197
|
-
def self.require_path(
|
|
198
|
-
File.join(
|
|
197
|
+
def self.require_path(_name)
|
|
198
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_2')
|
|
199
199
|
end
|
|
200
200
|
|
|
201
201
|
def self.check_method
|
|
@@ -203,12 +203,12 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
203
203
|
end
|
|
204
204
|
end
|
|
205
205
|
|
|
206
|
-
expect
|
|
206
|
+
expect do
|
|
207
207
|
test_class.init
|
|
208
|
-
|
|
208
|
+
end.to raise_error TestIt::Exceptions::InvalidTestClass
|
|
209
209
|
end
|
|
210
210
|
|
|
211
|
-
it
|
|
211
|
+
it 'supports multiple methods to check for invalid instance and succeeds if both are avaiable.' do
|
|
212
212
|
test_class = Class.new(Models::BaseModel) do
|
|
213
213
|
include Models::FilesystemBasedModel
|
|
214
214
|
include Models::ClassBasedModel
|
|
@@ -220,7 +220,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
220
220
|
end
|
|
221
221
|
|
|
222
222
|
def self.model_name
|
|
223
|
-
|
|
223
|
+
'TestClass'
|
|
224
224
|
end
|
|
225
225
|
|
|
226
226
|
def self.library_name
|
|
@@ -228,24 +228,24 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
228
228
|
end
|
|
229
229
|
|
|
230
230
|
def self.path_to_instances
|
|
231
|
-
File.join(
|
|
231
|
+
File.join(examples_directory, 'models', 'class_based', 'valid_2.rb')
|
|
232
232
|
end
|
|
233
233
|
|
|
234
|
-
def self.require_path(
|
|
235
|
-
File.join(
|
|
234
|
+
def self.require_path(_name)
|
|
235
|
+
File.join(examples_directory, 'models', 'class_based', 'valid_2')
|
|
236
236
|
end
|
|
237
237
|
|
|
238
238
|
def self.check_method
|
|
239
|
-
[
|
|
239
|
+
[:req_method1, :req_method2]
|
|
240
240
|
end
|
|
241
241
|
end
|
|
242
242
|
|
|
243
|
-
expect
|
|
243
|
+
expect do
|
|
244
244
|
test_class.init
|
|
245
|
-
|
|
245
|
+
end.not_to raise_error
|
|
246
246
|
end
|
|
247
247
|
|
|
248
|
-
it
|
|
248
|
+
it 'supports multiple methods to check for invalid instance and fails if one is missing.' do
|
|
249
249
|
test_class = Class.new(Models::BaseModel) do
|
|
250
250
|
include Models::FilesystemBasedModel
|
|
251
251
|
include Models::ClassBasedModel
|
|
@@ -257,7 +257,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
257
257
|
end
|
|
258
258
|
|
|
259
259
|
def self.model_name
|
|
260
|
-
|
|
260
|
+
'TestClass'
|
|
261
261
|
end
|
|
262
262
|
|
|
263
263
|
def self.library_name
|
|
@@ -265,50 +265,50 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
265
265
|
end
|
|
266
266
|
|
|
267
267
|
def self.path_to_instances
|
|
268
|
-
File.join(
|
|
268
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_3.rb')
|
|
269
269
|
end
|
|
270
270
|
|
|
271
|
-
def self.require_path(
|
|
272
|
-
File.join(
|
|
271
|
+
def self.require_path(_name)
|
|
272
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_3')
|
|
273
273
|
end
|
|
274
274
|
|
|
275
275
|
def self.check_method
|
|
276
|
-
[
|
|
276
|
+
[:req_method1, :req_method2]
|
|
277
277
|
end
|
|
278
278
|
end
|
|
279
279
|
|
|
280
|
-
expect
|
|
280
|
+
expect do
|
|
281
281
|
test_class.init
|
|
282
|
-
|
|
282
|
+
end.to raise_error TestIt::Exceptions::InvalidTestClass
|
|
283
283
|
end
|
|
284
284
|
end
|
|
285
285
|
|
|
286
|
-
it
|
|
286
|
+
it 'returns the require path' do
|
|
287
287
|
model = Class.new(Models::BaseModel) do
|
|
288
288
|
include Models::FilesystemBasedModel
|
|
289
289
|
|
|
290
|
-
def self.require_path(
|
|
291
|
-
File.join(
|
|
290
|
+
def self.require_path(_name)
|
|
291
|
+
File.join(examples_directory, 'models', 'class_based', 'invalid_2')
|
|
292
292
|
end
|
|
293
293
|
|
|
294
294
|
end
|
|
295
|
-
expect_result = File.join(
|
|
295
|
+
expect_result = File.join(examples_directory, 'models', 'class_based', 'invalid_2')
|
|
296
296
|
result = model.send(:require_path, :name)
|
|
297
297
|
|
|
298
298
|
expect(result).to eq(expect_result)
|
|
299
299
|
end
|
|
300
300
|
|
|
301
|
-
it
|
|
301
|
+
it 'returns the name for the instance based on the path to the ruby file' do
|
|
302
302
|
expect(Test123::Models::TestClassForFilesystem.send(:name, Test123::Models::TestClassForFilesystem.send(:model_path))).to eq(:class_based)
|
|
303
303
|
end
|
|
304
304
|
|
|
305
|
-
it
|
|
306
|
-
expect
|
|
307
|
-
Test123::Models::TestClassForFilesystem2.send(:name, Test123::Models::TestClassForFilesystem2.send(:model_path))
|
|
308
|
-
|
|
305
|
+
it 'check if the name for the instances is forbidden' do
|
|
306
|
+
expect do
|
|
307
|
+
Test123::Models::TestClassForFilesystem2.send(:name, Test123::Models::TestClassForFilesystem2.send(:model_path))
|
|
308
|
+
end.to raise_error FeduxOrgStdlib::Models::Exceptions::UnauthorizedUseOfKeyword
|
|
309
309
|
end
|
|
310
310
|
|
|
311
|
-
it
|
|
311
|
+
it 'raises an exception if no valid algorithms could be found for model' do
|
|
312
312
|
klass = Class.new(FeduxOrgStdlib::Models::BaseModel) do
|
|
313
313
|
include FeduxOrgStdlib::Models::FilesystemBasedModel
|
|
314
314
|
include FeduxOrgStdlib::Models::ClassBasedModel
|
|
@@ -325,12 +325,12 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
325
325
|
'asdfasf'
|
|
326
326
|
end
|
|
327
327
|
end
|
|
328
|
-
expect
|
|
328
|
+
expect do
|
|
329
329
|
klass.send(:load_from_filesystem)
|
|
330
|
-
|
|
330
|
+
end.to raise_error FeduxOrgStdlib::Models::Exceptions::NoImplementationsForModelFound
|
|
331
331
|
end
|
|
332
332
|
|
|
333
|
-
it
|
|
333
|
+
it '#ignore' do
|
|
334
334
|
test_class = Class.new(Models::BaseModel) do
|
|
335
335
|
include Models::FilesystemBasedModel
|
|
336
336
|
include Models::ClassBasedModel
|
|
@@ -342,7 +342,7 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
342
342
|
end
|
|
343
343
|
|
|
344
344
|
def self.model_name
|
|
345
|
-
|
|
345
|
+
'TestClass'
|
|
346
346
|
end
|
|
347
347
|
|
|
348
348
|
def self.library_name
|
|
@@ -350,11 +350,11 @@ RSpec.describe Models::ClassBasedModel do
|
|
|
350
350
|
end
|
|
351
351
|
|
|
352
352
|
def self.path_to_instances
|
|
353
|
-
File.join(
|
|
353
|
+
File.join(examples_directory, 'models', 'class_based', 'ignore')
|
|
354
354
|
end
|
|
355
355
|
|
|
356
|
-
def self.require_path(
|
|
357
|
-
File.join(
|
|
356
|
+
def self.require_path(_name)
|
|
357
|
+
File.join(examples_directory, 'models', 'class_based', 'ignore', 'valid_1.rb')
|
|
358
358
|
end
|
|
359
359
|
|
|
360
360
|
def self.check_method
|