rb-appscript 0.5.0 → 0.5.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/CHANGES +19 -0
- data/LICENSE +1 -1
- data/README +5 -5
- data/TODO +3 -1
- data/doc/aem-manual/01_introduction.html +2 -2
- data/doc/aem-manual/02_apioverview.html +2 -2
- data/doc/aem-manual/03_packingandunpackingdata.html +2 -2
- data/doc/aem-manual/04_references.html +9 -21
- data/doc/aem-manual/05_targettingapplications.html +3 -3
- data/doc/aem-manual/06_buildingandsendingevents.html +2 -2
- data/doc/aem-manual/07_findapp.html +2 -2
- data/doc/aem-manual/08_examples.html +3 -3
- data/doc/aem-manual/index.html +2 -2
- data/doc/appscript-manual/01_introduction.html +2 -2
- data/doc/appscript-manual/02_aboutappscripting.html +2 -2
- data/doc/appscript-manual/03_quicktutorial.html +2 -2
- data/doc/appscript-manual/04_gettinghelp.html +2 -2
- data/doc/appscript-manual/05_keywordconversion.html +2 -2
- data/doc/appscript-manual/06_classesandenums.html +2 -2
- data/doc/appscript-manual/07_applicationobjects.html +2 -2
- data/doc/appscript-manual/08_realvsgenericreferences.html +2 -2
- data/doc/appscript-manual/09_referenceforms.html +3 -3
- data/doc/appscript-manual/10_referenceexamples.html +2 -2
- data/doc/appscript-manual/11_applicationcommands.html +2 -2
- data/doc/appscript-manual/12_commandexamples.html +2 -2
- data/doc/appscript-manual/13_performanceissues.html +2 -2
- data/doc/appscript-manual/14_notes.html +2 -2
- data/doc/appscript-manual/index.html +2 -2
- data/doc/{appscript-manual/full.css → full.css} +0 -0
- data/doc/index.html +2 -2
- data/doc/mactypes-manual/index.html +2 -2
- data/doc/osax-manual/index.html +6 -6
- data/extconf.rb +13 -3
- data/rb-appscript.gemspec +2 -1
- data/src/lib/_aem/aemreference.rb +22 -31
- data/src/lib/_aem/codecs.rb +21 -19
- data/src/lib/_aem/connect.rb +7 -3
- data/src/lib/_aem/findapp.rb +7 -3
- data/src/lib/_aem/mactypes.rb +22 -14
- data/src/lib/_aem/send.rb +7 -3
- data/src/lib/_aem/typewrappers.rb +7 -3
- data/src/lib/_appscript/defaultterminology.rb +7 -3
- data/src/lib/_appscript/referencerenderer.rb +7 -3
- data/src/lib/_appscript/reservedkeywords.rb +8 -3
- data/src/lib/_appscript/safeobject.rb +12 -2
- data/src/lib/_appscript/terminology.rb +31 -15
- data/src/lib/aem.rb +8 -3
- data/src/lib/appscript.rb +74 -46
- data/src/lib/osax.rb +7 -6
- data/src/rbae.c +46 -77
- data/test/test_aemreference.rb +10 -4
- data/test/test_appscriptcommands.rb +3 -1
- data/test/test_appscriptreference.rb +5 -3
- data/test/test_codecs.rb +3 -1
- data/test/test_findapp.rb +3 -1
- data/test/test_mactypes.rb +12 -6
- data/test/test_osax.rb +3 -6
- metadata +44 -38
- data/doc/aem-manual/full.css +0 -21
data/src/rbae.c
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
/*
|
2
|
-
*
|
2
|
+
* rb-appscript
|
3
|
+
*
|
4
|
+
* ae -- a low-level API providing a basic Ruby wrapper around the various
|
5
|
+
* Apple Event Manager, Process Manager and Launch Services APIs used by aem
|
6
|
+
*
|
7
|
+
* Copyright (C) 2006-2008 HAS. Released under MIT License.
|
3
8
|
*
|
4
9
|
* Thanks to:
|
5
10
|
* - FUJIMOTO Hisakuni, author of RubyAEOSA
|
@@ -11,8 +16,6 @@
|
|
11
16
|
#include <CoreFoundation/CoreFoundation.h>
|
12
17
|
#include "SendThreadSafe.h"
|
13
18
|
|
14
|
-
VALUE rb_ll2big(LONG_LONG); // keeps gcc happy
|
15
|
-
|
16
19
|
// AE module and classes
|
17
20
|
static VALUE mAE;
|
18
21
|
static VALUE cAEDesc;
|
@@ -38,6 +41,14 @@ AEEventHandlerUPP upp_GenericEventHandler;
|
|
38
41
|
AECoercionHandlerUPP upp_GenericCoercionHandler;
|
39
42
|
|
40
43
|
|
44
|
+
// these macros were added in 1.8.6
|
45
|
+
|
46
|
+
#if !defined(RSTRING_LEN)
|
47
|
+
#define RSTRING_LEN(x) (RSTRING(x)->len)
|
48
|
+
#define RSTRING_PTR(x) (RSTRING(x)->ptr)
|
49
|
+
#endif
|
50
|
+
|
51
|
+
|
41
52
|
/**********************************************************************/
|
42
53
|
// Raise MacOS error
|
43
54
|
|
@@ -79,8 +90,8 @@ rbAE_MacOSError_inspect(VALUE self)
|
|
79
90
|
static DescType
|
80
91
|
rbStringToDescType(VALUE obj)
|
81
92
|
{
|
82
|
-
if (rb_obj_is_kind_of(obj, rb_cString) &&
|
83
|
-
return CFSwapInt32HostToBig(*(DescType *)(
|
93
|
+
if (rb_obj_is_kind_of(obj, rb_cString) && RSTRING_LEN(obj) == 4) {
|
94
|
+
return CFSwapInt32HostToBig(*(DescType *)(RSTRING_PTR(obj)));
|
84
95
|
} else {
|
85
96
|
rb_raise(rb_eArgError, "Not a four-char-code string.");
|
86
97
|
}
|
@@ -146,7 +157,7 @@ rbAE_AEDesc_new(VALUE class, VALUE type, VALUE data)
|
|
146
157
|
|
147
158
|
Check_Type(data, T_STRING);
|
148
159
|
err = AECreateDesc(rbStringToDescType(type),
|
149
|
-
|
160
|
+
RSTRING_PTR(data), RSTRING_LEN(data),
|
150
161
|
&desc);
|
151
162
|
if (err != noErr) rbAE_raiseMacOSError("Can't create AEDesc.", err);
|
152
163
|
return rbAE_wrapAEDesc(&desc);
|
@@ -190,7 +201,7 @@ rbAE_AEDesc_newUnflatten(VALUE class, VALUE data)
|
|
190
201
|
AEDesc desc;
|
191
202
|
|
192
203
|
Check_Type(data, T_STRING);
|
193
|
-
err = AEUnflattenDesc(
|
204
|
+
err = AEUnflattenDesc(RSTRING_PTR(data), &desc);
|
194
205
|
if (err != noErr) rbAE_raiseMacOSError("Can't create AEDesc.", err);
|
195
206
|
return rbAE_wrapAEDesc(&desc);
|
196
207
|
}
|
@@ -438,8 +449,8 @@ rbAE_findApplication(VALUE self, VALUE creator, VALUE bundleID, VALUE name)
|
|
438
449
|
inCreator = (creator == Qnil) ? kLSUnknownCreator : rbStringToDescType(creator);
|
439
450
|
if (bundleID != Qnil) {
|
440
451
|
inBundleID = CFStringCreateWithBytes(NULL,
|
441
|
-
(UInt8 *)(
|
442
|
-
(CFIndex)(
|
452
|
+
(UInt8 *)(RSTRING_PTR(bundleID)),
|
453
|
+
(CFIndex)(RSTRING_LEN(bundleID)),
|
443
454
|
kCFStringEncodingUTF8,
|
444
455
|
false);
|
445
456
|
if (inBundleID == NULL) rb_raise(rb_eRuntimeError, "Invalid bundle ID string.");
|
@@ -448,8 +459,8 @@ rbAE_findApplication(VALUE self, VALUE creator, VALUE bundleID, VALUE name)
|
|
448
459
|
}
|
449
460
|
if (name != Qnil) {
|
450
461
|
inName = CFStringCreateWithBytes(NULL,
|
451
|
-
(UInt8 *)(
|
452
|
-
(CFIndex)(
|
462
|
+
(UInt8 *)(RSTRING_PTR(name)),
|
463
|
+
(CFIndex)(RSTRING_LEN(name)),
|
453
464
|
kCFStringEncodingUTF8,
|
454
465
|
false);
|
455
466
|
if (inName == NULL) {
|
@@ -551,69 +562,31 @@ rbAE_launchApplication(VALUE self, VALUE path, VALUE firstEvent, VALUE flags)
|
|
551
562
|
// HFS/POSIX path conversions
|
552
563
|
|
553
564
|
static VALUE
|
554
|
-
|
555
|
-
{
|
556
|
-
CFURLRef url;
|
557
|
-
UInt8 buffer[PATH_MAX];
|
558
|
-
|
559
|
-
url = CFURLCreateFromFileSystemRepresentation(NULL,
|
560
|
-
(UInt8 *)(RSTRING(path)->ptr),
|
561
|
-
(CFIndex)(RSTRING(path)->len),
|
562
|
-
false);
|
563
|
-
if (url == NULL) rb_raise(rb_eRuntimeError, "Invalid POSIX path string.");
|
564
|
-
buffer[CFURLGetBytes(url, buffer, PATH_MAX - 1)] = '\0';
|
565
|
-
CFRelease(url);
|
566
|
-
return rb_str_new2((char *)buffer);
|
567
|
-
}
|
568
|
-
|
569
|
-
static VALUE
|
570
|
-
rbAE_convertHFSPathToURL(VALUE self, VALUE path)
|
565
|
+
rbAE_convertPathToURL(VALUE self, VALUE path, VALUE pathStyle)
|
571
566
|
{
|
572
567
|
CFStringRef str;
|
573
568
|
CFURLRef url;
|
574
569
|
UInt8 buffer[PATH_MAX];
|
575
570
|
|
576
571
|
str = CFStringCreateWithBytes(NULL,
|
577
|
-
(UInt8 *)(
|
578
|
-
(CFIndex)(
|
572
|
+
(UInt8 *)(RSTRING_PTR(path)),
|
573
|
+
(CFIndex)(RSTRING_LEN(path)),
|
579
574
|
kCFStringEncodingUTF8,
|
580
575
|
false);
|
581
|
-
if (str == NULL) rb_raise(rb_eRuntimeError, "
|
576
|
+
if (str == NULL) rb_raise(rb_eRuntimeError, "Bad path string.");
|
582
577
|
url = CFURLCreateWithFileSystemPath(NULL,
|
583
578
|
str,
|
584
|
-
|
579
|
+
NUM2LONG(pathStyle),
|
585
580
|
false);
|
586
581
|
CFRelease(str);
|
587
|
-
if (url == NULL) rb_raise(rb_eRuntimeError, "Invalid
|
582
|
+
if (url == NULL) rb_raise(rb_eRuntimeError, "Invalid path.");
|
588
583
|
buffer[CFURLGetBytes(url, buffer, PATH_MAX - 1)] = '\0';
|
589
584
|
CFRelease(url);
|
590
585
|
return rb_str_new2((char *)buffer);
|
591
586
|
}
|
592
587
|
|
593
588
|
static VALUE
|
594
|
-
|
595
|
-
{
|
596
|
-
Boolean err;
|
597
|
-
CFURLRef url;
|
598
|
-
UInt8 buffer[PATH_MAX];
|
599
|
-
|
600
|
-
url = CFURLCreateWithBytes(NULL,
|
601
|
-
(UInt8 *)(RSTRING(urlStr)->ptr),
|
602
|
-
(CFIndex)(RSTRING(urlStr)->len),
|
603
|
-
kCFStringEncodingUTF8,
|
604
|
-
NULL);
|
605
|
-
if (url == NULL) rb_raise(rb_eRuntimeError, "Invalid URL string.");
|
606
|
-
err = CFURLGetFileSystemRepresentation(url,
|
607
|
-
true,
|
608
|
-
buffer,
|
609
|
-
PATH_MAX);
|
610
|
-
CFRelease(url);
|
611
|
-
if (!err) rb_raise(rb_eRuntimeError, "Can't get POSIX path.");
|
612
|
-
return rb_str_new2((char *)buffer);
|
613
|
-
}
|
614
|
-
|
615
|
-
static VALUE
|
616
|
-
rbAE_convertURLToHFSPath(VALUE self, VALUE urlStr)
|
589
|
+
rbAE_convertURLToPath(VALUE self, VALUE urlStr, VALUE pathStyle)
|
617
590
|
{
|
618
591
|
Boolean err;
|
619
592
|
CFURLRef url;
|
@@ -621,20 +594,20 @@ rbAE_convertURLToHFSPath(VALUE self, VALUE urlStr)
|
|
621
594
|
char buffer[PATH_MAX];
|
622
595
|
|
623
596
|
url = CFURLCreateWithBytes(NULL,
|
624
|
-
(UInt8 *)(
|
625
|
-
(CFIndex)(
|
597
|
+
(UInt8 *)(RSTRING_PTR(urlStr)),
|
598
|
+
(CFIndex)(RSTRING_LEN(urlStr)),
|
626
599
|
kCFStringEncodingUTF8,
|
627
600
|
NULL);
|
628
|
-
if (url == NULL) rb_raise(rb_eRuntimeError, "
|
629
|
-
str = CFURLCopyFileSystemPath(url,
|
601
|
+
if (url == NULL) rb_raise(rb_eRuntimeError, "Bad URL string.");
|
602
|
+
str = CFURLCopyFileSystemPath(url, NUM2LONG(pathStyle));
|
630
603
|
CFRelease(url);
|
631
|
-
if (str == NULL) rb_raise(rb_eRuntimeError, "Can't get
|
604
|
+
if (str == NULL) rb_raise(rb_eRuntimeError, "Can't get path.");
|
632
605
|
err = CFStringGetCString(str,
|
633
606
|
buffer,
|
634
607
|
PATH_MAX,
|
635
608
|
kCFStringEncodingUTF8);
|
636
609
|
CFRelease(str);
|
637
|
-
if (!err) rb_raise(rb_eRuntimeError, "Can't get
|
610
|
+
if (!err) rb_raise(rb_eRuntimeError, "Can't get path.");
|
638
611
|
return rb_str_new2(buffer);
|
639
612
|
}
|
640
613
|
|
@@ -662,7 +635,7 @@ rbAE_convertUnixSecondsToLongDateTime(VALUE self, VALUE secs)
|
|
662
635
|
|
663
636
|
err = UCConvertCFAbsoluteTimeToLongDateTime(NUM2DBL(secs) - kCFAbsoluteTimeIntervalSince1970, &ldt);
|
664
637
|
if (err != noErr) rbAE_raiseMacOSError("Can't convert seconds to LongDateTime.", err);
|
665
|
-
return
|
638
|
+
return LL2NUM(ldt);
|
666
639
|
}
|
667
640
|
|
668
641
|
|
@@ -676,22 +649,22 @@ rbAE_OSAGetAppTerminology(VALUE self, VALUE path)
|
|
676
649
|
rb_raise(rb_eNotImpError, "AE.get_app_terminology isn't available in 64-bit processes.\n");
|
677
650
|
return Qnil;
|
678
651
|
#else
|
652
|
+
static ComponentInstance defaultComponent;
|
679
653
|
FSRef appRef;
|
680
654
|
FSSpec fss;
|
681
|
-
ComponentInstance defaultComponent;
|
682
655
|
Boolean didLaunch;
|
683
656
|
AEDesc theDesc;
|
684
657
|
OSErr err = noErr;
|
685
658
|
|
686
|
-
if (OSAGetAppTerminology == NULL)
|
687
|
-
rb_raise(rb_eNotImpError, "OSAGetAppTerminology unavailable.\n");
|
688
659
|
err = FSPathMakeRef((UInt8 *)StringValuePtr(path), &appRef, NULL);
|
689
660
|
if (err != 0) rbAE_raiseMacOSError("Couldn't make FSRef.", err);
|
690
661
|
err = FSGetCatalogInfo(&appRef, kFSCatInfoNone, NULL, NULL, &fss, NULL);
|
691
662
|
if (err != 0) rbAE_raiseMacOSError("Couldn't make FSSpec.", err);
|
692
|
-
|
693
|
-
|
694
|
-
|
663
|
+
if (!defaultComponent) {
|
664
|
+
defaultComponent = OpenDefaultComponent(kOSAComponentType, 'ascr');
|
665
|
+
err = GetComponentInstanceError(defaultComponent);
|
666
|
+
if (err != 0) rbAE_raiseMacOSError("Couldn't make default component instance.", err);
|
667
|
+
}
|
695
668
|
err = OSAGetAppTerminology(defaultComponent,
|
696
669
|
kOSAModeNull,
|
697
670
|
&fss,
|
@@ -951,14 +924,10 @@ Init_ae (void)
|
|
951
924
|
rb_define_module_function(mAE, "psn_for_process_id", rbAE_psnForPID, 1);
|
952
925
|
rb_define_module_function(mAE, "launch_application", rbAE_launchApplication, 3);
|
953
926
|
|
954
|
-
rb_define_module_function(mAE, "
|
955
|
-
|
956
|
-
rb_define_module_function(mAE, "
|
957
|
-
|
958
|
-
rb_define_module_function(mAE, "convert_url_to_posix_path",
|
959
|
-
rbAE_convertURLToPOSIXPath, 1);
|
960
|
-
rb_define_module_function(mAE, "convert_url_to_hfs_path",
|
961
|
-
rbAE_convertURLToHFSPath, 1);
|
927
|
+
rb_define_module_function(mAE, "convert_path_to_url",
|
928
|
+
rbAE_convertPathToURL, 2);
|
929
|
+
rb_define_module_function(mAE, "convert_url_to_path",
|
930
|
+
rbAE_convertURLToPath, 2);
|
962
931
|
|
963
932
|
rb_define_module_function(mAE, "convert_long_date_time_to_unix_seconds",
|
964
933
|
rbAE_convertLongDateTimeToUnixSeconds, 1);
|
data/test/test_aemreference.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#!/usr/
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
begin; require 'rubygems'; rescue LoadError; end
|
2
4
|
|
3
5
|
require 'test/unit'
|
4
6
|
require "_aem/aemreference"
|
@@ -40,6 +42,11 @@ class TC_AEMReferences < Test::Unit::TestCase
|
|
40
42
|
'AEM.con.elements("docu").by_index(3), ' +
|
41
43
|
'AEM.con.elements("docu").by_name("foo"))', nil],
|
42
44
|
|
45
|
+
[AEMReference::App.elements('docu').by_range(1, 'foo'),
|
46
|
+
'AEM.app.elements("docu").by_range(1, "foo")',
|
47
|
+
AEMReference::App.elements("docu").by_range(
|
48
|
+
AEMReference::Con.elements("docu").by_index(1),
|
49
|
+
AEMReference::Con.elements("docu").by_name("foo"))],
|
43
50
|
|
44
51
|
[AEMReference::Its.property('name').eq('foo').and(AEMReference::Its.elements('cwor').eq([])),
|
45
52
|
'AEM.its.property("name").eq("foo").and(AEM.its.elements("cwor").eq([]))', nil],
|
@@ -103,9 +110,8 @@ class TC_AEMReferences < Test::Unit::TestCase
|
|
103
110
|
assert_not_equal(AEMReference::App.elements('ctxt').property('ctxt'), AEMReference::App.property('ctxt').property('ctxt'))
|
104
111
|
assert_not_equal(AEMReference::App.elements('ctxt').property('ctxt'), 333)
|
105
112
|
assert_not_equal(333, AEMReference::App.property('ctxt').property('ctxt'))
|
106
|
-
# # by-
|
107
|
-
|
108
|
-
# assert_raises(TypeError) { AEMReference::App.elements('docu').by_filter(1) }
|
113
|
+
# # by-filter references do basic type checking to ensure an its-based reference is given
|
114
|
+
assert_raises(TypeError) { AEMReference::App.elements('docu').by_filter(1) }
|
109
115
|
|
110
116
|
end
|
111
117
|
end
|
@@ -1,4 +1,6 @@
|
|
1
|
-
#!/usr/
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
begin; require 'rubygems'; rescue LoadError; end
|
2
4
|
|
3
5
|
require 'test/unit'
|
4
6
|
require "appscript"
|
@@ -68,8 +70,8 @@ class TC_AppscriptReferences < Test::Unit::TestCase
|
|
68
70
|
@s+'.documents[its.size.ge(42)]', nil],
|
69
71
|
|
70
72
|
[@te.documents[1, 'foo'],
|
71
|
-
@s+'.documents[
|
72
|
-
@te.documents[Appscript.con.documents[1], Appscript.con.documents[
|
73
|
+
@s+'.documents[1, "foo"]',
|
74
|
+
@te.documents[Appscript.con.documents[1], Appscript.con.documents["foo"]]],
|
73
75
|
|
74
76
|
[@te.documents[1].text \
|
75
77
|
.paragraphs.characters[
|
data/test/test_codecs.rb
CHANGED
data/test/test_findapp.rb
CHANGED
data/test/test_mactypes.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#!/usr/
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
begin; require 'rubygems'; rescue LoadError; end
|
2
4
|
|
3
5
|
require 'test/unit'
|
4
6
|
require "_aem/mactypes"
|
@@ -13,6 +15,10 @@ class TC_MacTypes < Test::Unit::TestCase
|
|
13
15
|
# puts "path: #{@path1}" # e.g. /tmp/codecs-test.HWr1EnE3
|
14
16
|
end
|
15
17
|
|
18
|
+
def normalize(path)
|
19
|
+
return path.gsub(/\/+/, '/') # quick-n-dirty
|
20
|
+
end
|
21
|
+
|
16
22
|
def test_alias
|
17
23
|
# make alias
|
18
24
|
f = MacTypes::Alias.path(@path1)
|
@@ -22,10 +28,10 @@ class TC_MacTypes < Test::Unit::TestCase
|
|
22
28
|
|
23
29
|
# get path
|
24
30
|
# note that initial /tmp/codecs-test... path will automatically change to /private/tmp/codecs-test...
|
25
|
-
p1 = '/private'+@path1
|
26
|
-
p2 = '/private'+@path2
|
27
|
-
|
28
|
-
assert_equal(
|
31
|
+
p1 = normalize('/private'+@path1)
|
32
|
+
p2 = normalize('/private'+@path2)
|
33
|
+
|
34
|
+
assert_equal(p1, normalize(f.path))
|
29
35
|
|
30
36
|
#puts "alias path 1: #{f}" # e.g. /private/tmp/codecs-test.HWr1EnE3
|
31
37
|
assert_equal(p1, f.to_s)
|
@@ -40,7 +46,7 @@ class TC_MacTypes < Test::Unit::TestCase
|
|
40
46
|
# puts "alias path 2: #{f}" # /private/tmp/moved-codecs-test.HWr1EnE3
|
41
47
|
assert_equal(p2, f.to_s)
|
42
48
|
|
43
|
-
assert_equal(
|
49
|
+
assert_equal(p2, normalize(f.path))
|
44
50
|
|
45
51
|
# check a FileNotFoundError is raised if getting path/FileURL for a filesystem object that no longer exists
|
46
52
|
`rm #{@path2}`
|
data/test/test_osax.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
|
-
#!/usr/
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
begin; require 'rubygems'; rescue LoadError; end
|
2
4
|
|
3
5
|
require 'test/unit'
|
4
6
|
require 'osax'
|
5
7
|
|
6
|
-
class AS_SafeObject
|
7
|
-
def self.hide(name)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
8
|
class TC_OSAX < Test::Unit::TestCase
|
12
9
|
|
13
10
|
def test_1
|
metadata
CHANGED
@@ -1,33 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: rb-appscript
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
7
|
-
date: 2007-12-20 00:00:00 +00:00
|
8
|
-
summary: Ruby appscript (rb-appscript) is a high-level, user-friendly Apple event bridge that allows you to control scriptable Mac OS X applications using ordinary Ruby scripts.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email:
|
12
|
-
homepage: http://rb-appscript.rubyforge.org/
|
13
|
-
rubyforge_project: rb-appscript
|
14
|
-
description:
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: false
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "1.8"
|
24
|
-
version:
|
4
|
+
version: 0.5.1
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- HAS
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-02-18 00:00:00 +00:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email:
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions:
|
21
|
+
- extconf.rb
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
31
24
|
files:
|
32
25
|
- CHANGES
|
33
26
|
- doc
|
@@ -41,7 +34,6 @@ files:
|
|
41
34
|
- doc/aem-manual/07_findapp.html
|
42
35
|
- doc/aem-manual/08_examples.html
|
43
36
|
- doc/aem-manual/aemreferenceinheritance.gif
|
44
|
-
- doc/aem-manual/full.css
|
45
37
|
- doc/aem-manual/index.html
|
46
38
|
- doc/appscript-manual
|
47
39
|
- doc/appscript-manual/01_introduction.html
|
@@ -61,10 +53,10 @@ files:
|
|
61
53
|
- doc/appscript-manual/application_architecture.gif
|
62
54
|
- doc/appscript-manual/application_architecture2.gif
|
63
55
|
- doc/appscript-manual/finder_to_textedit_event.gif
|
64
|
-
- doc/appscript-manual/full.css
|
65
56
|
- doc/appscript-manual/index.html
|
66
57
|
- doc/appscript-manual/relationships_example.gif
|
67
58
|
- doc/appscript-manual/ruby_to_itunes_event.gif
|
59
|
+
- doc/full.css
|
68
60
|
- doc/index.html
|
69
61
|
- doc/mactypes-manual
|
70
62
|
- doc/mactypes-manual/index.html
|
@@ -126,6 +118,32 @@ files:
|
|
126
118
|
- test/test_osax.rb
|
127
119
|
- test/testall.sh
|
128
120
|
- TODO
|
121
|
+
has_rdoc: false
|
122
|
+
homepage: http://rb-appscript.rubyforge.org/
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: "1.8"
|
133
|
+
version:
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: "0"
|
139
|
+
version:
|
140
|
+
requirements: []
|
141
|
+
|
142
|
+
rubyforge_project: rb-appscript
|
143
|
+
rubygems_version: 1.0.1
|
144
|
+
signing_key:
|
145
|
+
specification_version: 2
|
146
|
+
summary: Ruby appscript (rb-appscript) is a high-level, user-friendly Apple event bridge that allows you to control scriptable Mac OS X applications using ordinary Ruby scripts.
|
129
147
|
test_files:
|
130
148
|
- test/test_aemreference.rb
|
131
149
|
- test/test_appscriptcommands.rb
|
@@ -134,15 +152,3 @@ test_files:
|
|
134
152
|
- test/test_findapp.rb
|
135
153
|
- test/test_mactypes.rb
|
136
154
|
- test/test_osax.rb
|
137
|
-
rdoc_options: []
|
138
|
-
|
139
|
-
extra_rdoc_files: []
|
140
|
-
|
141
|
-
executables: []
|
142
|
-
|
143
|
-
extensions:
|
144
|
-
- extconf.rb
|
145
|
-
requirements: []
|
146
|
-
|
147
|
-
dependencies: []
|
148
|
-
|