pluginator 1.3.0 → 1.4.0
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/Changelog.md +10 -0
- data/README.md +7 -5
- data/lib/pluginator/autodetect/finder.rb +85 -0
- data/lib/pluginator/autodetect/formatted_finder.rb +110 -0
- data/lib/pluginator/autodetect.rb +41 -73
- data/lib/pluginator/errors.rb +3 -2
- data/lib/pluginator/extendable_autodetect.rb +5 -9
- data/lib/pluginator/name_converter.rb +6 -16
- data/lib/pluginator/version.rb +2 -2
- data/lib/pluginator.rb +2 -2
- data/lib/plugins/pluginator/extensions/conversions.rb +8 -5
- data/lib/plugins/pluginator/extensions/first_ask.rb +2 -2
- data/lib/plugins/pluginator/extensions/first_class.rb +3 -3
- data/lib/plugins/pluginator/extensions/plugins_map.rb +8 -3
- metadata +43 -103
- data/.gitignore +0 -5
- data/.noexec.yaml +0 -1
- data/.travis.yml +0 -26
- data/Gemfile +0 -34
- data/Guardfile +0 -17
- data/Rakefile +0 -49
- data/pluginator.gemspec +0 -44
- data/test/gems/gems/fake-gem-name-a-1.0.0/lib/fake-gem-name-a.rb +0 -1
- data/test/gems/gems/fake-gem-name-a-1.0.0/lib/plugins/something/math/decrease.rb +0 -27
- data/test/gems/gems/fake-gem-name-a-1.0.0/lib/plugins/something/math/increase.rb +0 -27
- data/test/gems/gems/fake-gem-name-a-1.0.0/lib/plugins/something/nested/structure/test.rb +0 -25
- data/test/gems/gems/fake-gem-name-a-1.0.0/lib/plugins/something/stats/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-activated-1.0.0/lib/fake-gem-name-activated.rb +0 -1
- data/test/gems/gems/fake-gem-name-activated-1.0.0/lib/plugins/activated/version1/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-activated-2.0.0/lib/fake-gem-name-activated.rb +0 -1
- data/test/gems/gems/fake-gem-name-activated-2.0.0/lib/plugins/activated/version1/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-latest-1.0.0/lib/fake-gem-name-latest.rb +0 -1
- data/test/gems/gems/fake-gem-name-latest-1.0.0/lib/plugins/latest/version1/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-latest-2.0.0/lib/fake-gem-name-latest.rb +0 -1
- data/test/gems/gems/fake-gem-name-latest-2.0.0/lib/plugins/latest/version2/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-v1a-1.0.0/lib/fake-gem-name-v1a.rb +0 -1
- data/test/gems/gems/fake-gem-name-v1a-1.0.0/lib/plugins/v1test/stats/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-v1b-1.0.0/lib/fake-gem-name-v1a.rb +0 -1
- data/test/gems/gems/fake-gem-name-v1b-1.0.0/lib/plugins/v1test/stats/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-v2a-1.0.0/lib/fake-gem-name-v2a.rb +0 -1
- data/test/gems/gems/fake-gem-name-v2a-1.0.0/lib/plugins/v2test/stats/max.rb +0 -29
- data/test/gems/gems/fake-gem-name-v2b-1.0.0/lib/fake-gem-name-v2b.rb +0 -1
- data/test/gems/gems/fake-gem-name-v2b-1.0.0/lib/plugins/v2test/stats/max.rb +0 -29
- data/test/gems/specifications/fake-gem-name-a-1.0.0.gemspec +0 -21
- data/test/gems/specifications/fake-gem-name-activated-1.0.0.gemspec +0 -21
- data/test/gems/specifications/fake-gem-name-activated-2.0.0.gemspec +0 -21
- data/test/gems/specifications/fake-gem-name-latest-1.0.0.gemspec +0 -21
- data/test/gems/specifications/fake-gem-name-latest-2.0.0.gemspec +0 -21
- data/test/gems/specifications/fake-gem-name-v1a-1.0.0.gemspec +0 -21
- data/test/gems/specifications/fake-gem-name-v1b-1.0.0.gemspec +0 -24
- data/test/gems/specifications/fake-gem-name-v2a-1.0.0.gemspec +0 -24
- data/test/gems/specifications/fake-gem-name-v2b-1.0.0.gemspec +0 -24
- data/test/pluginator/autodetect_test.rb +0 -170
- data/test/pluginator/extendable_autodetect_test.rb +0 -43
- data/test/pluginator/group_test.rb +0 -45
- data/test/pluginator/name_converter_test.rb +0 -52
- data/test/pluginator_test.rb +0 -132
- data/test/plugins_test/extensions/class_exist_test.rb +0 -45
- data/test/plugins_test/extensions/conversions_test.rb +0 -34
- data/test/plugins_test/extensions/first_ask_test.rb +0 -63
- data/test/plugins_test/extensions/first_class_test.rb +0 -63
- data/test/plugins_test/extensions/matching_test.rb +0 -55
- data/test/plugins_test/extensions/plugins_map_test.rb +0 -35
- data/test/test_helper.rb +0 -88
data/test/pluginator_test.rb
DELETED
@@ -1,132 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "pluginator"
|
22
|
-
|
23
|
-
describe Pluginator do
|
24
|
-
it "loads_plugins_automatically_for_group" do
|
25
|
-
pluginator = Pluginator.find("something")
|
26
|
-
pluginator.types.must_include("stats")
|
27
|
-
pluginator.types.must_include("math")
|
28
|
-
pluginator.types.must_include("nested/structure")
|
29
|
-
pluginator.types.size.must_equal(3)
|
30
|
-
plugins = pluginator["math"].map(&:to_s)
|
31
|
-
plugins.size.must_equal(2)
|
32
|
-
plugins.must_include("Something::Math::Increase")
|
33
|
-
plugins.must_include("Something::Math::Decrease")
|
34
|
-
plugins.wont_include("Something::Math::Add")
|
35
|
-
end
|
36
|
-
|
37
|
-
it "loads_plugins_automatically_for_group_type" do
|
38
|
-
pluginator = Pluginator.find("something", :type => "stats")
|
39
|
-
pluginator.types.must_include("stats")
|
40
|
-
pluginator.types.size.must_equal(1)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "loads_existing_extensions_symbol" do
|
44
|
-
pluginator = Pluginator.find("something", :extends => :conversions)
|
45
|
-
pluginator.public_methods.map(&:to_sym).must_include(:class2string)
|
46
|
-
pluginator.public_methods.map(&:to_sym).must_include(:string2class)
|
47
|
-
pluginator.public_methods.map(&:to_sym).wont_include(:plugins_map)
|
48
|
-
end
|
49
|
-
|
50
|
-
it "loads_nested_plugins" do
|
51
|
-
pluginator = Pluginator.find("something")
|
52
|
-
pluginator.types.must_include("nested/structure")
|
53
|
-
pluginator["nested/structure"].map(&:to_s).must_equal(["Something::Nested::Structure::Test"])
|
54
|
-
end
|
55
|
-
|
56
|
-
it "loads_only_plugins_from_latest_version_of_gem" do
|
57
|
-
all_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" }
|
58
|
-
all_gems.must_include("fake-gem-name-latest-1.0.0")
|
59
|
-
all_gems.must_include("fake-gem-name-latest-2.0.0")
|
60
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
61
|
-
active_gems.wont_include("fake-gem-name-latest-1.0.0")
|
62
|
-
active_gems.wont_include("fake-gem-name-latest-2.0.0")
|
63
|
-
|
64
|
-
pluginator = Pluginator.find("latest")
|
65
|
-
|
66
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
67
|
-
active_gems.wont_include("fake-gem-name-latest-1.0.0")
|
68
|
-
active_gems.must_include("fake-gem-name-latest-2.0.0")
|
69
|
-
|
70
|
-
pluginator.types.must_include("version2")
|
71
|
-
pluginator.types.wont_include("version1")
|
72
|
-
pluginator.types.size.must_equal(1)
|
73
|
-
pluginator["version2"].map(&:to_s).must_equal(["Latest::Version2::Max"])
|
74
|
-
end
|
75
|
-
|
76
|
-
it "loads_only_plugins_from_activated_version_of_gem" do
|
77
|
-
all_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" }
|
78
|
-
all_gems.must_include("fake-gem-name-activated-1.0.0")
|
79
|
-
all_gems.must_include("fake-gem-name-activated-2.0.0")
|
80
|
-
Gem::Specification._all.find{|s| [s.name, s.version.to_s] == ["fake-gem-name-activated", "1.0.0"] }.activate
|
81
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
82
|
-
active_gems.must_include("fake-gem-name-activated-1.0.0")
|
83
|
-
active_gems.wont_include("fake-gem-name-activated-2.0.0")
|
84
|
-
|
85
|
-
pluginator = Pluginator.find("activated")
|
86
|
-
|
87
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
88
|
-
active_gems.must_include("fake-gem-name-activated-1.0.0")
|
89
|
-
|
90
|
-
pluginator.types.must_include("version1")
|
91
|
-
pluginator.types.size.must_equal(1)
|
92
|
-
pluginator["version1"].map(&:to_s).must_equal(["Activated::Version1::Max"])
|
93
|
-
end
|
94
|
-
|
95
|
-
it "loads_latest_version_of_plugin_from_two_gems_v1" do
|
96
|
-
all_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" }
|
97
|
-
all_gems.must_include("fake-gem-name-v1a-1.0.0")
|
98
|
-
all_gems.must_include("fake-gem-name-v1b-1.0.0")
|
99
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
100
|
-
active_gems.wont_include("fake-gem-name-v1a-1.0.0")
|
101
|
-
|
102
|
-
pluginator = Pluginator.find("v1test")
|
103
|
-
|
104
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
105
|
-
active_gems.wont_include("fake-gem-name-v1a-1.0.0")
|
106
|
-
active_gems.must_include("fake-gem-name-v1b-1.0.0")
|
107
|
-
|
108
|
-
pluginator.types.must_include("stats")
|
109
|
-
pluginator.types.size.must_equal(1)
|
110
|
-
pluginator["stats"].map(&:to_s).must_equal(["V1test::Stats::Max"])
|
111
|
-
pluginator["stats"].first.action.must_equal(42)
|
112
|
-
end
|
113
|
-
|
114
|
-
it "loads_latest_version_of_plugin_from_two_gems_v2" do
|
115
|
-
all_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" }
|
116
|
-
all_gems.must_include("fake-gem-name-v2a-1.0.0")
|
117
|
-
all_gems.must_include("fake-gem-name-v2b-1.0.0")
|
118
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
119
|
-
active_gems.wont_include("fake-gem-name-v2a-1.0.0")
|
120
|
-
|
121
|
-
pluginator = Pluginator.find("v2test")
|
122
|
-
|
123
|
-
active_gems = Gem::Specification._all.map{|s| "#{s.name}-#{s.version}" if s.activated? }.compact
|
124
|
-
active_gems.must_include("fake-gem-name-v2a-1.0.0")
|
125
|
-
active_gems.wont_include("fake-gem-name-v2b-1.0.0")
|
126
|
-
|
127
|
-
pluginator.types.must_include("stats")
|
128
|
-
pluginator.types.size.must_equal(1)
|
129
|
-
pluginator["stats"].map(&:to_s).must_equal(["V2test::Stats::Max"])
|
130
|
-
pluginator["stats"].first.action.must_equal(41)
|
131
|
-
end
|
132
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "plugins/pluginator/extensions/class_exist"
|
22
|
-
require "plugins/something/stats/max"
|
23
|
-
|
24
|
-
class ClassExistTester
|
25
|
-
attr_accessor :plugins
|
26
|
-
include Pluginator::Extensions::ClassExist
|
27
|
-
end
|
28
|
-
|
29
|
-
describe Pluginator::Extensions::ClassExist do
|
30
|
-
subject do
|
31
|
-
tester = ClassExistTester.new
|
32
|
-
tester.plugins = { "stats" => [
|
33
|
-
Something::Stats::Max
|
34
|
-
] }
|
35
|
-
tester
|
36
|
-
end
|
37
|
-
|
38
|
-
it "plugin exists" do
|
39
|
-
subject.class_exist?("stats", "max").must_equal( true )
|
40
|
-
end
|
41
|
-
|
42
|
-
it "plugin missing" do
|
43
|
-
subject.class_exist?("stats", "min").must_equal( false )
|
44
|
-
end
|
45
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "plugins/pluginator/extensions/conversions"
|
22
|
-
|
23
|
-
class ConversionsTester
|
24
|
-
extend Pluginator::Extensions::Conversions
|
25
|
-
end
|
26
|
-
|
27
|
-
describe Pluginator::Extensions::Conversions do
|
28
|
-
it "class2string" do
|
29
|
-
ConversionsTester.class2string("SomethingLong").must_match("something_long")
|
30
|
-
end
|
31
|
-
it "string2class" do
|
32
|
-
ConversionsTester.string2class("something_long").must_match("SomethingLong")
|
33
|
-
end
|
34
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "plugins/pluginator/extensions/first_ask"
|
22
|
-
require "plugins/something/stats/max"
|
23
|
-
|
24
|
-
class FirstAskTester
|
25
|
-
attr_accessor :plugins
|
26
|
-
include Pluginator::Extensions::FirstAsk
|
27
|
-
end
|
28
|
-
|
29
|
-
describe Pluginator::Extensions::FirstAsk do
|
30
|
-
before do
|
31
|
-
@tester = FirstAskTester.new
|
32
|
-
@tester.plugins = { "stats" => [
|
33
|
-
Something::Stats::Max
|
34
|
-
] }
|
35
|
-
end
|
36
|
-
|
37
|
-
it "finds existing plugin" do
|
38
|
-
@tester.first_ask("stats", "handles?", "max").must_equal( Something::Stats::Max )
|
39
|
-
end
|
40
|
-
|
41
|
-
it "finds proper plugin" do
|
42
|
-
@tester.first_ask("stats", "handles?", "max").action.must_equal( 42 )
|
43
|
-
end
|
44
|
-
|
45
|
-
it "finds existing plugin - no exception" do
|
46
|
-
@tester.first_ask!("stats", "handles?", "max").must_equal( Something::Stats::Max )
|
47
|
-
end
|
48
|
-
|
49
|
-
it "does not find missing plugin - no exception" do
|
50
|
-
@tester.first_ask("stats", "handles?", "min").must_equal( nil )
|
51
|
-
end
|
52
|
-
|
53
|
-
it "does not find missing plugin - exception plugin" do
|
54
|
-
lambda {
|
55
|
-
@tester.first_ask!("stats", "handles?", "min")
|
56
|
-
}.must_raise(Pluginator::MissingPlugin)
|
57
|
-
end
|
58
|
-
it "does not find missing plugin - exception type" do
|
59
|
-
lambda {
|
60
|
-
@tester.first_ask!("stats2", "handles?", "max")
|
61
|
-
}.must_raise(Pluginator::MissingType)
|
62
|
-
end
|
63
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "plugins/pluginator/extensions/first_class"
|
22
|
-
require "plugins/something/stats/max"
|
23
|
-
|
24
|
-
class FirstClassTester
|
25
|
-
attr_accessor :plugins
|
26
|
-
include Pluginator::Extensions::FirstClass
|
27
|
-
end
|
28
|
-
|
29
|
-
describe Pluginator::Extensions::FirstClass do
|
30
|
-
before do
|
31
|
-
@tester = FirstClassTester.new
|
32
|
-
@tester.plugins = { "stats" => [
|
33
|
-
Something::Stats::Max
|
34
|
-
] }
|
35
|
-
end
|
36
|
-
|
37
|
-
it "finds existing plugin" do
|
38
|
-
@tester.first_class("stats", "max").must_equal( Something::Stats::Max )
|
39
|
-
end
|
40
|
-
|
41
|
-
it "finds proper plugin" do
|
42
|
-
@tester.first_class("stats", "max").action.must_equal( 42 )
|
43
|
-
end
|
44
|
-
|
45
|
-
it "finds existing plugin - no exception" do
|
46
|
-
@tester.first_class!("stats", "max").must_equal( Something::Stats::Max )
|
47
|
-
end
|
48
|
-
|
49
|
-
it "does not find missing plugin - no exception" do
|
50
|
-
@tester.first_class("stats", "min").must_equal( nil )
|
51
|
-
end
|
52
|
-
|
53
|
-
it "does not find missing plugin - exception plugin" do
|
54
|
-
lambda {
|
55
|
-
@tester.first_class!("stats", "min")
|
56
|
-
}.must_raise(Pluginator::MissingPlugin)
|
57
|
-
end
|
58
|
-
it "does not find missing plugin - exception type" do
|
59
|
-
lambda {
|
60
|
-
@tester.first_class!("stats2", "max")
|
61
|
-
}.must_raise(Pluginator::MissingType)
|
62
|
-
end
|
63
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "plugins/pluginator/extensions/matching"
|
22
|
-
|
23
|
-
class MatchingTester
|
24
|
-
attr_accessor :plugins
|
25
|
-
include Pluginator::Extensions::Matching
|
26
|
-
end
|
27
|
-
|
28
|
-
describe Pluginator::Extensions::Matching do
|
29
|
-
before do
|
30
|
-
@tester = MatchingTester.new
|
31
|
-
@tester.plugins = { "extensions" => [
|
32
|
-
Pluginator::Extensions::PluginsMap,
|
33
|
-
Pluginator::Extensions::Conversions,
|
34
|
-
Pluginator::Extensions::Matching
|
35
|
-
] }
|
36
|
-
end
|
37
|
-
|
38
|
-
it "finds existing plugin" do
|
39
|
-
@tester.matching("extensions", ["plugins_map"]).must_equal( [Pluginator::Extensions::PluginsMap] )
|
40
|
-
end
|
41
|
-
|
42
|
-
it "finds existing plugin - no exception" do
|
43
|
-
@tester.matching!("extensions", ["plugins_map"]).must_equal( [Pluginator::Extensions::PluginsMap] )
|
44
|
-
end
|
45
|
-
|
46
|
-
it "does not find missing plugin - no exception" do
|
47
|
-
@tester.matching("extensions", ["plugins_map2"]).must_equal( [nil] )
|
48
|
-
end
|
49
|
-
|
50
|
-
it "finds existing plugin" do
|
51
|
-
lambda {
|
52
|
-
@tester.matching!("extensions", ["plugins_map2"])
|
53
|
-
}.must_raise(Pluginator::MissingPlugin)
|
54
|
-
end
|
55
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013 Michal Papis <mpapis@gmail.com>
|
3
|
-
|
4
|
-
This file is part of pluginator.
|
5
|
-
|
6
|
-
pluginator is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU Lesser General Public License as published
|
8
|
-
by the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
pluginator is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU Lesser General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU Lesser General Public License
|
17
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
=end
|
19
|
-
|
20
|
-
require "test_helper"
|
21
|
-
require "plugins/pluginator/extensions/plugins_map"
|
22
|
-
|
23
|
-
class PluginsMapTester
|
24
|
-
attr_accessor :plugins
|
25
|
-
include Pluginator::Extensions::PluginsMap
|
26
|
-
end
|
27
|
-
|
28
|
-
describe Pluginator::Extensions::PluginsMap do
|
29
|
-
it "creates map" do
|
30
|
-
tester = PluginsMapTester.new
|
31
|
-
tester.plugins = { "extensions" => [Pluginator::Extensions::PluginsMap] }
|
32
|
-
expected = { "PluginsMap" => Pluginator::Extensions::PluginsMap }
|
33
|
-
tester.plugins_map("extensions").must_equal( expected )
|
34
|
-
end
|
35
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2013
|
3
|
-
- Michal Papis <mpapis@gmail.com>
|
4
|
-
- Jordon Bedwell <envygeeks@gmail.com>
|
5
|
-
|
6
|
-
This file is part of pluginator.
|
7
|
-
|
8
|
-
pluginator is free software: you can redistribute it and/or modify
|
9
|
-
it under the terms of the GNU Lesser General Public License as published
|
10
|
-
by the Free Software Foundation, either version 3 of the License, or
|
11
|
-
(at your option) any later version.
|
12
|
-
|
13
|
-
pluginator is distributed in the hope that it will be useful,
|
14
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
-
GNU Lesser General Public License for more details.
|
17
|
-
|
18
|
-
You should have received a copy of the GNU Lesser General Public License
|
19
|
-
along with pluginator. If not, see <http://www.gnu.org/licenses/>.
|
20
|
-
=end
|
21
|
-
|
22
|
-
require "rubygems"
|
23
|
-
require "minitest"
|
24
|
-
|
25
|
-
# fix lib in LOAD_PATH and load version for gems manipulation
|
26
|
-
lib = File.expand_path("../lib", __FILE__)
|
27
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
28
|
-
require "pluginator/version"
|
29
|
-
|
30
|
-
# remove old links in fake gem home
|
31
|
-
`rm -f #{File.expand_path("../gems/specifications/pluginator-*.gemspec", __FILE__)}`
|
32
|
-
`rm -f #{File.expand_path("../gems/gems/pluginator-*", __FILE__)}`
|
33
|
-
|
34
|
-
# create new links in fake gem home
|
35
|
-
File.symlink(File.expand_path("../../pluginator.gemspec", __FILE__), File.expand_path("../gems/specifications/pluginator-#{Pluginator::VERSION}.gemspec", __FILE__))
|
36
|
-
File.symlink(File.expand_path("../../", __FILE__), File.expand_path("../gems/gems/pluginator-#{Pluginator::VERSION}", __FILE__))
|
37
|
-
|
38
|
-
# register our own path with gems
|
39
|
-
# duplicate from Gemfile for non bundler
|
40
|
-
Gem.path << File.expand_path("../gems", __FILE__)
|
41
|
-
Gem.refresh
|
42
|
-
|
43
|
-
# make sure pluginator is available as gem for tests of pluginator plugins
|
44
|
-
#Gem::Specification.add_spec(Gem::Specification.load(File.expand_path("../gems/specifications/pluginator-#{Pluginator::VERSION}.gemspec", __FILE__)))
|
45
|
-
gem "pluginator"
|
46
|
-
|
47
|
-
if
|
48
|
-
RUBY_VERSION == "2.0.0" && # check Gemfile
|
49
|
-
$0 != "-e" # do not do that in guard
|
50
|
-
then
|
51
|
-
require "coveralls"
|
52
|
-
require "simplecov"
|
53
|
-
|
54
|
-
SimpleCov.start do
|
55
|
-
formatter SimpleCov::Formatter::MultiFormatter[
|
56
|
-
SimpleCov::Formatter::HTMLFormatter,
|
57
|
-
Coveralls::SimpleCov::Formatter,
|
58
|
-
]
|
59
|
-
command_name "Unit Tests"
|
60
|
-
add_filter "/test/"
|
61
|
-
end
|
62
|
-
|
63
|
-
Coveralls.noisy = true unless ENV["CI"]
|
64
|
-
end
|
65
|
-
|
66
|
-
module Something
|
67
|
-
module Math; end
|
68
|
-
module Stats; end
|
69
|
-
module Nested
|
70
|
-
module Structure; end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
module Activated
|
74
|
-
module Version1; end
|
75
|
-
end
|
76
|
-
module Latest
|
77
|
-
module Version1; end
|
78
|
-
module Version2; end
|
79
|
-
end
|
80
|
-
module V1test
|
81
|
-
module Stats; end
|
82
|
-
end
|
83
|
-
module V2test
|
84
|
-
module Stats; end
|
85
|
-
end
|
86
|
-
|
87
|
-
require "minitest/autorun" unless $0=="-e" # skip in guard
|
88
|
-
require "minitest/unit"
|