rad_core 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. data/Rakefile +2 -2
  2. data/bin/rad +20 -25
  3. data/lib/components/config.rb +1 -1
  4. data/lib/components/configurators.rb +2 -2
  5. data/lib/components/controller.rb +2 -2
  6. data/lib/components/conveyors.rb +2 -2
  7. data/lib/components/environment.rb +1 -1
  8. data/lib/components/environment.yml +28 -28
  9. data/lib/components/flash.rb +1 -1
  10. data/lib/components/html.rb +1 -1
  11. data/lib/components/http.rb +1 -1
  12. data/lib/components/http.yml +1 -1
  13. data/lib/components/logger.rb +2 -2
  14. data/lib/components/mailer.rb +2 -2
  15. data/lib/components/remote.rb +1 -1
  16. data/lib/components/router.rb +3 -3
  17. data/lib/components/template.rb +2 -2
  18. data/lib/components/web.rb +3 -3
  19. data/lib/rad.rb +1 -1
  20. data/lib/rad/_support/active_support.rb +7 -7
  21. data/lib/rad/_support/active_support/locales/ru/actionview.yml +8 -8
  22. data/lib/rad/_support/active_support/locales/ru/activesupport.yml +4 -4
  23. data/lib/rad/_support/active_support/locales/ru/datetime.yml +5 -5
  24. data/lib/rad/_support/active_support/time.rb +2 -2
  25. data/lib/rad/_support/addressable.rb +6 -6
  26. data/lib/rad/_support/class_loader.rb +1 -1
  27. data/lib/rad/_support/extensions.rb +5 -5
  28. data/lib/rad/_support/filters.rb +13 -13
  29. data/lib/rad/_support/hacks_and_fixes.rb +5 -5
  30. data/lib/rad/_support/mime.rb +4 -4
  31. data/lib/rad/_support/module.rb +11 -11
  32. data/lib/rad/_support/require.rb +5 -5
  33. data/lib/rad/_support/rson.rb +4 -4
  34. data/lib/rad/_support/string.rb +9 -9
  35. data/lib/rad/cli/helper.rb +5 -5
  36. data/lib/rad/configurators/_require.rb +2 -2
  37. data/lib/rad/configurators/abstract.rb +5 -5
  38. data/lib/rad/configurators/web.rb +8 -8
  39. data/lib/rad/controller/_abstract.rb +15 -14
  40. data/lib/rad/controller/_abstract/miscellaneous.rb +5 -5
  41. data/lib/rad/controller/_abstract/render.rb +40 -40
  42. data/lib/rad/controller/_abstract/responder.rb +1 -1
  43. data/lib/rad/controller/_context.rb +1 -1
  44. data/lib/rad/controller/_http.rb +11 -11
  45. data/lib/rad/controller/_require.rb +6 -6
  46. data/lib/rad/controller/processors/controller_caller.rb +3 -3
  47. data/lib/rad/controller/processors/controller_error_handling.rb +14 -14
  48. data/lib/rad/controller/processors/controller_logger.rb +1 -1
  49. data/lib/rad/conveyors/_conveyor.rb +9 -9
  50. data/lib/rad/conveyors/_conveyors.rb +4 -4
  51. data/lib/rad/conveyors/_params.rb +5 -5
  52. data/lib/rad/conveyors/_processor.rb +2 -2
  53. data/lib/rad/conveyors/_workspace.rb +5 -5
  54. data/lib/rad/conveyors/processors/conveyor_logger.rb +3 -3
  55. data/lib/rad/environment/_config.rb +4 -4
  56. data/lib/rad/environment/_environment.rb +10 -10
  57. data/lib/rad/environment/_files_helper.rb +5 -5
  58. data/lib/rad/environment/_logger.rb +9 -9
  59. data/lib/rad/environment/_require.rb +4 -4
  60. data/lib/rad/gems.rb +14 -14
  61. data/lib/rad/html/_flash.rb +5 -5
  62. data/lib/rad/html/_helpers/basic_html_helper.rb +12 -12
  63. data/lib/rad/html/_helpers/form_helper.rb +19 -19
  64. data/lib/rad/html/_helpers/javascript_helper.rb +6 -6
  65. data/lib/rad/html/_helpers/model_helper.rb +17 -17
  66. data/lib/rad/html/_require.rb +1 -1
  67. data/lib/rad/html/processors/prepare_flash.rb +3 -3
  68. data/lib/rad/html/processors/scoped_params.rb +4 -4
  69. data/lib/rad/http/_http.rb +4 -4
  70. data/lib/rad/http/_http_adapter.rb +5 -5
  71. data/lib/rad/http/_request.rb +11 -11
  72. data/lib/rad/http/_require.rb +8 -8
  73. data/lib/rad/http/_response.rb +5 -5
  74. data/lib/rad/http/_support/rack/fixes.rb +3 -3
  75. data/lib/rad/http/_support/rack/rack_adapter.rb +5 -5
  76. data/lib/rad/http/processors/evaluate_format.rb +4 -4
  77. data/lib/rad/http/processors/http_logger.rb +3 -3
  78. data/lib/rad/http/processors/http_writer.rb +7 -7
  79. data/lib/rad/http/processors/prepare_params.rb +5 -5
  80. data/lib/rad/mailer/_letter.rb +1 -1
  81. data/lib/rad/mailer/_mailer.rb +1 -1
  82. data/lib/rad/mailer/_mailer_controller.rb +6 -6
  83. data/lib/rad/mailer/_require.rb +1 -1
  84. data/lib/rad/mailer/processors/letter_builder.rb +6 -6
  85. data/lib/rad/profiles/mailer.rb +2 -2
  86. data/lib/rad/profiles/web.rb +13 -13
  87. data/lib/rad/remote/processors/remote_caller.rb +10 -10
  88. data/lib/rad/remote/processors/remote_logger.rb +1 -1
  89. data/lib/rad/router/_abstract_router.rb +9 -9
  90. data/lib/rad/router/_alias_router.rb +34 -34
  91. data/lib/rad/router/_basic_router.rb +12 -12
  92. data/lib/rad/router/_configurator.rb +6 -6
  93. data/lib/rad/router/_core_routing_helper.rb +4 -4
  94. data/lib/rad/router/_object_router.rb +45 -45
  95. data/lib/rad/router/_require.rb +8 -8
  96. data/lib/rad/router/_restful_router.rb +25 -25
  97. data/lib/rad/router/_router.rb +78 -78
  98. data/lib/rad/router/_simple_router.rb +5 -5
  99. data/lib/rad/router/processors/router.rb +6 -6
  100. data/lib/rad/spec/controller.rb +9 -9
  101. data/lib/rad/spec/environment.rb +7 -7
  102. data/lib/rad/spec/http.rb +2 -2
  103. data/lib/rad/spec/http_controller.rb +22 -22
  104. data/lib/rad/spec/mailer.rb +4 -4
  105. data/lib/rad/spec/remote.rb +1 -1
  106. data/lib/rad/spec/router.rb +4 -4
  107. data/lib/rad/spec/template.rb +2 -2
  108. data/lib/rad/tasks.rb +2 -2
  109. data/lib/rad/template/_context.rb +15 -15
  110. data/lib/rad/template/_relative_path_resolver.rb +1 -1
  111. data/lib/rad/template/_support/tilt.rb +17 -17
  112. data/lib/rad/template/_support/tilt_fixes.rb +3 -3
  113. data/lib/rad/template/_template.rb +47 -47
  114. data/lib/rad/web/_ajax_helper.rb +4 -4
  115. data/lib/rad/web/_controller_miscellaneous_helper.rb +5 -5
  116. data/lib/rad/web/_ensure_no_www.rb +5 -5
  117. data/lib/rad/web/_protect_from_forgery.rb +18 -18
  118. data/lib/rad/web/_require.rb +7 -7
  119. data/lib/rad/web/_router/abstract_routing_helper.rb +4 -4
  120. data/lib/rad/web/_router/controller_routing_helper.rb +15 -15
  121. data/lib/rad/web/_router/view_routing_helper.rb +12 -12
  122. data/readme.md +5 -5
  123. data/spec/controller/abstract_spec.rb +29 -29
  124. data/spec/controller/context_spec.rb +32 -32
  125. data/spec/controller/error_handling_spec.rb +31 -31
  126. data/spec/controller/helper_spec.rb +13 -13
  127. data/spec/controller/http_spec.rb +32 -32
  128. data/spec/controller/render_spec.rb +59 -59
  129. data/spec/conveyors/conveyors_spec.rb +32 -32
  130. data/spec/environment/config_spec.rb +6 -6
  131. data/spec/environment/environment_spec.rb +7 -7
  132. data/spec/environment/minimal_app_spec.rb +4 -4
  133. data/spec/environment/standard_app_spec.rb +10 -10
  134. data/spec/html/basic_html_helper_spec.rb +6 -6
  135. data/spec/html/form_helper_spec.rb +5 -5
  136. data/spec/html/javascript_helper_spec.rb +4 -4
  137. data/spec/html/model_helper_spec.rb +12 -12
  138. data/spec/html/scoped_params_spec.rb +2 -2
  139. data/spec/html/spec_helper.rb +3 -3
  140. data/spec/http/http_spec.rb +9 -9
  141. data/spec/http/miscellaneous_spec.rb +2 -2
  142. data/spec/mailer/mail_controller_spec.rb +23 -23
  143. data/spec/remote/remote_spec.rb +26 -26
  144. data/spec/router/alias_router_spec.rb +22 -22
  145. data/spec/router/basic_router_spec.rb +8 -8
  146. data/spec/router/configurator_spec.rb +4 -4
  147. data/spec/router/integration_spec.rb +17 -17
  148. data/spec/router/object_router_spec.rb +47 -47
  149. data/spec/router/persistent_params_spec.rb +18 -18
  150. data/spec/router/restful_router_spec.rb +39 -39
  151. data/spec/router/router_spec.rb +37 -37
  152. data/spec/router/routing_helper_spec.rb +18 -18
  153. data/spec/support/filters_spec.rb +11 -13
  154. data/spec/template/template_spec.rb +43 -45
  155. data/spec/template/template_spec/views/layout/content_for/content.erb +3 -1
  156. data/spec/template/template_spec/views/layout/content_for/layout.erb +1 -1
  157. data/spec/template/tilt_spec.rb +24 -24
  158. data/spec/web/basic_spec.rb +25 -25
  159. data/spec/web/controller_routing_helper_spec.rb +26 -26
  160. data/spec/web/flash_spec.rb +31 -31
  161. data/spec/web/protect_from_forgery_spec.rb +44 -44
  162. data/spec/web/spec_helper_spec.rb +16 -16
  163. data/spec/web/view_routing_helper_spec.rb +31 -31
  164. metadata +46 -49
  165. data/lib/rad/_support/callbacks.rb +0 -166
  166. data/lib/rad/_support/ruby_ext_with_active_support.rb +0 -4
  167. data/spec/support/callbacks_spec.rb +0 -157
