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.
- data/Rakefile +2 -2
- data/bin/rad +20 -25
- data/lib/components/config.rb +1 -1
- data/lib/components/configurators.rb +2 -2
- data/lib/components/controller.rb +2 -2
- data/lib/components/conveyors.rb +2 -2
- data/lib/components/environment.rb +1 -1
- data/lib/components/environment.yml +28 -28
- data/lib/components/flash.rb +1 -1
- data/lib/components/html.rb +1 -1
- data/lib/components/http.rb +1 -1
- data/lib/components/http.yml +1 -1
- data/lib/components/logger.rb +2 -2
- data/lib/components/mailer.rb +2 -2
- data/lib/components/remote.rb +1 -1
- data/lib/components/router.rb +3 -3
- data/lib/components/template.rb +2 -2
- data/lib/components/web.rb +3 -3
- data/lib/rad.rb +1 -1
- data/lib/rad/_support/active_support.rb +7 -7
- data/lib/rad/_support/active_support/locales/ru/actionview.yml +8 -8
- data/lib/rad/_support/active_support/locales/ru/activesupport.yml +4 -4
- data/lib/rad/_support/active_support/locales/ru/datetime.yml +5 -5
- data/lib/rad/_support/active_support/time.rb +2 -2
- data/lib/rad/_support/addressable.rb +6 -6
- data/lib/rad/_support/class_loader.rb +1 -1
- data/lib/rad/_support/extensions.rb +5 -5
- data/lib/rad/_support/filters.rb +13 -13
- data/lib/rad/_support/hacks_and_fixes.rb +5 -5
- data/lib/rad/_support/mime.rb +4 -4
- data/lib/rad/_support/module.rb +11 -11
- data/lib/rad/_support/require.rb +5 -5
- data/lib/rad/_support/rson.rb +4 -4
- data/lib/rad/_support/string.rb +9 -9
- data/lib/rad/cli/helper.rb +5 -5
- data/lib/rad/configurators/_require.rb +2 -2
- data/lib/rad/configurators/abstract.rb +5 -5
- data/lib/rad/configurators/web.rb +8 -8
- data/lib/rad/controller/_abstract.rb +15 -14
- data/lib/rad/controller/_abstract/miscellaneous.rb +5 -5
- data/lib/rad/controller/_abstract/render.rb +40 -40
- data/lib/rad/controller/_abstract/responder.rb +1 -1
- data/lib/rad/controller/_context.rb +1 -1
- data/lib/rad/controller/_http.rb +11 -11
- data/lib/rad/controller/_require.rb +6 -6
- data/lib/rad/controller/processors/controller_caller.rb +3 -3
- data/lib/rad/controller/processors/controller_error_handling.rb +14 -14
- data/lib/rad/controller/processors/controller_logger.rb +1 -1
- data/lib/rad/conveyors/_conveyor.rb +9 -9
- data/lib/rad/conveyors/_conveyors.rb +4 -4
- data/lib/rad/conveyors/_params.rb +5 -5
- data/lib/rad/conveyors/_processor.rb +2 -2
- data/lib/rad/conveyors/_workspace.rb +5 -5
- data/lib/rad/conveyors/processors/conveyor_logger.rb +3 -3
- data/lib/rad/environment/_config.rb +4 -4
- data/lib/rad/environment/_environment.rb +10 -10
- data/lib/rad/environment/_files_helper.rb +5 -5
- data/lib/rad/environment/_logger.rb +9 -9
- data/lib/rad/environment/_require.rb +4 -4
- data/lib/rad/gems.rb +14 -14
- data/lib/rad/html/_flash.rb +5 -5
- data/lib/rad/html/_helpers/basic_html_helper.rb +12 -12
- data/lib/rad/html/_helpers/form_helper.rb +19 -19
- data/lib/rad/html/_helpers/javascript_helper.rb +6 -6
- data/lib/rad/html/_helpers/model_helper.rb +17 -17
- data/lib/rad/html/_require.rb +1 -1
- data/lib/rad/html/processors/prepare_flash.rb +3 -3
- data/lib/rad/html/processors/scoped_params.rb +4 -4
- data/lib/rad/http/_http.rb +4 -4
- data/lib/rad/http/_http_adapter.rb +5 -5
- data/lib/rad/http/_request.rb +11 -11
- data/lib/rad/http/_require.rb +8 -8
- data/lib/rad/http/_response.rb +5 -5
- data/lib/rad/http/_support/rack/fixes.rb +3 -3
- data/lib/rad/http/_support/rack/rack_adapter.rb +5 -5
- data/lib/rad/http/processors/evaluate_format.rb +4 -4
- data/lib/rad/http/processors/http_logger.rb +3 -3
- data/lib/rad/http/processors/http_writer.rb +7 -7
- data/lib/rad/http/processors/prepare_params.rb +5 -5
- data/lib/rad/mailer/_letter.rb +1 -1
- data/lib/rad/mailer/_mailer.rb +1 -1
- data/lib/rad/mailer/_mailer_controller.rb +6 -6
- data/lib/rad/mailer/_require.rb +1 -1
- data/lib/rad/mailer/processors/letter_builder.rb +6 -6
- data/lib/rad/profiles/mailer.rb +2 -2
- data/lib/rad/profiles/web.rb +13 -13
- data/lib/rad/remote/processors/remote_caller.rb +10 -10
- data/lib/rad/remote/processors/remote_logger.rb +1 -1
- data/lib/rad/router/_abstract_router.rb +9 -9
- data/lib/rad/router/_alias_router.rb +34 -34
- data/lib/rad/router/_basic_router.rb +12 -12
- data/lib/rad/router/_configurator.rb +6 -6
- data/lib/rad/router/_core_routing_helper.rb +4 -4
- data/lib/rad/router/_object_router.rb +45 -45
- data/lib/rad/router/_require.rb +8 -8
- data/lib/rad/router/_restful_router.rb +25 -25
- data/lib/rad/router/_router.rb +78 -78
- data/lib/rad/router/_simple_router.rb +5 -5
- data/lib/rad/router/processors/router.rb +6 -6
- data/lib/rad/spec/controller.rb +9 -9
- data/lib/rad/spec/environment.rb +7 -7
- data/lib/rad/spec/http.rb +2 -2
- data/lib/rad/spec/http_controller.rb +22 -22
- data/lib/rad/spec/mailer.rb +4 -4
- data/lib/rad/spec/remote.rb +1 -1
- data/lib/rad/spec/router.rb +4 -4
- data/lib/rad/spec/template.rb +2 -2
- data/lib/rad/tasks.rb +2 -2
- data/lib/rad/template/_context.rb +15 -15
- data/lib/rad/template/_relative_path_resolver.rb +1 -1
- data/lib/rad/template/_support/tilt.rb +17 -17
- data/lib/rad/template/_support/tilt_fixes.rb +3 -3
- data/lib/rad/template/_template.rb +47 -47
- data/lib/rad/web/_ajax_helper.rb +4 -4
- data/lib/rad/web/_controller_miscellaneous_helper.rb +5 -5
- data/lib/rad/web/_ensure_no_www.rb +5 -5
- data/lib/rad/web/_protect_from_forgery.rb +18 -18
- data/lib/rad/web/_require.rb +7 -7
- data/lib/rad/web/_router/abstract_routing_helper.rb +4 -4
- data/lib/rad/web/_router/controller_routing_helper.rb +15 -15
- data/lib/rad/web/_router/view_routing_helper.rb +12 -12
- data/readme.md +5 -5
- data/spec/controller/abstract_spec.rb +29 -29
- data/spec/controller/context_spec.rb +32 -32
- data/spec/controller/error_handling_spec.rb +31 -31
- data/spec/controller/helper_spec.rb +13 -13
- data/spec/controller/http_spec.rb +32 -32
- data/spec/controller/render_spec.rb +59 -59
- data/spec/conveyors/conveyors_spec.rb +32 -32
- data/spec/environment/config_spec.rb +6 -6
- data/spec/environment/environment_spec.rb +7 -7
- data/spec/environment/minimal_app_spec.rb +4 -4
- data/spec/environment/standard_app_spec.rb +10 -10
- data/spec/html/basic_html_helper_spec.rb +6 -6
- data/spec/html/form_helper_spec.rb +5 -5
- data/spec/html/javascript_helper_spec.rb +4 -4
- data/spec/html/model_helper_spec.rb +12 -12
- data/spec/html/scoped_params_spec.rb +2 -2
- data/spec/html/spec_helper.rb +3 -3
- data/spec/http/http_spec.rb +9 -9
- data/spec/http/miscellaneous_spec.rb +2 -2
- data/spec/mailer/mail_controller_spec.rb +23 -23
- data/spec/remote/remote_spec.rb +26 -26
- data/spec/router/alias_router_spec.rb +22 -22
- data/spec/router/basic_router_spec.rb +8 -8
- data/spec/router/configurator_spec.rb +4 -4
- data/spec/router/integration_spec.rb +17 -17
- data/spec/router/object_router_spec.rb +47 -47
- data/spec/router/persistent_params_spec.rb +18 -18
- data/spec/router/restful_router_spec.rb +39 -39
- data/spec/router/router_spec.rb +37 -37
- data/spec/router/routing_helper_spec.rb +18 -18
- data/spec/support/filters_spec.rb +11 -13
- data/spec/template/template_spec.rb +43 -45
- data/spec/template/template_spec/views/layout/content_for/content.erb +3 -1
- data/spec/template/template_spec/views/layout/content_for/layout.erb +1 -1
- data/spec/template/tilt_spec.rb +24 -24
- data/spec/web/basic_spec.rb +25 -25
- data/spec/web/controller_routing_helper_spec.rb +26 -26
- data/spec/web/flash_spec.rb +31 -31
- data/spec/web/protect_from_forgery_spec.rb +44 -44
- data/spec/web/spec_helper_spec.rb +16 -16
- data/spec/web/view_routing_helper_spec.rb +31 -31
- metadata +46 -49
- data/lib/rad/_support/callbacks.rb +0 -166
- data/lib/rad/_support/ruby_ext_with_active_support.rb +0 -4
- data/spec/support/callbacks_spec.rb +0 -157
@@ -1,14 +1,14 @@
|
|
1
|
-
class Rad::Conveyors
|
1
|
+
class Rad::Conveyors
|
2
2
|
def initialize
|
3
3
|
@hash = {}
|
4
4
|
end
|
5
|
-
|
5
|
+
|
6
6
|
def [] conveyor_name
|
7
7
|
@hash[conveyor_name.to_s] ||= Conveyor.new
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
def size; @hash.size end
|
11
|
-
|
11
|
+
|
12
12
|
def method_missing m, &block
|
13
13
|
if block
|
14
14
|
block.call self[m]
|
@@ -6,15 +6,15 @@ class Rad::Conveyors::Workspace < OpenObject
|
|
6
6
|
def params?
|
7
7
|
!!params
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
alias_method :set_without_params, :[]=
|
11
|
-
def []= k, v
|
11
|
+
def []= k, v
|
12
12
|
if k.to_s == 'params'
|
13
13
|
self.params = v
|
14
14
|
else
|
15
15
|
set_without_params k, v
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
18
18
|
|
19
19
|
def params= v
|
20
20
|
if v.is_a? ::Rad::Conveyors::Params
|
@@ -23,11 +23,11 @@ class Rad::Conveyors::Workspace < OpenObject
|
|
23
23
|
set_without_params :params, ::Rad::Conveyors::Params.new(v)
|
24
24
|
end
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def inspect
|
28
28
|
h = {}
|
29
29
|
each{|k, v| h[k] = v}
|
30
|
-
h['env'] = "..." if h.include? 'env'
|
30
|
+
h['env'] = "..." if h.include? 'env'
|
31
31
|
h['request'] = "..." if h.include? 'request'
|
32
32
|
h.inspect
|
33
33
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
rad.conveyors
|
2
2
|
|
3
|
-
class ConveyorLogger < Rad::Conveyors::Processor
|
3
|
+
class ConveyorLogger < Rad::Conveyors::Processor
|
4
4
|
def call
|
5
5
|
begin
|
6
6
|
start_time = Time.now
|
7
7
|
next_processor.call
|
8
|
-
|
8
|
+
|
9
9
|
# if workspace.trace?
|
10
10
|
# total_time = workspace.trace.inject(0){|memo, pair| memo += pair.last}
|
11
11
|
# max_pair = workspace.trace.max_by{|pair| pair.last}
|
@@ -15,7 +15,7 @@ class ConveyorLogger < Rad::Conveyors::Processor
|
|
15
15
|
# end
|
16
16
|
rescue StandardError => e
|
17
17
|
raise e if rad.test?
|
18
|
-
|
18
|
+
|
19
19
|
logger.error e
|
20
20
|
logger.info "\n"
|
21
21
|
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
class Rad::Config
|
1
|
+
class Rad::Config
|
2
2
|
def subset; raise "you probably mistuped, it's config, not hash" end
|
3
|
-
|
3
|
+
|
4
4
|
def initialize hash = {}
|
5
5
|
hash.each do |k, v|
|
6
6
|
instance_variable_set :"@#{k}", v
|
7
7
|
end
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
def deep_clone
|
11
11
|
clone = Rad::Config.new
|
12
12
|
instance_variable_names.each do |k|
|
@@ -15,7 +15,7 @@ class Rad::Config
|
|
15
15
|
clone
|
16
16
|
end
|
17
17
|
alias_method :clone, :deep_clone
|
18
|
-
|
18
|
+
|
19
19
|
protected
|
20
20
|
def method_missing m, *args
|
21
21
|
if m =~ /=$/
|
@@ -1,21 +1,21 @@
|
|
1
|
-
#
|
1
|
+
#
|
2
2
|
# Environment
|
3
|
-
#
|
3
|
+
#
|
4
4
|
class Rad::Environment
|
5
5
|
inherit Rad::Environment::FilesHelper
|
6
|
-
|
6
|
+
|
7
7
|
inject logger: :logger
|
8
|
-
|
8
|
+
|
9
9
|
attr_writer :available_languages
|
10
10
|
def available_languages; @available_languages ||= [] end
|
11
|
-
|
11
|
+
|
12
12
|
attr_accessor :language
|
13
|
-
|
13
|
+
|
14
14
|
attr_writer :backtrace_filters
|
15
15
|
def backtrace_filters; @backtrace_filters ||= [] end
|
16
|
-
|
17
|
-
|
18
|
-
class << self
|
16
|
+
|
17
|
+
|
18
|
+
class << self
|
19
19
|
inject logger: :logger
|
20
|
-
end
|
20
|
+
end
|
21
21
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module Rad::Environment::FilesHelper
|
1
|
+
module Rad::Environment::FilesHelper
|
2
2
|
def directories
|
3
3
|
$LOAD_PATH
|
4
4
|
end
|
@@ -22,14 +22,14 @@ module Rad::Environment::FilesHelper
|
|
22
22
|
raise "Found multiple files for '#{fname}'" if files.size > 1
|
23
23
|
files.first
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def find_file! fname, directories = nil
|
27
27
|
find_file(fname, directories) || raise("File '#{fname}' not found!")
|
28
28
|
end
|
29
29
|
|
30
30
|
def find_files_by_pattern_without_cache pattern, directories = nil
|
31
31
|
directories ||= self.directories
|
32
|
-
patterns = directories.to_a.collect{|d| "#{d}#{pattern}"}
|
32
|
+
patterns = directories.to_a.collect{|d| "#{d}#{pattern}"}
|
33
33
|
Dir.glob patterns
|
34
34
|
end
|
35
35
|
alias_method :find_files_by_pattern, :find_files_by_pattern_without_cache
|
@@ -42,8 +42,8 @@ module Rad::Environment::FilesHelper
|
|
42
42
|
end
|
43
43
|
|
44
44
|
class << self
|
45
|
-
# don't move this class method to module, because there will be then
|
46
|
-
# multiple cache for every object that includes it.
|
45
|
+
# don't move this class method to module, because there will be then
|
46
|
+
# multiple cache for every object that includes it.
|
47
47
|
def find_files fname, directories
|
48
48
|
fname.must =~ /\//
|
49
49
|
directories.must_be.present # || raise('directories ')= self.directories
|
@@ -1,17 +1,17 @@
|
|
1
|
-
class Rad::Logger
|
1
|
+
class Rad::Logger
|
2
2
|
def initialize stream = nil
|
3
3
|
@stream = stream
|
4
4
|
end
|
5
|
-
|
5
|
+
|
6
6
|
def silence &b
|
7
7
|
begin
|
8
8
|
@silence = true
|
9
9
|
b.call
|
10
10
|
ensure
|
11
11
|
@silence = false
|
12
|
-
end
|
12
|
+
end
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def info obj
|
16
16
|
write obj_to_string(obj)
|
17
17
|
end
|
@@ -23,7 +23,7 @@ class Rad::Logger
|
|
23
23
|
def error obj
|
24
24
|
write "ERROR: " + obj_to_string(obj)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def debug obj
|
28
28
|
write obj_to_string(obj).gsub(/BSON::ObjectId\(([a-z0-9'"]+)\)/, "\\1")
|
29
29
|
end
|
@@ -35,21 +35,21 @@ class Rad::Logger
|
|
35
35
|
stream ? stream.write(str) : puts(str)
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
IDENTATION = " "
|
40
40
|
attr_reader :stream
|
41
|
-
|
41
|
+
|
42
42
|
def indent string
|
43
43
|
IDENTATION + string.gsub("\n", "\n" + IDENTATION)
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
def obj_to_string obj
|
47
47
|
if obj.is_a? Exception
|
48
48
|
backtrace = obj.backtrace || []
|
49
49
|
%{\
|
50
50
|
#{obj.message}
|
51
51
|
#{backtrace.join("\n ")}
|
52
|
-
}
|
52
|
+
}
|
53
53
|
else
|
54
54
|
obj.to_s
|
55
55
|
end
|
@@ -9,14 +9,14 @@ end
|
|
9
9
|
).each{|f| require "rad/environment/#{f}"}
|
10
10
|
|
11
11
|
|
12
|
-
#
|
13
|
-
# Handy mehtods
|
14
|
-
#
|
12
|
+
#
|
13
|
+
# Handy mehtods
|
14
|
+
#
|
15
15
|
class Micon::Core
|
16
16
|
|
17
17
|
def development?; mode == :development end
|
18
18
|
def production?; mode == :production end
|
19
|
-
def test?; mode == :test end
|
19
|
+
def test?; mode == :test end
|
20
20
|
|
21
21
|
def development █ block.call if development? end
|
22
22
|
def production █ block.call if production? end
|
data/lib/rad/gems.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
gem 'activesupport', '3.0
|
2
|
-
gem 'haml', '3.
|
3
|
-
gem 'tilt', '1.2
|
4
|
-
gem 'json', '1.4
|
5
|
-
gem 'addressable', '2.2
|
6
|
-
gem 'rack', '1.3
|
7
|
-
gem 'thin', '1.2
|
8
|
-
gem 'mail', '2.2
|
9
|
-
gem 'builder', '
|
1
|
+
gem 'activesupport', '~> 3.0'
|
2
|
+
gem 'haml', '~> 3.1'
|
3
|
+
gem 'tilt', '~> 1.2'
|
4
|
+
gem 'json', '~> 1.4'
|
5
|
+
gem 'addressable', '~> 2.2'
|
6
|
+
gem 'rack', '~> 1.3'
|
7
|
+
gem 'thin', '~> 1.2'
|
8
|
+
gem 'mail', '~> 2.2'
|
9
|
+
gem 'builder', '~> 3.0' # need for :xml response
|
10
10
|
|
11
11
|
# TODO2 remove this dependencies
|
12
12
|
# gem 'mime-types', '1.16'
|
@@ -19,18 +19,18 @@ if respond_to? :fake_gem
|
|
19
19
|
fake_gem 'class_loader'
|
20
20
|
end
|
21
21
|
|
22
|
-
#
|
22
|
+
#
|
23
23
|
# Gems for specs
|
24
|
-
#
|
24
|
+
#
|
25
25
|
# gem 'nokogiri', '1.4.4'
|
26
26
|
|
27
27
|
|
28
|
-
#
|
28
|
+
#
|
29
29
|
# Old stuff
|
30
|
-
#
|
30
|
+
#
|
31
31
|
# core gems dependencies
|
32
32
|
# gem 'i18n', '0.5.0'
|
33
33
|
# gem 'polyglot', '0.3.1'
|
34
34
|
# gem 'treetop', '1.4.9'
|
35
35
|
# gem 'mime-types', '1.16'
|
36
|
-
#
|
36
|
+
#
|
data/lib/rad/html/_flash.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class Rad::Html::Flash < OpenObject
|
2
2
|
attr_accessor :previous_messages, :current_messages
|
3
|
-
|
3
|
+
|
4
4
|
def initialize format, previous_messages = {}
|
5
5
|
self.current_messages, self.previous_messages = {}, previous_messages
|
6
6
|
@keep = false
|
@@ -8,9 +8,9 @@ class Rad::Html::Flash < OpenObject
|
|
8
8
|
|
9
9
|
def [] key
|
10
10
|
key = key.to_s
|
11
|
-
|
11
|
+
|
12
12
|
if keep?
|
13
|
-
previous_messages[key]
|
13
|
+
previous_messages[key]
|
14
14
|
else
|
15
15
|
current_messages[key] || previous_messages[key]
|
16
16
|
end
|
@@ -32,9 +32,9 @@ class Rad::Html::Flash < OpenObject
|
|
32
32
|
def messages_for_next_request
|
33
33
|
if keep?
|
34
34
|
current_messages
|
35
|
-
else
|
35
|
+
else
|
36
36
|
{}
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
end
|
@@ -6,9 +6,9 @@ module Rad::Html::BasicHtmlHelper
|
|
6
6
|
BOOLEAN_ATTRIBUTES.merge(BOOLEAN_ATTRIBUTES.map {|attr| attr.to_sym })
|
7
7
|
|
8
8
|
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# JavaScript & StyleSheets
|
11
|
-
#
|
11
|
+
#
|
12
12
|
def stylesheet_link_tag *stylesheets
|
13
13
|
stylesheets.collect{|ssheet|
|
14
14
|
tag :link, '', href: "#{ssheet}", media: "screen", rel: "stylesheet", type: "text/css"
|
@@ -16,27 +16,27 @@ module Rad::Html::BasicHtmlHelper
|
|
16
16
|
end
|
17
17
|
|
18
18
|
|
19
|
-
#
|
19
|
+
#
|
20
20
|
# Assets
|
21
|
-
#
|
21
|
+
#
|
22
22
|
def image_tag src, opt = {}
|
23
23
|
opt[:src] = src
|
24
24
|
tag :img, '', opt
|
25
25
|
end
|
26
|
-
|
27
26
|
|
28
|
-
|
27
|
+
|
28
|
+
#
|
29
29
|
# Common HTML tags
|
30
|
-
#
|
30
|
+
#
|
31
31
|
def label_tag name, text, options = {}
|
32
32
|
tag :label, text, options.merge(for: name)
|
33
33
|
end
|
34
34
|
|
35
35
|
|
36
|
-
#
|
36
|
+
#
|
37
37
|
# Special
|
38
|
-
#
|
39
|
-
def tag name, content_or_options_with_block = nil, options = nil, escape = true, &block
|
38
|
+
#
|
39
|
+
def tag name, content_or_options_with_block = nil, options = nil, escape = true, &block
|
40
40
|
if block_given?
|
41
41
|
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
42
42
|
content = capture(&block)
|
@@ -44,11 +44,11 @@ module Rad::Html::BasicHtmlHelper
|
|
44
44
|
else
|
45
45
|
content = content_or_options_with_block
|
46
46
|
"<#{name}#{tag_options(options)}>#{content}</#{name}>"
|
47
|
-
end
|
47
|
+
end
|
48
48
|
end
|
49
49
|
|
50
50
|
# Escape
|
51
|
-
def h obj; obj.to_s.html_escape end
|
51
|
+
def h obj; obj.to_s.html_escape end
|
52
52
|
|
53
53
|
protected
|
54
54
|
|
@@ -1,31 +1,31 @@
|
|
1
1
|
module Rad::Html::FormHelper
|
2
|
-
#
|
2
|
+
#
|
3
3
|
# Form
|
4
|
-
#
|
4
|
+
#
|
5
5
|
def form_for *args, &block
|
6
6
|
model_helper, options = build_form_model_helper_and_form_options *args
|
7
|
-
|
7
|
+
|
8
8
|
form_tag options do
|
9
9
|
block.call model_helper if block
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
def build_form_model_helper_and_form_options model_name, model, options = {}
|
13
|
+
def build_form_model_helper_and_form_options model_name, model, options = {}
|
14
14
|
model_name.must_be.a String, Symbol
|
15
15
|
return Rad::Html::ModelHelper.new(self, self, model_name, model, options), options
|
16
16
|
end
|
17
17
|
|
18
|
-
def form_tag options = {}, &block
|
18
|
+
def form_tag options = {}, &block
|
19
19
|
options['method'] ||= options[:method] || 'post'
|
20
20
|
tag :form, options, &block
|
21
21
|
end
|
22
22
|
|
23
23
|
|
24
|
-
#
|
24
|
+
#
|
25
25
|
# Errors
|
26
|
-
#
|
26
|
+
#
|
27
27
|
# delegate :error_messages, :field_with_errors, to: :form_builder
|
28
|
-
def error_messages *errors
|
28
|
+
def error_messages *errors
|
29
29
|
errors = errors.first if errors.size == 1 and errors.first.is_a? Array
|
30
30
|
html = errors.join("<br/>")
|
31
31
|
tag :div, html, class: :error_messages
|
@@ -38,15 +38,15 @@ module Rad::Html::FormHelper
|
|
38
38
|
end
|
39
39
|
|
40
40
|
|
41
|
-
#
|
41
|
+
#
|
42
42
|
# Form fields
|
43
|
-
#
|
44
|
-
def check_box_tag name, checked = false, options = {}
|
43
|
+
#
|
44
|
+
def check_box_tag name, checked = false, options = {}
|
45
45
|
options = {type: "checkbox", name: name, value: '1'}.update(options)
|
46
46
|
options[:checked] = "checked" if checked
|
47
47
|
tag_with_style :input, '', options
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
def field_set_tag legend = nil, options = {}, &block
|
51
51
|
content = ""
|
52
52
|
content << tag(:legend, legend) unless legend.blank?
|
@@ -73,16 +73,16 @@ module Rad::Html::FormHelper
|
|
73
73
|
tag_with_style :input, '', options
|
74
74
|
end
|
75
75
|
|
76
|
-
def select_tag name, selected, values, options = {}
|
76
|
+
def select_tag name, selected, values, options = {}
|
77
77
|
buff = "\n"
|
78
|
-
values.each do |n, v|
|
78
|
+
values.each do |n, v|
|
79
79
|
o = {}
|
80
80
|
o[:value] = v if v
|
81
|
-
o[:selected] = 'selected' if (v || n) == selected
|
81
|
+
o[:selected] = 'selected' if (v || n) == selected
|
82
82
|
buff << tag(:option, n, o)
|
83
83
|
buff << "\n"
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
tag_with_style :select, buff, {name: name}.update(options)
|
87
87
|
end
|
88
88
|
|
@@ -95,9 +95,9 @@ module Rad::Html::FormHelper
|
|
95
95
|
end
|
96
96
|
|
97
97
|
|
98
|
-
#
|
98
|
+
#
|
99
99
|
# Other
|
100
|
-
#
|
100
|
+
#
|
101
101
|
def submit_tag value, options = {}
|
102
102
|
tag_with_style :input, '', {type: "submit", value: value}.update(options)
|
103
103
|
end
|
@@ -108,7 +108,7 @@ module Rad::Html::FormHelper
|
|
108
108
|
klass = options.delete(:class) || options.delete('class') || ""
|
109
109
|
klass << " #{options[:type] || options['type'] || name}_input"
|
110
110
|
options['class'] = klass
|
111
|
-
|
111
|
+
|
112
112
|
tag name, value, options, &block
|
113
113
|
end
|
114
114
|
end
|