fedux_org-stdlib 0.0.16 → 0.0.17
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.
- data/lib/fedux_org/stdlib/models/class_based_model.rb +0 -19
- data/lib/fedux_org/stdlib/models/filesystem_based_model.rb +21 -2
- data/lib/fedux_org/stdlib/version.rb +1 -1
- data/spec/examples/models/filesystem_based/find_files/abc.rb +0 -0
- data/spec/examples/models/filesystem_based/find_files/cde.rb +0 -0
- data/spec/models/class_based_model_spec.rb +0 -5
- data/spec/models/filesystem_based_model_spec.rb +46 -15
- metadata +6 -2
@@ -46,25 +46,6 @@ module FeduxOrg
|
|
46
46
|
'.rb'
|
47
47
|
end
|
48
48
|
|
49
|
-
def ignore
|
50
|
-
'BORING_STRING_WHICH_SHOULD_NEVER_MATCH'
|
51
|
-
end
|
52
|
-
|
53
|
-
def find_files
|
54
|
-
files = []
|
55
|
-
Find.find(path_to_instances) do |path|
|
56
|
-
next unless File.file? path
|
57
|
-
next if path =~ /^\.\.?/
|
58
|
-
next if path =~ %r{#{ignore}}
|
59
|
-
|
60
|
-
files << path
|
61
|
-
end
|
62
|
-
|
63
|
-
files
|
64
|
-
rescue
|
65
|
-
raise FeduxOrg::Stdlib::Models::Exceptions::NoImplementationsForModelFound, "You might need to create the directory\"#{File.dirname(path_to_instances)}\"."
|
66
|
-
end
|
67
|
-
|
68
49
|
def load_from_filesystem
|
69
50
|
files = find_files
|
70
51
|
|
@@ -46,9 +46,28 @@ module FeduxOrg
|
|
46
46
|
raise FeduxOrg::Stdlib::Models::Exceptions::MethodNeedsToBeImplemented, "Please defined the method \"path\" to make the library work."
|
47
47
|
end
|
48
48
|
|
49
|
+
def ignore
|
50
|
+
'BORING_STRING_WHICH_SHOULD_NEVER_MATCH'
|
51
|
+
end
|
52
|
+
|
53
|
+
def find_files
|
54
|
+
files = []
|
55
|
+
Find.find(path_to_instances) do |path|
|
56
|
+
next unless File.file? path
|
57
|
+
next if suffix and path !~/#{suffix}/
|
58
|
+
next if path =~ /^\.\.?/
|
59
|
+
next if path =~ %r{#{ignore}}
|
60
|
+
|
61
|
+
files << path
|
62
|
+
end
|
63
|
+
|
64
|
+
files
|
65
|
+
rescue
|
66
|
+
raise FeduxOrg::Stdlib::Models::Exceptions::NoImplementationsForModelFound, "You might need to create the directory\"#{File.dirname(path_to_instances)}\"."
|
67
|
+
end
|
68
|
+
|
49
69
|
def path_to_instances
|
50
|
-
|
51
|
-
return_path = ::File.join(local_path,"*#{suffix}")
|
70
|
+
return_path = ::File.expand_path("../../#{model_name.pluralize.underscore}", path )
|
52
71
|
|
53
72
|
FeduxOrg::Stdlib.logger.debug(self) { "Path to instances of model: #{return_path}" }
|
54
73
|
|
File without changes
|
File without changes
|
@@ -300,11 +300,6 @@ describe Models::ClassBasedModel do
|
|
300
300
|
expect( result ).to eq( expect_result )
|
301
301
|
end
|
302
302
|
|
303
|
-
it "returns the path to instances" do
|
304
|
-
expected_result= File.join( examples_dir, 'test_class_for_filesystems', '*.rb' )
|
305
|
-
expect( Test123::Models::TestClassForFilesystem.send(:path_to_instances) ).to eq( expected_result )
|
306
|
-
end
|
307
|
-
|
308
303
|
it "returns the name for the instance based on the path to the ruby file" do
|
309
304
|
expect( Test123::Models::TestClassForFilesystem.send(:name, Test123::Models::TestClassForFilesystem.send( :path ) ) ).to eq( :class_based )
|
310
305
|
end
|
@@ -24,19 +24,6 @@ describe Models::FilesystemBasedModel do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
it "returns a string of all active filters" do
|
28
|
-
@model.create(:name1)
|
29
|
-
@model.create(:name2)
|
30
|
-
@model.enable :name1
|
31
|
-
@model.enable :name2
|
32
|
-
|
33
|
-
result = @model.all_names_as_string(", ")
|
34
|
-
expect(result).to eq("name1, name2")
|
35
|
-
|
36
|
-
result = @model.all_names_as_string
|
37
|
-
expect(result).to eq("name1, name2")
|
38
|
-
end
|
39
|
-
|
40
27
|
it "finds all available filter" do
|
41
28
|
@model.init
|
42
29
|
filter = @model.find(:hello)
|
@@ -100,7 +87,51 @@ describe Models::FilesystemBasedModel do
|
|
100
87
|
expect( Test123::Models::TestClassForFilesystem.send(:model_name) ).to eq('TestClassForFilesystem')
|
101
88
|
end
|
102
89
|
|
103
|
-
|
104
|
-
|
90
|
+
context "#library_name" do
|
91
|
+
it "returns the library name" do
|
92
|
+
expect( Test123::Models::TestClassForFilesystem.send(:library_name) ).to eq('Test123')
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context "#path_to_instances" do
|
97
|
+
klass = Class.new( FeduxOrg::Stdlib::Models::BaseModel ) do
|
98
|
+
include FeduxOrg::Stdlib::Models::FilesystemBasedModel
|
99
|
+
|
100
|
+
def self.model_name
|
101
|
+
'FindFiles'
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.path
|
105
|
+
File.join( examples_dir, 'models', 'filesystem_based', 'find_files')
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
it "returns the path to the instances" do
|
111
|
+
expect( klass.send(:path_to_instances) ).to eq( File.join( examples_dir, 'models', 'find_files') )
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context "#find_files" do
|
116
|
+
klass = Class.new( FeduxOrg::Stdlib::Models::BaseModel ) do
|
117
|
+
include FeduxOrg::Stdlib::Models::FilesystemBasedModel
|
118
|
+
|
119
|
+
def self.path_to_instances
|
120
|
+
File.join( examples_dir, 'models', 'filesystem_based', 'find_files')
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.suffix
|
124
|
+
'.rb'
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
it "search for available instances in filesystem" do
|
129
|
+
expect( klass.send(:find_files) ).to eq(
|
130
|
+
[
|
131
|
+
"/home/d/work/projects/fedux_org-stdlib/spec/examples/models/filesystem_based/find_files/abc.rb",
|
132
|
+
"/home/d/work/projects/fedux_org-stdlib/spec/examples/models/filesystem_based/find_files/cde.rb",
|
133
|
+
]
|
134
|
+
)
|
135
|
+
end
|
105
136
|
end
|
106
137
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fedux_org-stdlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -122,6 +122,8 @@ files:
|
|
122
122
|
- spec/examples/models/class_based/invalid_3.rb
|
123
123
|
- spec/examples/models/class_based/valid_1.rb
|
124
124
|
- spec/examples/models/class_based/valid_2.rb
|
125
|
+
- spec/examples/models/filesystem_based/find_files/abc.rb
|
126
|
+
- spec/examples/models/filesystem_based/find_files/cde.rb
|
125
127
|
- spec/models/base_model_spec.rb
|
126
128
|
- spec/models/class_based_model_spec.rb
|
127
129
|
- spec/models/filesystem_based_model_spec.rb
|
@@ -160,6 +162,8 @@ test_files:
|
|
160
162
|
- spec/examples/models/class_based/invalid_3.rb
|
161
163
|
- spec/examples/models/class_based/valid_1.rb
|
162
164
|
- spec/examples/models/class_based/valid_2.rb
|
165
|
+
- spec/examples/models/filesystem_based/find_files/abc.rb
|
166
|
+
- spec/examples/models/filesystem_based/find_files/cde.rb
|
163
167
|
- spec/models/base_model_spec.rb
|
164
168
|
- spec/models/class_based_model_spec.rb
|
165
169
|
- spec/models/filesystem_based_model_spec.rb
|