pancake 0.1.18 → 0.1.19

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.
@@ -24,17 +24,7 @@ Pancake::Stack::BootLoader.add(:load_mounted_inits, :level => :init) do
24
24
  end
25
25
  end
26
26
 
27
- Pancake::Stack::BootLoader.add(:set_as_master) do
28
- def run!
29
- return unless config[:master]
30
- roots = stack_class.roots.dup
31
- roots.each do |root|
32
- stack_class.roots << File.join(root, "master")
33
- end
34
- end
35
- end
36
-
37
- Pancake::Stack::BootLoader.add(:load_configuration) do
27
+ Pancake::Stack::BootLoader.add(:load_configuration, :level => :init) do
38
28
  def run!
39
29
  stack_class.roots.each do |root|
40
30
  stack_class.paths_for(:config).each{|f| require f.join}
@@ -42,7 +32,7 @@ Pancake::Stack::BootLoader.add(:load_configuration) do
42
32
  end
43
33
  end
44
34
 
45
- Pancake::Stack::BootLoader.add(:load_application) do
35
+ Pancake::Stack::BootLoader.add(:load_application, :level => :init) do
46
36
  def run!
47
37
  stack_class.roots.each do |root|
48
38
  [:models, :controllers].each do |type|
@@ -63,7 +53,7 @@ end
63
53
  #
64
54
 
65
55
 
66
- Pancake::Stack::BootLoader.add(:load_routes) do
56
+ Pancake::Stack::BootLoader.add(:load_routes, :level => :init) do
67
57
  def run!
68
58
  stack_class.roots.each do |root|
69
59
  stack_class.paths_for(:router).each{|f| require f.join}
@@ -18,11 +18,14 @@ module Pancake
18
18
 
19
19
 
20
20
  #Iterates the list of roots in the stack, and initializes the app found their
21
- def self.initialize_stack
21
+ def self.initialize_stack(opts = {})
22
22
  raise "Stack root not set" if roots.empty?
23
-
23
+ master = opts.delete(:master)
24
+ set_as_master! if master
24
25
  # Run any :init level bootloaders for this stack
25
26
  self::BootLoader.run!(:stack_class => self, :only => {:level => :init})
27
+ # Pick up any new stacks added during the boot process.
28
+ set_as_master! if master
26
29
 
27
30
  @initialized = true
28
31
  end # initiailze stack
@@ -44,7 +47,10 @@ module Pancake
44
47
 
45
48
  def initialize(app = nil, opts = {})
46
49
  @app_name = opts.delete(:app_name) || self.class
47
- self.class.initialize_stack unless self.class.initialized?
50
+
51
+ master = opts.delete(:master)
52
+ self.class.initialize_stack(:master => master) unless self.class.initialized?
53
+ self.class.set_as_master! if master
48
54
  Pancake.configuration.stacks[@app_name] = self
49
55
 
50
56
  # setup the configuration for this stack
@@ -128,6 +134,16 @@ module Pancake
128
134
  end
129
135
  end
130
136
 
137
+ # Sets this as a master stack. This means that the "master" directory will be added to all existing stack roots
138
+ def self.set_as_master!
139
+ # Want to add master to the roots for this stack only
140
+ roots.dup.each do |root|
141
+ unless root =~ /master\/?$/
142
+ roots << File.join(root, 'master')
143
+ end
144
+ end
145
+ end
146
+
131
147
  # Creates a bootloader hook(s) of the given name. That are inheritable
132
148
  # This will create hooks for use in a bootloader (but will not create the bootloader itself!)
133
149
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pancake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Neighman
@@ -9,7 +9,7 @@ autorequire: pancake
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-14 00:00:00 +11:00
12
+ date: 2009-11-15 00:00:00 +11:00
13
13
  default_executable: pancake-gen
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency