loadable_component 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
data/lib/loadable_component.rb
CHANGED
@@ -6,16 +6,15 @@ describe SlowLoadableComponent do
|
|
6
6
|
SlowlyDetonatingComponent.new.get.should be_instance_of(SlowlyDetonatingComponent)
|
7
7
|
end
|
8
8
|
|
9
|
-
it "calls
|
10
|
-
|
11
|
-
component = SlowLoading.new(number_of_times_through_loop).get
|
9
|
+
it "calls #load if the component is not already loaded" do
|
10
|
+
component = SlowLoading.new.get
|
12
11
|
component.should be_instance_of(SlowLoading)
|
13
12
|
|
14
|
-
component.
|
13
|
+
component.load_called.should be_true
|
15
14
|
end
|
16
15
|
|
17
16
|
it "calls the load method once if the component takes a long time to load" do
|
18
|
-
OnlyOneLoad.new
|
17
|
+
OnlyOneLoad.new.get
|
19
18
|
end
|
20
19
|
|
21
20
|
it "should throw an error if calling load does not cause the component to load before timeout" do
|
data/spec/spec_helper.rb
CHANGED
@@ -55,40 +55,31 @@ class SlowlyDetonatingComponent < SlowLoadableComponent
|
|
55
55
|
end
|
56
56
|
|
57
57
|
class SlowLoading < SlowLoadableComponent
|
58
|
-
attr_reader :
|
58
|
+
attr_reader :load_called
|
59
59
|
|
60
|
-
def initialize
|
61
|
-
@
|
62
|
-
@loop_count = 0
|
60
|
+
def initialize
|
61
|
+
@load_called = false
|
63
62
|
|
64
63
|
super(1)
|
65
64
|
end
|
66
65
|
|
67
66
|
def load
|
68
|
-
|
67
|
+
@load_called = true
|
69
68
|
end
|
70
69
|
|
71
70
|
def loaded?
|
72
|
-
|
73
|
-
false
|
74
|
-
else
|
75
|
-
@loop_count += 1
|
76
|
-
end
|
71
|
+
@load_called
|
77
72
|
end
|
78
73
|
end
|
79
74
|
|
80
75
|
class OnlyOneLoad < SlowLoading
|
81
|
-
def initialize(count)
|
82
|
-
super(count)
|
83
|
-
@load_called = false
|
84
|
-
end
|
85
76
|
|
86
77
|
def load
|
87
78
|
if @load_called
|
88
79
|
raise "load already called"
|
89
80
|
end
|
90
81
|
|
91
|
-
|
82
|
+
super
|
92
83
|
end
|
93
84
|
end
|
94
85
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loadable_component
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jari Bakken
|