mack 0.7.0.1 → 0.7.1

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.
Files changed (58) hide show
  1. data/CHANGELOG +34 -0
  2. data/README +6 -13
  3. data/bin/env_handler.rb +10 -0
  4. data/bin/gem_load_path.rb +25 -0
  5. data/bin/mack +1 -0
  6. data/bin/mackery +22 -0
  7. data/bin/mackery-console +16 -0
  8. data/bin/mackery-server +41 -0
  9. data/lib/mack.rb +7 -1
  10. data/lib/mack/controller/controller.rb +5 -4
  11. data/lib/mack/controller/request.rb +19 -1
  12. data/lib/mack/errors/errors.rb +8 -8
  13. data/lib/mack/generators/controller_generator/controller_generator.rb +1 -1
  14. data/lib/mack/generators/mack_application_generator/templates/app/views/layouts/application.html.erb.template +1 -2
  15. data/lib/mack/generators/mack_application_generator/templates/config/app_config/default.yml.template +2 -0
  16. data/lib/mack/generators/mack_application_generator/templates/config/database.yml.template +6 -6
  17. data/lib/mack/generators/passenger_generator/passenger_generator.rb +2 -0
  18. data/lib/mack/generators/passenger_generator/templates/config.ru.template +5 -0
  19. data/lib/mack/generators/passenger_generator/templates/tmp/README.template +2 -0
  20. data/lib/mack/initialization/application.rb +39 -36
  21. data/lib/mack/initialization/boot_loader.rb +174 -0
  22. data/lib/mack/initialization/configuration.rb +83 -95
  23. data/lib/mack/initialization/console.rb +11 -0
  24. data/lib/mack/initialization/environment.rb +16 -0
  25. data/lib/mack/initialization/helpers.rb +26 -24
  26. data/lib/mack/initialization/logging.rb +81 -81
  27. data/lib/mack/initialization/plugins.rb +14 -11
  28. data/lib/mack/initialization/server/simple_server.rb +3 -3
  29. data/lib/mack/rendering/type/base.rb +1 -1
  30. data/lib/mack/rendering/type/layout.rb +1 -1
  31. data/lib/mack/rendering/type/partial.rb +1 -1
  32. data/lib/mack/rendering/type/public.rb +1 -1
  33. data/lib/mack/rendering/type/template.rb +1 -1
  34. data/lib/mack/runner.rb +2 -2
  35. data/lib/mack/runner_helpers/session.rb +3 -3
  36. data/lib/mack/sessions/cookie_session_store.rb +44 -0
  37. data/lib/mack/{controller → sessions}/session.rb +0 -0
  38. data/lib/mack/sessions/session_store_base.rb +62 -0
  39. data/lib/mack/sessions/test_session_store.rb +38 -0
  40. data/lib/mack/tasks/mack_server_tasks.rake +8 -21
  41. data/lib/mack/tasks/mack_tasks.rake +33 -6
  42. data/lib/mack/tasks/rake_rules.rake +8 -0
  43. data/lib/mack/tasks/test_tasks.rake +39 -15
  44. data/lib/mack/testing/helpers.rb +6 -39
  45. data/lib/mack/utils/content_length_handler.rb +45 -0
  46. data/lib/mack/utils/forgery_detector.rb +152 -0
  47. data/lib/mack/utils/gem_manager.rb +22 -1
  48. data/lib/mack/utils/paths.rb +154 -0
  49. data/lib/mack/utils/server.rb +8 -6
  50. data/lib/mack/version.rb +1 -1
  51. data/lib/mack/view_helpers/asset_helpers.rb +50 -0
  52. data/lib/mack/view_helpers/form_helpers.rb +52 -6
  53. data/lib/mack/view_helpers/link_helpers.rb +6 -3
  54. data/lib/mack_app.rb +12 -14
  55. data/lib/mack_core.rb +35 -14
  56. data/lib/mack_tasks.rb +35 -20
  57. metadata +23 -27
  58. data/lib/mack/tasks/cachetastic_tasks.rake +0 -58
@@ -2,6 +2,7 @@ require 'rubygems'
2
2
  require 'rack'
3
3
  require 'digest'
4
4
  require 'mack-facets'
5
+ require 'mack-encryption'
5
6
  require 'application_configuration'
6
7
  require 'cachetastic'
7
8
  require 'fileutils'
@@ -18,31 +19,51 @@ require 'genosaurus'
18
19
  require 'net/http'
19
20
  require 'pp'
20
21
  require 'test/unit'
22
+ begin
23
+ # just in case people don't have it installed.
24
+ require 'ruby-debug'
25
+ rescue Exception => e
26
+ end
21
27
 
