Skip to content
This repository has been archived by the owner on Jan 2, 2018. It is now read-only.

Commit

Permalink
added support for symbols as selectors to the KVO module
Browse files Browse the repository at this point in the history
  • Loading branch information
janweinkauff committed Jul 13, 2012
1 parent cf08b40 commit f982e64
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -291,13 +291,13 @@ class ExampleViewController < UIViewController
@label.text = ""
view.addSubview @label

observe(@label, "text") do |old_value, new_value|
observe(@label, :text) do |old_value, new_value|
puts "Hello from viewDidLoad!"
end
end

def viewDidAppear(animated)
observe(@label, "text") do |old_value, new_value|
observe(@label, :text) do |old_value, new_value|
puts "Hello from viewDidAppear!"
end
end
Expand Down
14 changes: 7 additions & 7 deletions motion/core/kvo.rb
@@ -1,14 +1,14 @@
# Usage example:
#
# class ExampleViewController < UIViewController
# include BW::KVO
# include BubbleWrap::KVO
#
# def viewDidLoad
# @label = UILabel.alloc.initWithFrame [[20,20],[280,44]]
# @label.text = ""
# view.addSubview @label
#
# observe(@label, "text") do |old_value, new_value|
# observe(@label, :text) do |old_value, new_value|
# puts "Changed #{old_value} to #{new_value}"
# end
# end
Expand Down Expand Up @@ -48,24 +48,24 @@ def unobserve_all

private
def registered?(target, key_path)
!@targets.nil? && !@targets[target].nil? && @targets[target].has_key?(key_path)
!@targets.nil? && !@targets[target].nil? && @targets[target].has_key?(key_path.to_s)
end

def add_observer_block(target, key_path, &block)
return if target.nil? || key_path.nil? || block.nil?

@targets ||= {}
@targets[target] ||= {}
@targets[target][key_path] ||= []
@targets[target][key_path] << block
@targets[target][key_path.to_s] ||= []
@targets[target][key_path.to_s] << block
end

def remove_observer_block(target, key_path)
return if @targets.nil? || target.nil? || key_path.nil?

key_paths = @targets[target]
if !key_paths.nil? && key_paths.has_key?(key_path)
key_paths.delete(key_path)
if !key_paths.nil? && key_paths.has_key?(key_path.to_s)
key_paths.delete(key_path.to_s)
end
end

Expand Down
6 changes: 3 additions & 3 deletions spec/motion/core/kvo_spec.rb
Expand Up @@ -16,15 +16,15 @@ def initialize
# Test helper

def observe_label(&block)
observe(@label, "text", &block)
observe(@label, :text, &block)
end

def observe_collection(&block)
observe(self, "items", &block)
observe(self, :items, &block)
end

def unobserve_label
unobserve(@label, "text")
unobserve(@label, :text)
end

# def unobserve_all
Expand Down

0 comments on commit f982e64

Please sign in to comment.