@@ -6,11 +6,11 @@ Addressable::URI.class_eval do
6
6
  (self.query ? "?#{self.query}" : "")
7
7
  )
8
8
  end
9
-
9
+
10
10
  def self.normalize_host host
11
11
  host.gsub(/^www\./, "")
12
12
  end
13
-
13
+
14
14
  def normalized_host
15
15
  host ? host : host.gsub(/^www\./, '')
16
16
  end
@@ -19,13 +19,13 @@ Addressable::URI.class_eval do
19
19
  def query_values_with_skip_nil= options
20
20
  to_delete = []
21
21
  options.each{|k, v| to_delete << k if v.nil?}
22
- to_delete.each{|k| options.delete k}
23
-
22
+ to_delete.each{|k| options.delete k}
23
+
24
24
  self.query_values_without_skip_nil = options
25
25
  end
26
26
  alias_method_chain :query_values=, :skip_nil
27
-
28
-
27
+
28
+
29
29
  # Override original to fix:
30
30
  # - extra '?' sign (/some_path?) if there's empty but not-nil query
31
31
  def to_s
@@ -6,4 +6,4 @@ rad.after :environment do
6
6
  end
7
7
 
8
8
  lib_path = File.expand_path "#{__FILE__}/../../.."
9
- autoload_dir lib_path, false
9
+ autoload_path lib_path, false
@@ -2,19 +2,19 @@ class Micon::Core
2
2
  def register_extension name, &block