22
28
  fl = File.join(File.dirname(__FILE__), "mack")
23
- require File.join(fl, "version")
29
+ require File.join(fl, "initialization", "boot_loader.rb")
30
+ require File.join(fl, "initialization", "environment.rb")
24
31
  require File.join(fl, "initialization", "configuration.rb")
32
+ require File.join(fl, "initialization", "logging.rb")
25
33
 
26
- unless Mack::Configuration.initialized_core
27
-
28
- # puts "Initializing logging..."
29
- require File.join(fl, "initialization", "logging.rb")
30
-
34
+ boot_load(:version) do
35
+ require File.join(File.dirname(__FILE__), "mack", "version")
36
+ end
31
37
 
38
+ boot_load(:paths) do
39
+ require File.join(File.dirname(__FILE__), "mack", "utils", "paths")
40
+ end
41
+
42
+ boot_load(:gems) do
43
+ Mack.logger.debug "Initializing custom gems..." unless app_config.log.disable_initialization_logging
44
+ load Mack::Paths.initializers("gems.rb")
45
+ Mack::Utils::GemManager.instance.do_requires
46
+ end
47
+
48
+ boot_load(:core_classes) do
32
49
  Mack.logger.debug "Initializing core classes..." unless app_config.log.disable_initialization_logging
33
50
  # Require all the necessary files to make Mack actually work!
34
- lib_dirs = ["errors", "core_extensions", "utils", "runner_helpers", "routing", "view_helpers", "rendering", "controller", "tasks", "initialization/server", "generators", "distributed"]
51
+ lib_dirs = ["errors", "core_extensions", "utils", "sessions", "runner_helpers", "routing", "view_helpers", "rendering", "controller", "tasks", "initialization/server", "generators", "distributed"]
35
52
  lib_dirs << "testing"# if Mack.env == "test"
36
53
  lib_dirs.each do |dir|
37
- dir_globs = Dir.glob(File.join(fl, dir, "**/*.rb"))
54
+ dir_globs = Dir.glob(File.join(File.dirname(__FILE__), "mack", dir, "**/*.rb"))
38
55
  dir_globs.each do |d|
39
- require d
56
+ require d unless d.match(/console/)
40
57
  end
41
58
  end
42
-
43
- require File.join(fl, "runner")
44
-
45
- Mack::Configuration.initialized_core = true if Mack::Configuration.initialized_core.nil?
59
+ end
46
60
 
61
+ boot_load(:runner) do
62
+ require File.join(File.dirname(__FILE__), "mack", "runner")
63
+ end
64
+
65
+ boot_load(:load_mack_core, :version, :paths, :configuration, :logging, :core_classes, :gems) do
47
66
  Mack.logger.debug "Initialization of Mack Core finished." unless app_config.log.disable_initialization_logging
48
- end
67
+ end
68
+
69
+ Mack::BootLoader.run(:load_mack_core)
@@ -1,32 +1,47 @@
1
1
  require 'rake'
2
2
  require 'rake/testtask'
3
3
  require 'rake/rdoctask'
4
+ require 'fileutils'
4
5
  require 'rubygems'
5
6
  require 'mack-facets'
6
7
  require 'application_configuration'
7
8
 
8
- require File.join(File.dirname(__FILE__), "mack", "initialization", "configuration.rb")
9
+ fl = File.join(File.dirname(__FILE__), 'mack')
9
10
 
10
- require File.join(File.dirname(__FILE__), 'mack_core')
11
- gems_rb = File.join(Mack.root, "config", "initializers", "gems.rb")
12
- if File.exists?(gems_rb)
13
- begin
14
- require File.join(Mack.root, "config", "initializers", "gems.rb")
15
- Mack::Utils::GemManager.instance.do_requires
16
- rescue Gem::LoadError
17
- end
18
- end
11
+ f_tasks = File.join(FileUtils.pwd, 'vendor', 'framework', 'mack', 'lib', 'mack_tasks.rb')
12
+ if File.exists?(f_tasks) && f_tasks != __FILE__
13
+ # puts "Run from the local copy"
14
+ require f_tasks
15
+ else
16
+ # puts "running mack_tasks from: #{fl}"
17
+ require File.join(File.dirname(__FILE__), '..', 'bin', 'gem_load_path')
19
18
 
