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.
Files changed (59) hide show
  1. data/CHANGES +19 -0
  2. data/LICENSE +1 -1
  3. data/README +5 -5
  4. data/TODO +3 -1
  5. data/doc/aem-manual/01_introduction.html +2 -2
  6. data/doc/aem-manual/02_apioverview.html +2 -2
  7. data/doc/aem-manual/03_packingandunpackingdata.html +2 -2
  8. data/doc/aem-manual/04_references.html +9 -21
  9. data/doc/aem-manual/05_targettingapplications.html +3 -3
  10. data/doc/aem-manual/06_buildingandsendingevents.html +2 -2
  11. data/doc/aem-manual/07_findapp.html +2 -2
  12. data/doc/aem-manual/08_examples.html +3 -3
  13. data/doc/aem-manual/index.html +2 -2
  14. data/doc/appscript-manual/01_introduction.html +2 -2
  15. data/doc/appscript-manual/02_aboutappscripting.html +2 -2
  16. data/doc/appscript-manual/03_quicktutorial.html +2 -2
  17. data/doc/appscript-manual/04_gettinghelp.html +2 -2
  18. data/doc/appscript-manual/05_keywordconversion.html +2 -2
  19. data/doc/appscript-manual/06_classesandenums.html +2 -2
  20. data/doc/appscript-manual/07_applicationobjects.html +2 -2
  21. data/doc/appscript-manual/08_realvsgenericreferences.html +2 -2
  22. data/doc/appscript-manual/09_referenceforms.html +3 -3
  23. data/doc/appscript-manual/10_referenceexamples.html +2 -2
  24. data/doc/appscript-manual/11_applicationcommands.html +2 -2
  25. data/doc/appscript-manual/12_commandexamples.html +2 -2
  26. data/doc/appscript-manual/13_performanceissues.html +2 -2
  27. data/doc/appscript-manual/14_notes.html +2 -2
  28. data/doc/appscript-manual/index.html +2 -2
  29. data/doc/{appscript-manual/full.css → full.css} +0 -0
  30. data/doc/index.html +2 -2
  31. data/doc/mactypes-manual/index.html +2 -2
  32. data/doc/osax-manual/index.html +6 -6
  33. data/extconf.rb +13 -3
  34. data/rb-appscript.gemspec +2 -1
  35. data/src/lib/_aem/aemreference.rb +22 -31
  36. data/src/lib/_aem/codecs.rb +21 -19
  37. data/src/lib/_aem/connect.rb +7 -3
  38. data/src/lib/_aem/findapp.rb +7 -3
  39. data/src/lib/_aem/mactypes.rb +22 -14
  40. data/src/lib/_aem/send.rb +7 -3
  41. data/src/lib/_aem/typewrappers.rb +7 -3
  42. data/src/lib/_appscript/defaultterminology.rb +7 -3
  43. data/src/lib/_appscript/referencerenderer.rb +7 -3
  44. data/src/lib/_appscript/reservedkeywords.rb +8 -3
  45. data/src/lib/_appscript/safeobject.rb +12 -2
  46. data/src/lib/_appscript/terminology.rb +31 -15
  47. data/src/lib/aem.rb +8 -3
  48. data/src/lib/appscript.rb +74 -46
  49. data/src/lib/osax.rb +7 -6
  50. data/src/rbae.c +46 -77
  51. data/test/test_aemreference.rb +10 -4
  52. data/test/test_appscriptcommands.rb +3 -1
  53. data/test/test_appscriptreference.rb +5 -3
  54. data/test/test_codecs.rb +3 -1
  55. data/test/test_findapp.rb +3 -1
  56. data/test/test_mactypes.rb +12 -6
  57. data/test/test_osax.rb +3 -6
  58. metadata +44 -38
  59. data/doc/aem-manual/full.css +0 -21