3
3
  name.must_be.a Symbol
4
4
  block.must_be.defined
5
-
5
+
6
6
  raise "extension :#{name} already registered!" if extensions.include? name
7
7
 
8
8
  extensions[name] = block
9
9
  end
10
-
11
- def extension name, target = nil, *args, &default_extension
10
+
11
+ def extension name, target = nil, *args, &default_extension
12
12
  name.must_be.a Symbol
13
-
13
+
14
14
  if block = extensions[name] || default_extension
15
15
  target ? target.instance_exec(*args, &block) : block.call(*args)
16
16
  end
17
17
  end
18
-
18
+
19
19
  def extensions; @extensions ||= {} end
20
20
  end
@@ -1,31 +1,31 @@
1
1
  module Rad::Filters
2
- inherit Rad::Callbacks
3
-
2
+ inherit RubyExt::Callbacks
3
+
4
4
  module ClassMethods
5
5
  def before *args, &block
6
6
  opt = args.extract_options!
7
- if block
7
+ if block
8
8
  set_callback :action, :before, opt, &block
9
- else
10
- args.each{|executor| set_callback :action, :before, executor, opt}
9
+ else
10
+ args.each{|executor| set_callback :action, :before, executor, opt}
11
11
  end
12
12
  end
13
-
13
+
14
14
  def around *args, &block
