bean 0.0.1 → 0.0.2
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/.gitignore +4 -0
- data/LICENSE +18 -0
- data/{README → README.md} +0 -0
- data/Rakefile +24 -0
- data/bean.gemspec +4 -1
- data/lib/bean.rb +2 -1
- data/lib/bean/nsindexset_additions.rb +22 -0
- data/lib/bean/nsmutableurlrequest_additions.rb +29 -0
- data/lib/bean/nsnotificationcenter_additions.rb +27 -0
- data/lib/bean/nstableview_additions.rb +15 -1
- data/lib/bean/nstextfield_additions.rb +1 -0
- data/lib/bean/nstoolbaritem_additions.rb +8 -0
- data/lib/bean/nsurl_connection_additions.rb +47 -10
- data/lib/bean/nsuserdefaults_additions.rb +57 -2
- data/lib/bean/nsxmlnode_additions.rb +10 -0
- data/lib/bean/table_data_source.rb +43 -15
- data/lib/bean/version.rb +5 -2
- metadata +23 -14
- data/lib/bean/nsview_additions.rb +0 -3
data/LICENSE
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Copyright (c) 2011 dan sinclair
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to
|
|
5
|
+
deal in the Software without restriction, including without limitation the
|
|
6
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
7
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
|
11
|
+
all copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
16
|
+
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
18
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/{README → README.md}
RENAMED
|
File without changes
|
data/Rakefile
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'rake/gempackagetask'
|
|
2
|
+
require 'yard'
|
|
3
|
+
|
|
4
|
+
spec = eval(File.open("bean.gemspec").read)
|
|
5
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
|
6
|
+
pkg.need_tar = true
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
desc 'Generate documentation'
|
|
10
|
+
YARD::Rake::YardocTask.new do |t|
|
|
11
|
+
t.files = ['lib/**/*.rb', '-', 'LICENSE']
|
|
12
|
+
t.options = ['--main', 'README.md', '--no-private']
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
task :tag do
|
|
16
|
+
sh "git tag -m 'Tagging release: #{Bean::VERSION}' -a v#{Bean::VERSION}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
namespace :gem do
|
|
20
|
+
desc 'Upload gem to rubygems.org'
|
|
21
|
+
task :push => [:package, :tag] do
|
|
22
|
+
sh "gem push pkg/bean-#{Bean::VERSION}.gem"
|
|
23
|
+
end
|
|
24
|
+
end
|
data/bean.gemspec
CHANGED
|
@@ -5,16 +5,19 @@ require 'bean/version'
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
6
|
s.name = 'bean'
|
|
7
7
|
s.version = Bean::VERSION
|
|
8
|
+
s.platform = Gem::Platform::RUBY
|
|
8
9
|
|
|
9
10
|
s.authors = ['dan sinclair']
|
|
10
11
|
s.email = ['dj2@everburning.com']
|
|
11
12
|
|
|
12
|
-
s.homepage = 'http://github.com/dj2/Bean
|
|
13
|
+
s.homepage = 'http://github.com/dj2/Bean'
|
|
13
14
|
s.summary = 'Cocoa Additions for MacRuby Applications'
|
|
14
15
|
s.description = s.summary
|
|
15
16
|
|
|
16
17
|
s.required_ruby_version = '>=1.9.2'
|
|
17
18
|
|
|
19
|
+
s.add_development_dependency 'yard'
|
|
20
|
+
|
|
18
21
|
s.files = `git ls-files`.split("\n")
|
|
19
22
|
s.require_paths = ['lib']
|
|
20
23
|
end
|
data/lib/bean.rb
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
require 'bean/nsindexset_additions'
|
|
2
|
+
require 'bean/nsmutableurlrequest_additions'
|
|
1
3
|
require 'bean/nsnotificationcenter_additions'
|
|
2
4
|
require 'bean/nstableview_additions'
|
|
3
5
|
require 'bean/nstextfield_additions'
|
|
4
6
|
require 'bean/nstoolbaritem_additions'
|
|
5
7
|
require 'bean/nsurl_connection_additions'
|
|
6
8
|
require 'bean/nsuserdefaults_additions'
|
|
7
|
-
require 'bean/nsview_additions'
|
|
8
9
|
require 'bean/nsxmlnode_additions'
|
|
9
10
|
|
|
10
11
|
require 'bean/table_data_source'
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Extensions to the NSIndexSet class
|
|
2
|
+
class NSIndexSet
|
|
3
|
+
include Enumerable
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# Iterate over each of the items in the NSIndexSet
|
|
7
|
+
#
|
|
8
|
+
# @example
|
|
9
|
+
# s = NSIndexSet.indexSetWithIndexesInRange(NSMakeRange(0, 10))
|
|
10
|
+
# s.each { |i| puts i }
|
|
11
|
+
#
|
|
12
|
+
# @yield [i] Provides the current index to the given block
|
|
13
|
+
# @yieldparam [Fixnum] i The index
|
|
14
|
+
# @return [nil]
|
|
15
|
+
def each
|
|
16
|
+
i = self.firstIndex
|
|
17
|
+
until i == NSNotFound
|
|
18
|
+
yield i
|
|
19
|
+
i = self.indexGreaterThanIndex(i)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Extensions to the NSMutableRequest class
|
|
2
|
+
class NSMutableURLRequest
|
|
3
|
+
#
|
|
4
|
+
# Create a POST request
|
|
5
|
+
#
|
|
6
|
+
# @example
|
|
7
|
+
# req = NSMutableURLRequest.post("https://example.com",
|
|
8
|
+
# :body => "foo=1&bar=2&baz=3",
|
|
9
|
+
# :head => { 'Content-Type' => 'application/x-www-form-urlencoded' })
|
|
10
|
+
#
|
|
11
|
+
# @param url [String] The domain to post too
|
|
12
|
+
# @param opts [Hash] Any options for the post
|
|
13
|
+
# @option opts [String] :body The body to send with the POST request
|
|
14
|
+
# @option opts [Hash] :head Any headers to send with the request
|
|
15
|
+
# @return [NSMutableURLRequest] The request object
|
|
16
|
+
def self.post(url, opts)
|
|
17
|
+
req = NSMutableURLRequest.requestWithURL(NSURL.URLWithString(url))
|
|
18
|
+
req.setHTTPMethod('POST')
|
|
19
|
+
|
|
20
|
+
if opts[:head]
|
|
21
|
+
opts[:head].each_pair do |k, v|
|
|
22
|
+
req.setValue(v, forHTTPHeaderField:k)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
req.setHTTPBody(opts[:body].to_data) if opts[:body]
|
|
27
|
+
req
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,10 +1,37 @@
|
|
|
1
|
+
# Extensions to the NSNotificationCenter class
|
|
1
2
|
class NSNotificationCenter
|
|
3
|
+
#
|
|
4
|
+
# Post a notification to the default center.
|
|
5
|
+
#
|
|
6
|
+
# NSNotificationCenter.post provides a convenience wrapper around
|
|
7
|
+
# posting messages to the defaultCenter.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# NSNotificationCenter.post(:name => :my_message, :info => {:hi => 1})
|
|
11
|
+
#
|
|
12
|
+
# @param options [Hash] Options for the notification
|
|
13
|
+
# @option options [String|Symbol] :name The notification name to send
|
|
14
|
+
# @option options [String] :object The object to send
|
|
15
|
+
# @option options [String] :info The userInfo to send
|
|
16
|
+
# @return [nil]
|
|
2
17
|
def self.post(options)
|
|
3
18
|
NSNotificationCenter.defaultCenter.postNotificationName(options[:name],
|
|
4
19
|
object:options[:object],
|
|
5
20
|
userInfo:options[:info])
|
|
6
21
|
end
|
|
7
22
|
|
|
23
|
+
#
|
|
24
|
+
# Setup an observer for the given notification and execute block when seen. Then
|
|
25
|
+
# block will be passed the notification object.
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# NSNotificationCenter.observe(:my_message) do |notice|
|
|
29
|
+
# puts "My Message Received: #{notice.userInfo.inspect}"
|
|
30
|
+
# end
|
|
31
|
+
#
|
|
32
|
+
# @param name [String|Symbol] The notification name to listen for
|
|
33
|
+
# @param blk [Proc] The block to execute when notification is +received
|
|
34
|
+
# @return [nil]
|
|
8
35
|
def self.observe(name, &blk)
|
|
9
36
|
@observers ||= []
|
|
10
37
|
@observers << Class.new do
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
# Extensions to the NSTableView class
|
|
1
2
|
class NSTableView
|
|
2
|
-
alias dataSource= setDataSource
|
|
3
3
|
alias reload reloadData
|
|
4
4
|
|
|
5
|
+
#
|
|
6
|
+
# Helper for adding a double click handler to the table
|
|
7
|
+
#
|
|
8
|
+
# The block will be called and provided the sender, clicked column and clicked row
|
|
9
|
+
#
|
|
10
|
+
# @param blk [Proc] The block to execute
|
|
11
|
+
# @return [Nil]
|
|
5
12
|
def on_double_click(&blk)
|
|
6
13
|
@on_double_action = blk
|
|
7
14
|
def self.performDoubleAction(sender); @on_double_action.call(sender, self.clickedColumn, self.clickedRow); end
|
|
8
15
|
setDoubleAction("performDoubleAction:")
|
|
9
16
|
end
|
|
10
17
|
|
|
18
|
+
#
|
|
19
|
+
# Helper for adding a click handler to the table
|
|
20
|
+
#
|
|
21
|
+
# The block will be called and provided the sender, clicked column and clicked row
|
|
22
|
+
#
|
|
23
|
+
# @param blk [Proc] The block to execute
|
|
24
|
+
# @return [Nil]
|
|
11
25
|
def on_click(&blk)
|
|
12
26
|
@on_action = blk
|
|
13
27
|
def self.performAction(sender); @on_action.call(sender, self.clickedColumn, self.clickedRow); end
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
# Extensions to the NSToolbarItem class
|
|
1
2
|
class NSToolbarItem
|
|
3
|
+
#
|
|
4
|
+
# Shortcut for adding an on click handler to the toolbar item.
|
|
5
|
+
#
|
|
6
|
+
# The provided block will be provided the sender when executed.
|
|
7
|
+
#
|
|
8
|
+
# @param blk [Proc] The block to execute on click
|
|
9
|
+
# @return [Nil]
|
|
2
10
|
def on_click(&blk)
|
|
3
11
|
@on_action = blk
|
|
4
12
|
def self.performAction(sender); @on_action.call(sender); end
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
# Extensions to the NSURLConnection class
|
|
1
2
|
class NSURLConnection
|
|
3
|
+
#
|
|
4
|
+
# Helper method for creating a NSURLConnection.
|
|
5
|
+
#
|
|
6
|
+
# Using this method will cause the URL Connection to use itself
|
|
7
|
+
# as the delegate. You can then add error and success handlers to
|
|
8
|
+
# be called when the download is finished.
|
|
9
|
+
#
|
|
10
|
+
# @param req [NSURLRequest] The URL Request
|
|
11
|
+
# @param blk [Proc] The success block to hookup
|
|
12
|
+
# @return [NSURLConnection] The URL Connection
|
|
2
13
|
def initWithRequest(req, &blk)
|
|
3
14
|
@error = nil
|
|
4
15
|
@response = nil
|
|
@@ -10,33 +21,59 @@ class NSURLConnection
|
|
|
10
21
|
initWithRequest(req, delegate:self)
|
|
11
22
|
end
|
|
12
23
|
|
|
24
|
+
#
|
|
25
|
+
# Attach an error handler to the connection.
|
|
26
|
+
#
|
|
27
|
+
# The error handler will be executed in case of a connection
|
|
28
|
+
# error. The handler can be attached after the connection is
|
|
29
|
+
# completed.
|
|
30
|
+
#
|
|
31
|
+
# @param blk [Proc] The block to execute
|
|
32
|
+
# @return [Nil]
|
|
33
|
+
def on_error(&blk)
|
|
34
|
+
@on_error = blk
|
|
35
|
+
@on_error.call(@error) if @error
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
#
|
|
39
|
+
# Attach a success handler to the connection.
|
|
40
|
+
#
|
|
41
|
+
# The success handler will be executed when the connection is
|
|
42
|
+
# complete. The handler can be attached after the connection is
|
|
43
|
+
# completed.
|
|
44
|
+
#
|
|
45
|
+
# @param blk [Proc] The block to execute
|
|
46
|
+
# @return [Nil]
|
|
47
|
+
def on_success(&blk)
|
|
48
|
+
@on_success = blk
|
|
49
|
+
@on_success.call(@response) if @response
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Response received callback
|
|
53
|
+
# @api private
|
|
13
54
|
def connection(conn, didReceiveResponse:resp)
|
|
14
55
|
@data.setLength(0)
|
|
15
56
|
end
|
|
16
57
|
|
|
58
|
+
# Data received callback
|
|
59
|
+
# @api private
|
|
17
60
|
def connection(conn, didReceiveData:rcv)
|
|
18
61
|
@data.appendData(rcv)
|
|
19
62
|
end
|
|
20
63
|
|
|
64
|
+
# Connection failed callback
|
|
65
|
+
# @api private
|
|
21
66
|
def connection(conn, didFailWithError:error)
|
|
22
67
|
return unless @on_error
|
|
23
68
|
@on_error.call(error)
|
|
24
69
|
@error = error
|
|
25
70
|
end
|
|
26
71
|
|
|
72
|
+
# Connection finished callback
|
|
73
|
+
# @api private
|
|
27
74
|
def connectionDidFinishLoading(conn)
|
|
28
75
|
@response = NSString.alloc.initWithData(@data, encoding:NSUTF8StringEncoding)
|
|
29
76
|
@on_success.call(@response) if @on_success
|
|
30
77
|
@data = nil
|
|
31
78
|
end
|
|
32
|
-
|
|
33
|
-
def on_error(&blk)
|
|
34
|
-
@on_error = blk
|
|
35
|
-
@on_error.call(@error) if @error
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def on_success(&blk)
|
|
39
|
-
@on_success = blk
|
|
40
|
-
@on_success.call(@response) if @response
|
|
41
|
-
end
|
|
42
79
|
end
|
|
@@ -1,16 +1,53 @@
|
|
|
1
|
+
# Extensions to the NSUserDefaults class
|
|
1
2
|
class NSUserDefaults
|
|
2
|
-
|
|
3
|
+
#
|
|
4
|
+
# Shortcut for setting a key/value into the standardUserDefaults
|
|
5
|
+
#
|
|
6
|
+
# @example
|
|
7
|
+
# NSUserDefaults[:foo] = 'bar'
|
|
8
|
+
#
|
|
9
|
+
# @param key [String|Symbol] The key to set
|
|
10
|
+
# @param value [Object] The object to set
|
|
11
|
+
# @return [Nil]
|
|
12
|
+
def self.[]=(key, value)
|
|
3
13
|
standardUserDefaults[key] = value
|
|
4
14
|
end
|
|
5
15
|
|
|
16
|
+
#
|
|
17
|
+
# Shortcut for retrieving a key from the standardUserDefaults
|
|
18
|
+
#
|
|
19
|
+
# @example
|
|
20
|
+
# NSUserDefaults[:foo]
|
|
21
|
+
#
|
|
22
|
+
# @param key [String|Symbol] The key to retrieve
|
|
23
|
+
# @return [Object] The value for the given key
|
|
6
24
|
def self.[](key)
|
|
7
25
|
standardUserDefaults[key]
|
|
8
26
|
end
|
|
9
27
|
|
|
28
|
+
#
|
|
29
|
+
# Short cut for deleting a key from the standardUserDefaults
|
|
30
|
+
#
|
|
31
|
+
# @example
|
|
32
|
+
# NSUserDefaults.delete(:foo)
|
|
33
|
+
#
|
|
34
|
+
# @param key [String|Symbol] The key to delete
|
|
35
|
+
# @return [Nil]
|
|
10
36
|
def delete(key)
|
|
11
37
|
standardUserDefaults.delete(key)
|
|
12
38
|
end
|
|
13
39
|
|
|
40
|
+
#
|
|
41
|
+
# Helper method for setting data into the user defaults
|
|
42
|
+
#
|
|
43
|
+
# If the value is provided, the given key will be set. If the value
|
|
44
|
+
# is nil the given key will be deleted.
|
|
45
|
+
#
|
|
46
|
+
# This method always synchronizes the defaults.
|
|
47
|
+
#
|
|
48
|
+
# @param key [String|Symbol] The key to set or delete
|
|
49
|
+
# @param value [Object|Nil] The value to set
|
|
50
|
+
# @return [Nil]
|
|
14
51
|
def []=(key, value)
|
|
15
52
|
if value
|
|
16
53
|
setObject(value, forKey:key.to_s)
|
|
@@ -20,17 +57,35 @@ class NSUserDefaults
|
|
|
20
57
|
sync
|
|
21
58
|
end
|
|
22
59
|
|
|
60
|
+
#
|
|
61
|
+
# Helper method for retrieving an object from the defaults
|
|
62
|
+
#
|
|
63
|
+
# @note I'm not using the standard MacRuby sugaring here as
|
|
64
|
+
# I need to to_s the key. Keeps everything constent.
|
|
65
|
+
#
|
|
66
|
+
# @param key [String|Symbol] The key to retrieve
|
|
67
|
+
# @return [Object] The value for the given key
|
|
23
68
|
def [](key)
|
|
24
69
|
objectForKey(key.to_s)
|
|
25
70
|
end
|
|
26
71
|
|
|
72
|
+
#
|
|
73
|
+
# Helper to remove an object from the defaults.
|
|
74
|
+
#
|
|
75
|
+
# This method always synchronizes the defaults.
|
|
76
|
+
#
|
|
77
|
+
# @param key [String|Symbol] The key to remove.
|
|
78
|
+
# @return [Nil]
|
|
27
79
|
def delete(key)
|
|
28
|
-
removeObjectForKey(key)
|
|
80
|
+
removeObjectForKey(key.to_s)
|
|
29
81
|
sync
|
|
30
82
|
end
|
|
31
83
|
|
|
32
84
|
private
|
|
33
85
|
|
|
86
|
+
#
|
|
87
|
+
# Wrapper for synchronize that outputs a message on failure.
|
|
88
|
+
# @api private
|
|
34
89
|
def sync
|
|
35
90
|
puts "Failed to synchronize" unless synchronize
|
|
36
91
|
end
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
+
# Extensions to the NSXMLNode class
|
|
1
2
|
class NSXMLNode
|
|
2
3
|
alias to_xml XMLString
|
|
3
4
|
|
|
5
|
+
#
|
|
6
|
+
# Returns the child at the given index.
|
|
7
|
+
#
|
|
8
|
+
# @param key [Fixnum] The child index to retrieve
|
|
9
|
+
# @return [NSXMLNode] The node at the given child index.
|
|
4
10
|
def [](key)
|
|
5
11
|
childAtIndex(key)
|
|
6
12
|
end
|
|
7
13
|
|
|
14
|
+
#
|
|
15
|
+
# Returns the number of children for this code
|
|
16
|
+
#
|
|
17
|
+
# @return [Fixnum] The number of child nodes
|
|
8
18
|
def length
|
|
9
19
|
childCount
|
|
10
20
|
end
|
|
@@ -1,21 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
module Bean
|
|
2
|
+
# A simple table data source. Provided an array it will handle the needed
|
|
3
|
+
# calbacks for the table.
|
|
4
|
+
class TableDataSource
|
|
5
|
+
# The data to provide to the table
|
|
6
|
+
attr_reader :data
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
#
|
|
9
|
+
# Create the table data source
|
|
10
|
+
#
|
|
11
|
+
# The elements of the provided data source either need to
|
|
12
|
+
# respond to [] and provide each of the needed keys or,
|
|
13
|
+
# need to respond to methods based on the key names.
|
|
14
|
+
#
|
|
15
|
+
# @param data [Array] The data to be provided to the table
|
|
16
|
+
# @return [Bean::TableDataSource] The new data source
|
|
17
|
+
def initialize(data)
|
|
18
|
+
@data = data
|
|
19
|
+
end
|
|
7
20
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
21
|
+
#
|
|
22
|
+
# Returns the number of rows in the table
|
|
23
|
+
# @api private
|
|
24
|
+
def numberOfRowsInTableView(table)
|
|
25
|
+
data.length
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
#
|
|
29
|
+
# Returns the value for the given row and column of the table
|
|
30
|
+
# @api private
|
|
31
|
+
def tableView(table, objectValueForTableColumn:column, row:i)
|
|
32
|
+
ident = column.identifier
|
|
11
33
|
|
|
12
|
-
|
|
13
|
-
|
|
34
|
+
if data[i].respond_to?(:[])
|
|
35
|
+
data[i][ident.intern]
|
|
36
|
+
elsif data[i].respond_to?(ident.to_sym)
|
|
37
|
+
data[i].send(ident.to_sym)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
14
40
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
41
|
+
#
|
|
42
|
+
# Sorts the data based on the current table sort descriptors
|
|
43
|
+
# @api private
|
|
44
|
+
def tableView(table, sortDescriptorsDidChange:old_descriptors)
|
|
45
|
+
data.sortUsingDescriptors(table.sortDescriptors)
|
|
46
|
+
table.reloadData
|
|
19
47
|
end
|
|
20
48
|
end
|
|
21
|
-
end
|
|
49
|
+
end
|
data/lib/bean/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bean
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash: 29
|
|
5
4
|
prerelease: false
|
|
6
5
|
segments:
|
|
7
6
|
- 0
|
|
8
7
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 0.0.
|
|
8
|
+
- 2
|
|
9
|
+
version: 0.0.2
|
|
11
10
|
platform: ruby
|
|
12
11
|
authors:
|
|
13
12
|
- dan sinclair
|
|
@@ -15,10 +14,21 @@ autorequire:
|
|
|
15
14
|
bindir: bin
|
|
16
15
|
cert_chain: []
|
|
17
16
|
|
|
18
|
-
date: 2011-03-
|
|
17
|
+
date: 2011-03-26 00:00:00 -04:00
|
|
19
18
|
default_executable:
|
|
20
|
-
dependencies:
|
|
21
|
-
|
|
19
|
+
dependencies:
|
|
20
|
+
- !ruby/object:Gem::Dependency
|
|
21
|
+
name: yard
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - ">="
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
segments:
|
|
28
|
+
- 0
|
|
29
|
+
version: "0"
|
|
30
|
+
type: :development
|
|
31
|
+
version_requirements: *id001
|
|
22
32
|
description: Cocoa Additions for MacRuby Applications
|
|
23
33
|
email:
|
|
24
34
|
- dj2@everburning.com
|
|
@@ -30,21 +40,24 @@ extra_rdoc_files: []
|
|
|
30
40
|
|
|
31
41
|
files:
|
|
32
42
|
- .gitignore
|
|
33
|
-
-
|
|
43
|
+
- LICENSE
|
|
44
|
+
- README.md
|
|
45
|
+
- Rakefile
|
|
34
46
|
- bean.gemspec
|
|
35
47
|
- lib/bean.rb
|
|
48
|
+
- lib/bean/nsindexset_additions.rb
|
|
49
|
+
- lib/bean/nsmutableurlrequest_additions.rb
|
|
36
50
|
- lib/bean/nsnotificationcenter_additions.rb
|
|
37
51
|
- lib/bean/nstableview_additions.rb
|
|
38
52
|
- lib/bean/nstextfield_additions.rb
|
|
39
53
|
- lib/bean/nstoolbaritem_additions.rb
|
|
40
54
|
- lib/bean/nsurl_connection_additions.rb
|
|
41
55
|
- lib/bean/nsuserdefaults_additions.rb
|
|
42
|
-
- lib/bean/nsview_additions.rb
|
|
43
56
|
- lib/bean/nsxmlnode_additions.rb
|
|
44
57
|
- lib/bean/table_data_source.rb
|
|
45
58
|
- lib/bean/version.rb
|
|
46
59
|
has_rdoc: true
|
|
47
|
-
homepage: http://github.com/dj2/Bean
|
|
60
|
+
homepage: http://github.com/dj2/Bean
|
|
48
61
|
licenses: []
|
|
49
62
|
|
|
50
63
|
post_install_message:
|
|
@@ -53,29 +66,25 @@ rdoc_options: []
|
|
|
53
66
|
require_paths:
|
|
54
67
|
- lib
|
|
55
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
56
|
-
none: false
|
|
57
69
|
requirements:
|
|
58
70
|
- - ">="
|
|
59
71
|
- !ruby/object:Gem::Version
|
|
60
|
-
hash: 55
|
|
61
72
|
segments:
|
|
62
73
|
- 1
|
|
63
74
|
- 9
|
|
64
75
|
- 2
|
|
65
76
|
version: 1.9.2
|
|
66
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
|
-
none: false
|
|
68
78
|
requirements:
|
|
69
79
|
- - ">="
|
|
70
80
|
- !ruby/object:Gem::Version
|
|
71
|
-
hash: 3
|
|
72
81
|
segments:
|
|
73
82
|
- 0
|
|
74
83
|
version: "0"
|
|
75
84
|
requirements: []
|
|
76
85
|
|
|
77
86
|
rubyforge_project:
|
|
78
|
-
rubygems_version: 1.3.
|
|
87
|
+
rubygems_version: 1.3.6
|
|
79
88
|
signing_key:
|
|
80
89
|
specification_version: 3
|
|
81
90
|
summary: Cocoa Additions for MacRuby Applications
|