data/src/rbae.c CHANGED
@@ -1,5 +1,10 @@
1
1
  /*
2
- * Copyright (C) 2006 HAS
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) && RSTRING(obj)->len == 4) {
83
- return CFSwapInt32HostToBig(*(DescType *)(RSTRING(obj)->ptr));
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
- RSTRING(data)->ptr, RSTRING(data)->len,
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(RSTRING(data)->ptr, &desc);
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 *)(RSTRING(bundleID)->ptr),
442
- (CFIndex)(RSTRING(bundleID)->len),
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 *)(RSTRING(name)->ptr),
452
- (CFIndex)(RSTRING(name)->len),
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
- rbAE_convertPOSIXPathToURL(VALUE self, VALUE path)
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 *)(RSTRING(path)->ptr),
578
- (CFIndex)(RSTRING(path)->len),
572
+ (UInt8 *)(RSTRING_PTR(path)),
573
+ (CFIndex)(RSTRING_LEN(path)),
579
574
  kCFStringEncodingUTF8,
580
575
  false);
581
- if (str == NULL) rb_raise(rb_eRuntimeError, "Invalid HFS path string.");
576
+ if (str == NULL) rb_raise(rb_eRuntimeError, "Bad path string.");
582
577
  url = CFURLCreateWithFileSystemPath(NULL,
583
578
  str,
584
- kCFURLHFSPathStyle,
579
+ NUM2LONG(pathStyle),
585
580
  false);
586
581
  CFRelease(str);
587
- if (url == NULL) rb_raise(rb_eRuntimeError, "Invalid HFS path string.");
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
- rbAE_convertURLToPOSIXPath(VALUE self, VALUE urlStr)
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 *)(RSTRING(urlStr)->ptr),
625
- (CFIndex)(RSTRING(urlStr)->len),
597
+ (UInt8 *)(RSTRING_PTR(urlStr)),
598
+ (CFIndex)(RSTRING_LEN(urlStr)),
626
599
  kCFStringEncodingUTF8,
627
600
  NULL);
628
- if (url == NULL) rb_raise(rb_eRuntimeError, "Invalid URL string.");
629
- str = CFURLCopyFileSystemPath(url, kCFURLHFSPathStyle);
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 HFS path.");
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 HFS path.");
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 rb_ll2big(ldt);
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
- defaultComponent = OpenDefaultComponent(kOSAComponentType, 'ascr');
693
- err = GetComponentInstanceError(defaultComponent);
694
- if (err != 0) rbAE_raiseMacOSError("Couldn't make default component instance.", err);
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, "convert_posix_path_to_url",
955
- rbAE_convertPOSIXPathToURL, 1);
956
- rb_define_module_function(mAE, "convert_hfs_path_to_url",
957
- rbAE_convertHFSPathToURL, 1);
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);
@@ -1,4 +1,6 @@
1
- #!/usr/local/bin/ruby -w
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-range and by-filter references do basic type checking to ensure a reference is given
107
- # assert_raises(TypeError) { AEMReference::App.elements('docu').by_range(1, 2) }
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/local/bin/ruby -w
1
+ #!/usr/bin/ruby -w
2
+
3
+ begin; require 'rubygems'; rescue LoadError; end
2
4
 
3
5
  require 'test/unit'
4
6
  require 'appscript'
@@ -1,4 +1,6 @@
1
- #!/usr/local/bin/ruby -w
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[con.documents[1], con.documents["foo"]]',
72
- @te.documents[Appscript.con.documents[1], Appscript.con.documents['foo']]],
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[
@@ -1,4 +1,6 @@
1
- #!/usr/local/bin/ruby -w
1
+ #!/usr/bin/ruby -w
2
+
3
+ begin; require 'rubygems'; rescue LoadError; end
2
4
 
3
5
  require 'test/unit'
4
6
  require 'aem'
@@ -1,4 +1,6 @@
1
- #!/usr/local/bin/ruby -w
1
+ #!/usr/bin/ruby -w
2
+
3
+ begin; require 'rubygems'; rescue LoadError; end
2
4
 
3
5
  require 'test/unit'
4
6
  require "_aem/findapp"
@@ -1,4 +1,6 @@
1
- #!/usr/local/bin/ruby -w
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("MacTypes::Alias.path(#{p1.inspect})", f.inspect)
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("MacTypes::Alias.path(#{p2.inspect})", f.inspect)
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}`
@@ -1,13 +1,10 @@
1
- #!/usr/local/bin/ruby -w
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.0
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
-