15
15
  opt = args.extract_options!
16
- if block
16
+ if block
17
17
  set_callback :action, :around, opt, &block
18
- else
19
- args.each{|executor| set_callback :action, :around, executor, opt}
18
+ else
19
+ args.each{|executor| set_callback :action, :around, executor, opt}
20
20
  end
21
21
  end
22
-
22
+
23
23
  def after *args, &block
24
24
  opt = args.extract_options!
25
- if block
25
+ if block
26
26
  set_callback :action, :after, opt, &block
27
- else
28
- args.each{|executor| set_callback :action, :after, executor, opt}
27
+ else
28
+ args.each{|executor| set_callback :action, :after, executor, opt}
29
29
  end
30
30
  end
31
31
  end
@@ -1,8 +1,8 @@
1
- #
2
- # Problem: the Hash::slice method in ActiveSupport works a little differently than in Facets.
1
+ #
2
+ # Problem: the Hash::slice method in ActiveSupport works a little differently than in Facets.
3
3
  # And because Facets is overrides ActiveSupport version this causes problems (for example in to_json method)
4
4
  # In ActiveSupport it returns :nil if there's no key in Facets it raises error.
5
- #
5
+ #
6
6
  # Use Case:
7
7
  # hash = {:items=>[], "slug"=>"item-z8w", "name"=>"Item", "created_at"=>"2011-01-10T07:04:01Z", "dependent"=>"false", "viewers"=>["manager", "user:user1"], "updated_at"=>"2011-01-10T07:04:01Z", :icon_url=>"null", "text"=>"null", "tags"=>[], "owner_name"=>"user1", "_type"=>"Selector"}
8
8
  # args = ["id", "_type", "slug", "name", "text", "tags", "dependent", "owner_name", "viewers", "created_at", "updated_at"]
@@ -10,14 +10,14 @@
10
10
  #
11
11
  # Solution:
12
12
  # Redefining :slice the same way as in ActiveSupport.
13
- #
13
+ #
14
14
 
15
15
  # TODO1 remove it, we don't use facets anymore
16
16
 
17
17
  class Hash
18
18
  def slice(*keep_keys)
19
19
  hash = {}
20
- keep_keys.each do |key|
20
+ keep_keys.each do |key|
21
21
  # hash[key] = fetch(key)
22
22
  hash[key] = self[key]
23
23
  end
@@ -4,14 +4,14 @@ module Mime
4
4
  raise "invalid usage of Mime!" unless args.empty?