20
- # Requires all rake tasks that ship with the Mack framework.
21
- [File.join(File.dirname(__FILE__)), File.join(FileUtils.pwd, "lib"), File.join(FileUtils.pwd, "vendor", "plugins")].each do |dir|
22
- begin
23
- require File.join(dir, "tasks", "rake_helpers.rb")
24
- rescue Exception => e
25
- end
26
- files = Dir.glob(File.join(dir, "**/*.rake"))
27
- files.each do |f|
28
- unless f == __FILE__
29
- load f
19
+ require File.join(fl, 'tasks', 'rake_helpers')
20
+ require File.join(fl, 'core_extensions', 'kernel')
21
+ require File.join(fl, 'utils', 'paths')
22
+
23
+ require File.join(fl, 'initialization', 'boot_loader')
24
+ require File.join(fl, 'initialization', 'configuration')
25
+
26
+ Mack::BootLoader.run(:configuration)
27
+ require File.join(fl, 'utils', 'gem_manager')
28
+
29
+ require Mack::Paths.initializers("gems.rb")
30
+ Mack::Utils::GemManager.instance.do_task_requires
31
+
32
+ # Requires all rake tasks that ship with the Mack framework.
33
+ [fl, Mack::Paths.lib, Mack::Paths.plugins].each do |dir|
34
+ begin
35
+ require File.join(dir, "tasks", "rake_helpers.rb")
36
+ rescue Exception => e
37
+ # raise e
38
+ end
39
+ files = Dir.glob(File.join(dir, "**/*.rake"))
40
+ files.each do |f|
41
+ unless f == __FILE__
42
+ load f
43
+ end
30
44
  end
31
45
  end
46
+
32
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.1
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - markbates
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-29 00:00:00 -04:00
12
+ date: 2008-09-08 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - "="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.3.0
23
+ version: 0.4.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mack-more
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - "="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.0.1
33
+ version: 0.7.1
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: application_configuration
@@ -42,16 +42,6 @@ dependencies:
42
42
  - !ruby/object:Gem::Version
43
43
  version: 1.5.3
44
44
  version:
45
- - !ruby/object:Gem::Dependency
46
- name: cachetastic
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "="
52
- - !ruby/object:Gem::Version
53
- version: 1.7.4
54
- version:
55
45
  - !ruby/object:Gem::Dependency
56
46
  name: log4r
57
47
  type: :runtime
@@ -110,7 +100,7 @@ dependencies:
110
100
  requirements:
111
101
  - - "="
112
102
  - !ruby/object:Gem::Version
113
- version: 1.2.2
103
+ version: 1.2.4
114
104
  version:
115
105
  - !ruby/object:Gem::Dependency
116
106
  name: rcov
@@ -132,20 +122,13 @@ dependencies:
132
122
  - !ruby/object:Gem::Version
133
123
  version: 1.1.4
134
124
  version:
135
- - !ruby/object:Gem::Dependency
136
- name: ruby-debug
137
- type: :runtime
138
- version_requirement:
139
- version_requirements: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - "="
142
- - !ruby/object:Gem::Version
143
- version: 0.10.0
144
- version:
145
125
  description: Mack is a powerful, yet simple, web application framework. It takes some cues from the likes of Rails and Merb, so it's not entirely unfamiliar. Mack hopes to provide developers a great framework for building, and deploying, portal and distributed applications.
146
126
  email: mark@mackframework.com
147
127
  executables:
148
128
  - mack
129
+ - mackery
130
+ - mackery-console
131
+ - mackery-server
149
132
  extensions: []
150
133
 
151
134
  extra_rdoc_files:
@@ -159,7 +142,6 @@ files:
159
142
  - lib/mack/controller/filter.rb
160
143
  - lib/mack/controller/request.rb
161
144
  - lib/mack/controller/response.rb
162
- - lib/mack/controller/session.rb
163
145
  - lib/mack/controller/tell.rb
164
146
  - lib/mack/controller/uploaded_file.rb
165
147
  - lib/mack/core_extensions/kernel.rb
@@ -204,6 +186,9 @@ files:
204
186
  - lib/mack/generators/mack_application_generator/templates/test/spec_helper.rb.template
205
187
  - lib/mack/generators/mack_application_generator/templates/test/test_helper.rb.template
206
188
  - lib/mack/generators/mack_application_generator/templates/vendor/plugins.template
189
+ - lib/mack/generators/passenger_generator/passenger_generator.rb
190
+ - lib/mack/generators/passenger_generator/templates/config.ru.template
191
+ - lib/mack/generators/passenger_generator/templates/tmp/README.template
207
192
  - lib/mack/generators/plugin_generator/plugin_generator.rb
208
193
  - lib/mack/generators/plugin_generator/templates/vendor/plugins/%=@plugin_name%/init.rb.template
209
194
  - lib/mack/generators/plugin_generator/templates/vendor/plugins/%=@plugin_name%/lib/%=@plugin_name%.rb.template
