motion-support 0.0.2 → 0.0.3
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.
- data/lib/motion-support/hash.rb +21 -0
- data/lib/motion-support/logger.rb +29 -0
- data/lib/motion-support/version.rb +1 -1
- data/spec/motion-support/hash_spec.rb +15 -0
- metadata +9 -5
@@ -0,0 +1,21 @@
|
|
1
|
+
class NSDictionary
|
2
|
+
# Returns a new Hash which is a copy of this hash, except that all keys have turned into symbols,
|
3
|
+
# if possible. That is all keys that respond to to_sym.
|
4
|
+
def symbolize_keys
|
5
|
+
inject({}) do |hash, pair|
|
6
|
+
if pair.first.respond_to?(:to_sym)
|
7
|
+
hash[pair.first.to_sym] = pair.last
|
8
|
+
else
|
9
|
+
hash[pair.first] = pair.last
|
10
|
+
end
|
11
|
+
hash
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Hash
|
17
|
+
# Changes all keys in this hash into symbols, if possible. That is all keys that respond to to_sym.
|
18
|
+
def symbolize_keys!
|
19
|
+
replace(symbolize_keys)
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module MotionSupport
|
2
|
+
class NullLogger
|
3
|
+
def log(string)
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
class StdoutLogger
|
8
|
+
def log(string)
|
9
|
+
puts string
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class NetworkLogger
|
14
|
+
def initialize(host = "localhost", port = 2000)
|
15
|
+
readStream = Pointer.new(:object)
|
16
|
+
writeStream = Pointer.new(:object)
|
17
|
+
CFStreamCreatePairWithSocketToHost(nil, host, port, readStream, writeStream)
|
18
|
+
@output_stream = writeStream[0]
|
19
|
+
@output_stream.setDelegate(self)
|
20
|
+
@output_stream.scheduleInRunLoop(NSRunLoop.currentRunLoop, forMode:NSDefaultRunLoopMode)
|
21
|
+
@output_stream.open
|
22
|
+
end
|
23
|
+
|
24
|
+
def log(string)
|
25
|
+
data = NSData.alloc.initWithData("#{string}\n".dataUsingEncoding(NSASCIIStringEncoding))
|
26
|
+
@output_stream.write(data.bytes, maxLength:data.length);
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
describe "hash" do
|
2
|
+
it "should return copy with symbolized keys" do
|
3
|
+
{ 'foo' => 'bar', 'bla' => 'blub' }.symbolize_keys.should == { :foo => 'bar', :bla => 'blub' }
|
4
|
+
end
|
5
|
+
|
6
|
+
it "should not modify keys that can not be symbolized" do
|
7
|
+
{ :foo => 'bar', 1 => 'blub' }.symbolize_keys.should == { :foo => 'bar', 1 => 'blub' }
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should symbolize keys in place" do
|
11
|
+
hash = { 'foo' => 'bar', 'bla' => 'blub' }
|
12
|
+
hash.symbolize_keys!
|
13
|
+
hash.should == { :foo => 'bar', :bla => 'blub' }
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: motion-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Thomas Kadauke
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-12-31 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bubble-wrap
|
@@ -54,6 +54,8 @@ files:
|
|
54
54
|
- lib/motion-support/cattr_accessor.rb
|
55
55
|
- lib/motion-support/class_inheritable_accessor.rb
|
56
56
|
- lib/motion-support/class_inheritable_array.rb
|
57
|
+
- lib/motion-support/hash.rb
|
58
|
+
- lib/motion-support/logger.rb
|
57
59
|
- lib/motion-support/metaclass.rb
|
58
60
|
- lib/motion-support/string.rb
|
59
61
|
- lib/motion-support/version.rb
|
@@ -62,6 +64,7 @@ files:
|
|
62
64
|
- spec/motion-support/cattr_accessor_spec.rb
|
63
65
|
- spec/motion-support/class_inheritable_accessor_spec.rb
|
64
66
|
- spec/motion-support/class_inheritable_array_spec.rb
|
67
|
+
- spec/motion-support/hash_spec.rb
|
65
68
|
- spec/motion-support/metaclass_spec.rb
|
66
69
|
- spec/motion-support/string_spec.rb
|
67
70
|
homepage: https://github.com/tkadauke/motion-support
|
@@ -77,7 +80,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
80
|
requirements:
|
78
81
|
- - ">="
|
79
82
|
- !ruby/object:Gem::Version
|
80
|
-
hash: -
|
83
|
+
hash: -760150939951472099
|
81
84
|
segments:
|
82
85
|
- 0
|
83
86
|
version: "0"
|
@@ -86,14 +89,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
89
|
requirements:
|
87
90
|
- - ">="
|
88
91
|
- !ruby/object:Gem::Version
|
89
|
-
hash: -
|
92
|
+
hash: -760150939951472099
|
90
93
|
segments:
|
91
94
|
- 0
|
92
95
|
version: "0"
|
93
96
|
requirements: []
|
94
97
|
|
95
98
|
rubyforge_project:
|
96
|
-
rubygems_version: 1.8.
|
99
|
+
rubygems_version: 1.8.19
|
97
100
|
signing_key:
|
98
101
|
specification_version: 3
|
99
102
|
summary: Commonly useful extensions to the standard library for RubyMotion
|
@@ -102,5 +105,6 @@ test_files:
|
|
102
105
|
- spec/motion-support/cattr_accessor_spec.rb
|
103
106
|
- spec/motion-support/class_inheritable_accessor_spec.rb
|
104
107
|
- spec/motion-support/class_inheritable_array_spec.rb
|
108
|
+
- spec/motion-support/hash_spec.rb
|
105
109
|
- spec/motion-support/metaclass_spec.rb
|
106
110
|
- spec/motion-support/string_spec.rb
|