5
5
  self[m]
6
6
  end
7
-
7
+
8
8
  def [] type
9
9
  type = ".#{type}" unless type =~ /^\./
10
10
  Rack::Mime.mime_type(type) || raise("Unknown MIME type: #{type}")
11
11
  end
12
-
13
- def image? file_name
14
- return false if file_name.blank?
12
+
13
+ def image? file_name
14
+ return false if file_name.blank?
15
15
  extension = File.extname(file_name)
16
16
  Rack::Mime.mime_type(extension) =~ /image/
17
17
  end
@@ -1,22 +1,22 @@
1
1
  class Module
2
-
3
- #
2
+
3
+ #
4
4
  # Dynamically enables cache in :production and disables in another environments.
5
5
  # If no environment given uses non-cached version.
6
- #
7
- def cache_method_with_params_in_production method
6
+ #
7
+ def cache_method_with_params_in_production method
8
8
  escaped_method = escape_method(method)
9
9
  method_with_cache, method_without_cache = "#{escaped_method}_with_cache", "#{escaped_method}_without_cache"
10
10
  iv = "@#{escaped_method}_cache"
11
-
11
+
12
12
  # raise "Method '#{method}' already defined!" if instance_methods.include?(method)
13
13
  if instance_methods.include?(method_with_cache) or instance_methods.include?(method_without_cache)
14
- warn "can't cache the :#{method} twice!"
14
+ warn "can't cache the :#{method} twice!"
15
15
  else
16
- alias_method method_without_cache, method
16
+ alias_method method_without_cache, method
17
17
 
18
18
  # create cached method
19
- define_method method_with_cache do |*args|
19
+ define_method method_with_cache do |*args|
20
20
  unless results = instance_variable_get(iv)
21
21
  results = Hash.new(NotDefined)
22
22
  instance_variable_set iv, results
@@ -24,7 +24,7 @@ class Module
24
24
 
25
25
  result = results[args]
26
26
 
27
- if result.equal? NotDefined
27
+ if result.equal? NotDefined
28
28
  result = send method_without_cache, *args
29
29
  results[args] = result
30
30
  end
@@ -40,7 +40,7 @@ class Module
40
40
 
41
41
  # by default uses non-cached version
42
42
  # alias_method method, method_without_cache
43
- end
43
+ end
44
44
  end
45
-
45
+
46
46
  end
@@ -20,11 +20,12 @@ require 'ruby_ext'
20
20
 
21
21
  require 'vfs'
22
22
 
23
- require 'ruby_ext/more/open_constructor'
24
- require 'rad/_support/ruby_ext_with_active_support'
23
+ # require 'ruby_ext/more/open_constructor'
24
+ # require 'rad/_support/ruby_ext_with_active_support'
25
25
 
26
26
  require 'class_loader'
27
27
 
28
+ $dont_create_micon_shortcut = true
28
29
  require 'micon'
29
30
  # require 'micon/rad'
30
31
  require 'rad/_support/micon'
@@ -46,11 +47,10 @@ require 'rad/_support/addressable'
46
47
  #
47
48
  require 'rad/_support/hacks_and_fixes'
48
49
 
