real-growl 0.1.0 → 0.1.1
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/ext/real_growl_api.c +27 -24
- data/ext/ruby_delegate.h +1 -1
- data/ext/ruby_delegate.m +14 -3
- data/lib/real_growl.rb +6 -4
- metadata +2 -2
data/ext/real_growl_api.c
CHANGED
@@ -3,11 +3,26 @@
|
|
3
3
|
VALUE rb_mRealGrowl;
|
4
4
|
VALUE rb_cRealGrowlApplication;
|
5
5
|
|
6
|
+
static void
|
7
|
+
free_delegate(id delegate) {
|
8
|
+
[delegate release];
|
9
|
+
}
|
10
|
+
|
11
|
+
static VALUE
|
12
|
+
alloc_delegate(VALUE klass) {
|
13
|
+
return Data_Wrap_Struct(klass, 0, free_delegate, [[RubyDelegate alloc] init]);
|
14
|
+
}
|
15
|
+
|
16
|
+
static NSAutoreleasePool*
|
17
|
+
create_autorelease_pool() {
|
18
|
+
return [[NSAutoreleasePool alloc] init];
|
19
|
+
}
|
20
|
+
|
6
21
|
VALUE
|
7
22
|
classMethod_installed(VALUE self) {
|
8
|
-
NSAutoreleasePool *pool =
|
23
|
+
NSAutoreleasePool *pool = create_autorelease_pool();
|
9
24
|
BOOL installed = [GrowlApplicationBridge isGrowlInstalled];
|
10
|
-
[pool
|
25
|
+
[pool drain];
|
11
26
|
|
12
27
|
if(installed) {
|
13
28
|
return Qtrue;
|
@@ -18,9 +33,9 @@ classMethod_installed(VALUE self) {
|
|
18
33
|
|
19
34
|
VALUE
|
20
35
|
classMethod_running(VALUE self) {
|
21
|
-
NSAutoreleasePool *pool =
|
36
|
+
NSAutoreleasePool *pool = create_autorelease_pool();
|
22
37
|
BOOL running = [GrowlApplicationBridge isGrowlRunning];
|
23
|
-
[pool
|
38
|
+
[pool drain];
|
24
39
|
|
25
40
|
if(running) {
|
26
41
|
return Qtrue;
|
@@ -31,47 +46,35 @@ classMethod_running(VALUE self) {
|
|
31
46
|
|
32
47
|
VALUE
|
33
48
|
method_notify(VALUE self, VALUE title, VALUE description, VALUE priority, VALUE sticky) {
|
34
|
-
NSAutoreleasePool *pool =
|
49
|
+
NSAutoreleasePool *pool = create_autorelease_pool();
|
35
50
|
|
36
51
|
BOOL nsSticky = (sticky == Qtrue) ? YES : NO;
|
37
52
|
NSString *nsTitle = [NSString stringWithCString:STR2CSTR(title) encoding: NSASCIIStringEncoding];
|
38
53
|
NSString *nsDescription = [NSString stringWithCString:STR2CSTR(description) encoding: NSASCIIStringEncoding];
|
39
54
|
[GrowlApplicationBridge notifyWithTitle: nsTitle description: nsDescription notificationName: REAL_GROWL_NOTIFICATION iconData: nil priority: NUM2INT(priority) isSticky:nsSticky clickContext:nil];
|
40
55
|
|
41
|
-
[pool
|
56
|
+
[pool drain];
|
42
57
|
|
43
58
|
return Qnil;
|
44
59
|
}
|
45
60
|
|
46
61
|
VALUE
|
47
62
|
method_init(VALUE self, VALUE applicationName) {
|
48
|
-
NSAutoreleasePool *pool =
|
49
|
-
id delegate = NULL;
|
50
|
-
|
51
|
-
Data_Get_Struct(self, RubyDelegate, delegate);
|
63
|
+
NSAutoreleasePool *pool = create_autorelease_pool();
|
64
|
+
id delegate = NULL;
|
52
65
|
|
66
|
+
Data_Get_Struct(self, RubyDelegate, delegate);
|
53
67
|
NSString *nsAppName = [NSString stringWithCString:STR2CSTR(applicationName) encoding: NSASCIIStringEncoding];
|
54
68
|
[delegate setApplicationName: nsAppName];
|
55
69
|
[GrowlApplicationBridge setGrowlDelegate: delegate];
|
56
70
|
|
57
|
-
[pool
|
71
|
+
[pool drain];
|
72
|
+
|
58
73
|
return self;
|
59
74
|
}
|
60
75
|
|
61
|
-
static void
|
62
|
-
free_delegate(id delegate) {
|
63
|
-
[delegate release];
|
64
|
-
}
|
65
|
-
|
66
|
-
static VALUE
|
67
|
-
alloc_delegate(VALUE klass) {
|
68
|
-
return Data_Wrap_Struct(klass, 0, free_delegate, [[RubyDelegate alloc] init]);
|
69
|
-
}
|
70
|
-
|
71
|
-
|
72
76
|
void
|
73
|
-
Init_real_growl_api() {
|
74
|
-
|
77
|
+
Init_real_growl_api() {
|
75
78
|
rb_mRealGrowl = rb_define_module("RealGrowl");
|
76
79
|
rb_define_singleton_method(rb_mRealGrowl, "installed?", classMethod_installed, 0);
|
77
80
|
rb_define_singleton_method(rb_mRealGrowl, "running?", classMethod_running, 0);
|
data/ext/ruby_delegate.h
CHANGED
data/ext/ruby_delegate.m
CHANGED
@@ -3,12 +3,23 @@
|
|
3
3
|
@implementation RubyDelegate
|
4
4
|
@synthesize applicationName;
|
5
5
|
|
6
|
-
-(
|
7
|
-
if(
|
8
|
-
applicationName = @"RealGrowl";
|
6
|
+
-(id)init {
|
7
|
+
if(self = [super init]) {
|
8
|
+
applicationName = [@"RealGrowl" retain];
|
9
|
+
return self;
|
9
10
|
}
|
11
|
+
|
12
|
+
return nil;
|
13
|
+
}
|
14
|
+
|
15
|
+
-(NSDictionary *)registrationDictionaryForGrowl {
|
10
16
|
NSArray *notifications = [NSArray arrayWithObject:REAL_GROWL_NOTIFICATION];
|
11
17
|
return [NSDictionary dictionaryWithObjectsAndKeys: [self applicationName], GROWL_APP_ID, [self applicationName], GROWL_APP_NAME, notifications, GROWL_NOTIFICATIONS_ALL, nil];
|
12
18
|
}
|
13
19
|
|
20
|
+
-(void)dealloc {
|
21
|
+
[applicationName release];
|
22
|
+
[super dealloc];
|
23
|
+
}
|
24
|
+
|
14
25
|
@end
|
data/lib/real_growl.rb
CHANGED
@@ -12,11 +12,13 @@ module Kernel
|
|
12
12
|
|
13
13
|
@__growl_app ||= RealGrowl::Application.new("RealGrowl")
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
if RealGrowl.running?
|
16
|
+
notifications = args.map { |x| x.pretty_inspect }
|
17
|
+
notifications.each do |x|
|
18
|
+
@__growl_app.notify('rg', x, Kernel.rg_priority, Kernel.rg_sticky)
|
19
|
+
end
|
18
20
|
end
|
19
|
-
|
21
|
+
|
20
22
|
nil
|
21
23
|
end
|
22
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: real-growl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin DeWind
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-15 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|