@@ -214,8 +199,10 @@ files:
214
199
  - lib/mack/generators/view_helper_generator/templates/test/helpers/views/test_case.rb.template
215
200
  - lib/mack/generators/view_helper_generator/view_helper_generator.rb
216
201
  - lib/mack/initialization/application.rb
202
+ - lib/mack/initialization/boot_loader.rb
217
203
  - lib/mack/initialization/configuration.rb
218
204
  - lib/mack/initialization/console.rb
205
+ - lib/mack/initialization/environment.rb
219
206
  - lib/mack/initialization/helpers.rb
220
207
  - lib/mack/initialization/logging.rb
221
208
  - lib/mack/initialization/plugins.rb
@@ -243,7 +230,10 @@ files:
243
230
  - lib/mack/runner_helpers/registry.rb
244
231
  - lib/mack/runner_helpers/request_logger.rb
245
232
  - lib/mack/runner_helpers/session.rb
246
- - lib/mack/tasks/cachetastic_tasks.rake
233
+ - lib/mack/sessions/cookie_session_store.rb
234
+ - lib/mack/sessions/session.rb
235
+ - lib/mack/sessions/session_store_base.rb
236
+ - lib/mack/sessions/test_session_store.rb
247
237
  - lib/mack/tasks/gem_tasks.rake
248
238
  - lib/mack/tasks/generator_tasks.rake
249
239
  - lib/mack/tasks/log_tasks.rake
@@ -262,12 +252,16 @@ files:
262
252
  - lib/mack/testing/test_assertions.rb
263
253
  - lib/mack/testing/test_case.rb
264
254
  - lib/mack/utils/ansi/ansi_color.rb
255
+ - lib/mack/utils/content_length_handler.rb
256
+ - lib/mack/utils/forgery_detector.rb
265
257
  - lib/mack/utils/gem_manager.rb
266
258
  - lib/mack/utils/mime_types.rb
267
259
  - lib/mack/utils/mime_types.yml
260
+ - lib/mack/utils/paths.rb
268
261
  - lib/mack/utils/server.rb
269
262
  - lib/mack/version.rb
270
263
  - lib/mack/view_helpers/all_helpers.rb
264
+ - lib/mack/view_helpers/asset_helpers.rb
271
265
  - lib/mack/view_helpers/date_time_helpers.rb
272
266
  - lib/mack/view_helpers/form_helpers.rb
273
267
  - lib/mack/view_helpers/html_helpers.rb
@@ -278,6 +272,8 @@ files:
278
272
  - lib/mack_app.rb
279
273
  - lib/mack_core.rb
280
274
  - lib/mack_tasks.rb
275
+ - bin/env_handler.rb
276
+ - bin/gem_load_path.rb
281
277
  - CHANGELOG
282
278
  has_rdoc: true
283
279
  homepage: http://www.mackframework.com
@@ -1,58 +0,0 @@
1
- require 'find'
2
- namespace :cachetastic do
3
-
4
- task :manipulate_caches => :environment do
5
- cache_name = ENV['cache_name']
6
- cache_name = cache_name.camelcase
7
- action = ENV['cache_action']
8
- running_time("#{cache_name}.#{action}") do
9
- case cache_name
10
- when "All"
11
- puts "About to work on ALL caches!"
12
- # force all caches to register themselves:
13
- ["#{Mack.root}/lib/caches"].each do |dir|
14
- Find.find(dir) do |f|
15
- # puts f
16
- if FileTest.directory?(f) and !f.match(/.svn/)
17
- else
18
- if FileTest.file?(f)
19
- m = f.match(/\/[a-zA-Z\-_]*.rb$/)
20
- if m
21
- model = m.to_s
22
- unless model.match("test_")
23
- x = model.gsub('/', '').gsub('.rb', '')
24
- # puts "x: #{x}"
25
- require x
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end
32
- caches = Cachetastic::Caches::Base.all_registered_caches.dup
33
- caches.sort!
34
- caches.reverse!
35
- caches.each do |cache|
36
- do_work(cache, action)
37
- end
38
- else
39
- do_work(cache_name, action)
40
- end
41
- end
42
- end
43
-
44
- def do_work(cache, action)
45
- begin
46
- puts "Calling: #{cache}.#{action}"
47
- cache.constantize.send(action)
48
- rescue MethodNotImplemented => e
49
- msg = "Cachetastic.rake Warning: cache #{cache} does not implement #{action}. This is probably an error."
50
- puts msg
51
- Mack.logger.warning(msg)
52
- rescue NoMethodError => e
53
- rescue Exception => e
54
- raise e
55
- end
56
- end
57
-
58
- end