aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2009-12-27 14:44:21 -0800
committerDavid Heinemeier Hansson <david@loudthinking.com>2009-12-27 14:44:21 -0800
commit5012a1558dd1483df525f1fac1e649e089be886a (patch)
tree983136a50ee7bb135768038e33c9c226a3a167ed /activesupport
parent1cd949006a419807d5ae3400442942b752780ca2 (diff)
parent12e43494a748e0144195be12dc19161cc3e4d39f (diff)
downloadrails-5012a1558dd1483df525f1fac1e649e089be886a.tar.gz
rails-5012a1558dd1483df525f1fac1e649e089be886a.tar.bz2
rails-5012a1558dd1483df525f1fac1e649e089be886a.zip
Merge branch 'master' of github.com:rails/rails
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/core_ext/string/output_safety.rb12
-rw-r--r--activesupport/lib/active_support/notifications/instrumenter.rb11
-rw-r--r--activesupport/test/core_ext/string_ext_test.rb24
-rw-r--r--activesupport/test/notifications_test.rb22
4 files changed, 51 insertions, 18 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/output_safety.rb b/activesupport/lib/active_support/core_ext/string/output_safety.rb
index 3e6ab0ebd2..ceed90ce79 100644
--- a/activesupport/lib/active_support/core_ext/string/output_safety.rb
+++ b/activesupport/lib/active_support/core_ext/string/output_safety.rb
@@ -1,3 +1,15 @@
+class Object
+ def html_safe?
+ false
+ end
+end
+
+class Fixnum
+ def html_safe?
+ true
+ end
+end
+
class String
attr_accessor :_rails_html_safe
alias html_safe? _rails_html_safe
diff --git a/activesupport/lib/active_support/notifications/instrumenter.rb b/activesupport/lib/active_support/notifications/instrumenter.rb
index fb95422af2..0655dd0cb6 100644
--- a/activesupport/lib/active_support/notifications/instrumenter.rb
+++ b/activesupport/lib/active_support/notifications/instrumenter.rb
@@ -10,10 +10,10 @@ module ActiveSupport
end
def instrument(name, payload={})
- time = Time.now
- result = yield if block_given?
+ time = Time.now
+ yield if block_given?
ensure
- @notifier.publish(name, time, Time.now, result, @id, payload)
+ @notifier.publish(name, time, Time.now, @id, payload)
end
private
@@ -23,15 +23,14 @@ module ActiveSupport
end
class Event
- attr_reader :name, :time, :end, :transaction_id, :result, :payload
+ attr_reader :name, :time, :end, :transaction_id, :payload
- def initialize(name, start, ending, result, transaction_id, payload)
+ def initialize(name, start, ending, transaction_id, payload)
@name = name
@payload = payload.dup
@time = start
@transaction_id = transaction_id
@end = ending
- @result = result
end
def duration
diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb
index 56ed296dac..6ed209f724 100644
--- a/activesupport/test/core_ext/string_ext_test.rb
+++ b/activesupport/test/core_ext/string_ext_test.rb
@@ -350,6 +350,24 @@ class OutputSafetyTest < ActiveSupport::TestCase
assert_equal @string, @string.html_safe!
end
+ test "A fixnum is safe by default" do
+ assert 5.html_safe?
+ end
+
+ test "An object is unsafe by default" do
+ klass = Class.new(Object) do
+ def to_str
+ "other"
+ end
+ end
+
+ @string.html_safe!
+ @string << klass.new
+
+ assert_equal "helloother", @string
+ assert !@string.html_safe?
+ end
+
test "Adding a safe string to another safe string returns a safe string" do
@other_string = "other".html_safe!
@string.html_safe!
@@ -416,4 +434,10 @@ class OutputSafetyTest < ActiveSupport::TestCase
@other_string << @string
assert @other_string.html_safe?
end
+
+ test "Concatting a fixnum to safe always yields safe" do
+ @string.html_safe!
+ @string.concat(13)
+ assert @string.html_safe?
+ end
end
diff --git a/activesupport/test/notifications_test.rb b/activesupport/test/notifications_test.rb
index 4f880d0db7..3ba77ae135 100644
--- a/activesupport/test/notifications_test.rb
+++ b/activesupport/test/notifications_test.rb
@@ -134,27 +134,25 @@ module Notifications
class EventTest < TestCase
def test_events_are_initialized_with_details
- event = event(:foo, Time.now, Time.now + 1, 1, random_id, :payload => :bar)
- assert_equal :foo, event.name
- assert_equal Hash[:payload => :bar], event.payload
- end
-
- def test_events_consumes_information_given_as_payload
time = Time.now
- event = event(:foo, time, time + 0.01, 1, random_id, {})
+ event = event(:foo, time, time + 0.01, random_id, {})
- assert_equal Hash.new, event.payload
+ assert_equal :foo, event.name
assert_equal time, event.time
- assert_equal 1, event.result
assert_equal 10.0, event.duration
end
+ def test_events_consumes_information_given_as_payload
+ event = event(:foo, Time.now, Time.now + 1, random_id, :payload => :bar)
+ assert_equal Hash[:payload => :bar], event.payload
+ end
+
def test_event_is_parent_based_on_time_frame
time = Time.utc(2009, 01, 01, 0, 0, 1)
- parent = event(:foo, Time.utc(2009), Time.utc(2009) + 100, nil, random_id, {})
- child = event(:foo, time, time + 10, nil, random_id, {})
- not_child = event(:foo, time, time + 100, nil, random_id, {})
+ parent = event(:foo, Time.utc(2009), Time.utc(2009) + 100, random_id, {})
+ child = event(:foo, time, time + 10, random_id, {})
+ not_child = event(:foo, time, time + 100, random_id, {})
assert parent.parent_of?(child)
assert !child.parent_of?(parent)