nyanko 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +0 -1
- data/lib/nyanko/config.rb +13 -22
- data/lib/nyanko/loader.rb +11 -6
- data/lib/nyanko/unit_proxy_provider.rb +0 -4
- data/lib/nyanko/version.rb +1 -1
- data/spec/nyanko/loader_spec.rb +14 -0
- data/spec/nyanko/unit_proxy_provider_spec.rb +0 -6
- data/spec/spec_helper.rb +1 -1
- metadata +1 -1
data/README.md
CHANGED
data/lib/nyanko/config.rb
CHANGED
@@ -1,30 +1,21 @@
|
|
1
1
|
module Nyanko
|
2
2
|
module Config
|
3
3
|
class << self
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
def raise_error
|
13
|
-
@raise_error ||= lambda { Rails.env.development? }
|
14
|
-
@raise_error.respond_to?(:call) ? @raise_error.call : @raise_error
|
15
|
-
end
|
4
|
+
attr_accessor(
|
5
|
+
:backtrace_limit,
|
6
|
+
:cache_units,
|
7
|
+
:raise_error,
|
8
|
+
:units_directory_path
|
9
|
+
)
|
16
10
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
@backtrace_limit ||= 10
|
23
|
-
end
|
24
|
-
|
25
|
-
def backtrace_limit=(limit)
|
26
|
-
@backtrace_limit = limit
|
11
|
+
def reset
|
12
|
+
self.backtrace_limit = 10
|
13
|
+
self.cache_units = !Rails.env.development?
|
14
|
+
self.raise_error = Rails.env.development?
|
15
|
+
self.units_directory_path = "app/units"
|
27
16
|
end
|
28
17
|
end
|
18
|
+
|
19
|
+
reset
|
29
20
|
end
|
30
21
|
end
|
data/lib/nyanko/loader.rb
CHANGED
@@ -19,7 +19,11 @@ module Nyanko
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def load
|
22
|
-
loaded?
|
22
|
+
if loaded? && Config.cache_units
|
23
|
+
load_from_cache
|
24
|
+
else
|
25
|
+
load_from_file
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
def loaded?
|
@@ -31,7 +35,7 @@ module Nyanko
|
|
31
35
|
end
|
32
36
|
|
33
37
|
def load_from_file
|
34
|
-
|
38
|
+
add_autoload_path
|
35
39
|
cache[@name] = constantize
|
36
40
|
rescue Exception => exception
|
37
41
|
ExceptionHandler.handle(exception)
|
@@ -39,12 +43,13 @@ module Nyanko
|
|
39
43
|
nil
|
40
44
|
end
|
41
45
|
|
42
|
-
def
|
43
|
-
|
46
|
+
def add_autoload_path
|
47
|
+
ActiveSupport::Dependencies.autoload_paths << autoload_path
|
48
|
+
ActiveSupport::Dependencies.autoload_paths.uniq!
|
44
49
|
end
|
45
50
|
|
46
|
-
def
|
47
|
-
|
51
|
+
def autoload_path
|
52
|
+
Rails.root.join("#{directory_path}/#@name").to_s
|
48
53
|
end
|
49
54
|
|
50
55
|
def directory_path
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module Nyanko
|
2
2
|
module UnitProxyProvider
|
3
|
-
NoUnitError = Class.new(StandardError)
|
4
|
-
|
5
3
|
extend ActiveSupport::Concern
|
6
4
|
|
7
5
|
included do
|
@@ -13,8 +11,6 @@ module Nyanko
|
|
13
11
|
name ||= Function.current_unit.try(:to_key)
|
14
12
|
if name && unit = Loader.load(name)
|
15
13
|
UnitProxy.new(unit, self)
|
16
|
-
else
|
17
|
-
raise NoUnitError
|
18
14
|
end
|
19
15
|
end
|
20
16
|
alias_method :ext, :unit
|
data/lib/nyanko/version.rb
CHANGED
data/spec/nyanko/loader_spec.rb
CHANGED
@@ -38,6 +38,20 @@ module Nyanko
|
|
38
38
|
described_class.load(:non_existent_unit)
|
39
39
|
end
|
40
40
|
end
|
41
|
+
|
42
|
+
context "when Config.cache_unit is false" do
|
43
|
+
around do |example|
|
44
|
+
origin, Config.cache_units = Config.cache_units, false
|
45
|
+
example.run
|
46
|
+
Config.cache_units = origin
|
47
|
+
end
|
48
|
+
|
49
|
+
it "loads unit without cache" do
|
50
|
+
described_class.any_instance.should_not_receive(:load_from_cache)
|
51
|
+
described_class.load(:example_unit)
|
52
|
+
described_class.load(:example_unit)
|
53
|
+
end
|
54
|
+
end
|
41
55
|
end
|
42
56
|
end
|
43
57
|
end
|
@@ -17,12 +17,6 @@ module Nyanko
|
|
17
17
|
proxy.should be_a UnitProxy
|
18
18
|
proxy.unit.should == ExampleUnit
|
19
19
|
end
|
20
|
-
|
21
|
-
context "when unit is not found" do
|
22
|
-
it "raises NoUnitError" do
|
23
|
-
expect { view.unit(:non_existent_unit) }.to raise_error(described_class::NoUnitError)
|
24
|
-
end
|
25
|
-
end
|
26
20
|
end
|
27
21
|
|
28
22
|
context "when given no unit name" do
|
data/spec/spec_helper.rb
CHANGED
@@ -4,10 +4,10 @@ SimpleCov.start do
|
|
4
4
|
add_filter "/spec\/dummy/"
|
5
5
|
end
|
6
6
|
|
7
|
+
ENV["RAILS_ENV"] ||= "test"
|
7
8
|
require "nyanko"
|
8
9
|
Nyanko::Config.units_directory_path = File.expand_path("../fixtures/units", __FILE__)
|
9
10
|
|
10
|
-
ENV["RAILS_ENV"] ||= "test"
|
11
11
|
require File.expand_path("../dummy/config/environment", __FILE__)
|
12
12
|
require "rspec/rails"
|
13
13
|
require "rspec/autorun"
|