49
- [
50
+ [
50
51
  'module',
51
- 'callbacks',
52
52
  'filters',
53
- 'mime',
53
+ 'mime',
54
54
  'string',
55
55
  'rson',
56
56
  'exception',
@@ -16,7 +16,7 @@ end
16
16
  def to_rson options = {}
17
17
  self
18
18
  end
19
-
19
+
20
20
  def rson?
21
21
  true
22
22
  end
@@ -27,12 +27,12 @@ Array.class_eval do
27
27
  def to_rson options = {}
28
28
  collect{|v| v.to_rson(options)}
29
29
  end
30
-
30
+
31
31
  def rson?
32
32
  all?{|v| v.rson?}
33
33
  end
34
34
  end
35
-
35
+
36
36
  [Hash, OpenObject].each do |klass|
37
37
  klass.class_eval do
38
38
  def to_rson options = {}
@@ -42,7 +42,7 @@ end
42
42
  end
43
43
  r
44
44
  end
45
-
45
+
46
46
  def rson?
47
47
  each do |k, v|
48
48
  return false unless k.rson? and v.rson?
@@ -2,26 +2,26 @@ class String
2
2
  def json_escape
3
3
  ERB::Util.json_escape self
4
4
  end
5
-
5
+
6
6
  HTML_ESCAPE_MAP = { '&' => '&amp;', '>' => '&gt;', '<' => '&lt;', '"' => '&quot;' }
7
7
  def html_escape
8
8
  # ERB and Rack both are replacing '/' character, and it's wrong because it destroys links (like '/default/my_item')
9
9
  # ERB::Util.html_escape self
10
10
  # Rack::Utils.escape_html self
11
-
11
+
12
12
  gsub(/[&"><]/){|special| HTML_ESCAPE_MAP[special]}
13
13
  end
14
-
14
+
15
15
  def url_escape
16
16
  # TODO2 change to Rack::Utils.escape
17
17
  CGI.escape self
18
18
  end
19
-
19
+
20
20
  def url_unescape
21
21
  # TODO2 change to Rack::Utils.unescape
22
22
  CGI.unescape self
23
23
  end
24
-
24
+
25
25
  JS_ESCAPE_MAP = {
26
26
  '\\' => '\\\\',
27
27
  '</' => '<\/',
@@ -29,12 +29,12 @@ class String
29
29
  "\n" => '\n',
30
30
  "\r" => '\n',
31
31
  '"' => '\\"',
32
- "'" => "\\'"
33
- }
32
+ "'" => "\\'"
33
+ }
34
34
  def js_escape
35
35
  gsub(/(\\|<\/|\r\n|[\n\r"'])/){JS_ESCAPE_MAP[$1]}
36
36
  end
37
-
38
- # String marks, like :format, :safe
37
+
38
+ # String marks, like :format, :safe
39
39
  def marks; @marks ||= OpenObject.new end
40
40
  end
@@ -3,20 +3,20 @@ module Helper
3
3
 
4
4
  class << self
5
5
  inject logger: :logger
6
-
6
+
7
7
  def run_console
8
8
  prepare_running_environment
9
9
 
10
10
  require 'irb'
11
- IRB.start
11
+ IRB.start
12
12
  end
13
13
 
14
14
  def run_server
15
15
  app = prepare_running_environment
16
-
16
+
17
17
  rad.http.run app, rad.http.host, rad.http.port
18
18
  end
19
-
19
+
20
20
  def use_runtime_path!
21
21
  runtime_path = "./#{RUNTIME_DIR}"
22
22
  Dir.chdir runtime_path if Dir.exist? runtime_path
@@ -25,7 +25,7 @@ module Helper
25
25
  protected
26
26
  def prepare_running_environment
27
27
  use_runtime_path!
28
-
28
+
29
29
  require 'rack'
30
30
  app, options = Rack::Builder.parse_file 'config.ru'
31
31
  app
@@ -5,8 +5,8 @@
5
5
  # ).each{|f| require "rad/configurators/#{f}"}
6
6
 
7
7
  class Micon::Core
8
- def configure configurator_name, dir, &block
9
- configurator_class = "Rad::Configurators::#{configurator_name.to_s.classify}".constantize
8
+ def configure configurator_name, dir, &block
9
+ configurator_class = "Rad::Configurators::#{configurator_name.to_s.classify}".constantize
10
10
  configurator = configurator_class.new dir
11
11
  block.call configurator if block
12
12
  end
@@ -4,21 +4,21 @@ class Abstract
4
4
  def initialize dir
5
5
  @dir = File.expand_path(dir)
6
6
  end
7
-
7
+
8
8
  # def config options = {}
9
9
  # rad.config.merge_config! "#{dir}/config/config.yml", options
10
10
  # end
11
-
11
+
12
12
  def routes
13
13
  routes_file = "#{dir}/config/routes.rb"
14
14
  load routes_file if File.exist? routes_file
15
15
  end
16
-
16
+
17
17
  def locales
18
18
  I18n.load_path += Dir["#{dir}/config/locales/**/*.{rb,yml}"]
19
19
  I18n.load_path += Dir["#{dir}/config/locales/*.{rb,yml}"]
20
20
  end
21
-
22
- protected
21
+
22
+ protected
23
23
  attr_reader :dir #, :after_config, :after_environment
24
24
  end
@@ -1,6 +1,6 @@
1
1
  rad.configurators
2
2
 
3
- class Web < Abstract
3
+ class Web < Abstract
4
4
  def asset_paths *relative_paths
5
5
  relative_paths = relative_paths.first if relative_paths.first.is_a? Array
6
6
  relative_paths.each do |relative_path|
@@ -8,7 +8,7 @@ class Web < Abstract
8
8
  rad.assets.paths << path unless rad.assets.paths.include? path
9
9
  end
10
10
  end
11
-
11
+
12
12
  def load_paths *relative_paths
13
13
  relative_paths = relative_paths.first if relative_paths.first.is_a? Array
14
14
  relative_paths.each do |relative_path|
@@ -16,19 +16,19 @@ class Web < Abstract
16
16
  $LOAD_PATH << path unless $LOAD_PATH.include? path
17
17
  end
18
18
  end
19
-
19
+
20
20
  def template_paths *relative_paths
21
21
  rad.template
22
-
22
+
23
23
  relative_paths = relative_paths.first if relative_paths.first.is_a? Array
24
24
  relative_paths.each do |relative_path|
25
25
  path = "#{dir}/#{relative_path}"
26
26
  rad.template.paths << path unless rad.template.paths.include? path
27
27
  end
28
28
  end
29
-
29
+
30
30
  def autoload_paths *relative_paths
31
- relative_paths = relative_paths.first if relative_paths.first.is_a? Array
32
- relative_paths.each{|d| autoload_dir "#{dir}/#{d}", true}
33
- end
31
+ relative_paths = relative_paths.first if relative_paths.first.is_a? Array
32
+ relative_paths.each{|d| autoload_path "#{dir}/#{d}", true}
33
+ end
34
34
  end
@@ -1,5 +1,5 @@
1
1
  module Rad::Controller::Abstract
2
- inherit OpenConstructor
2
+ inherit RubyExt::OpenConstructor
3
3
  inherit Rad::Filters
4
4
  inherit Rad::Controller::Abstract::Render, Rad::Controller::Abstract::Miscellaneous
5
5
 
@@ -7,13 +7,14 @@ module Rad::Controller::Abstract
7
7
 
8
8
  attr_accessor :action_name
9
9
  attr_required :action_name
10
-
10
+
11
11
  attr_writer :params
12
12
  def params; @params ||= Rad::Conveyors::Params.new end
13
-
13
+
14
14
  def call action, *args
15
+ action.must_be.a Symbol
15
16
  catch :halt do
16
- run_callbacks :action, method: action do
17
+ run_callbacks :action, method: action do
17
18
  send action, *args
18
19
  render action: action
19
20
  end
@@ -22,24 +23,24 @@ module Rad::Controller::Abstract
22
23
 
23
24
  module ClassMethods
24
25
  inject workspace: :workspace, logger: :logger
25
-
26
- def controller_name
27
- self.namespace ? "#{self.namespace.name}::#{self.alias}" : self.alias
28
- end
26
+
27
+ def controller_name
28
+ self.namespace ? "#{self.namespace.name}::#{self.alias}" : self.alias
29
+ end
29
30
 
30
31
  def helper *args
31
- args.to_a.each do |mod|
32
+ args.to_a.each do |mod|
32
33
  mod.must_be.a Module
33
34
  context_class.inherit mod
34
- end
35
+ end
35
36
  end
36
-
37
+
37
38
  def helper_method *args
38
39
  args = args.first if args.size == 1 and args.first.is_a?(Array)
39
40
  # args.each{|m| m.to_s.must_be.in self.instance_methods}
40
- args.each do |m|
41
+ args.each do |m|
41
42
  context_class.delegate m, to: :controller
42
- end
43
+ end
43
44
  end
44
- end
45
+ end
45
46
  end