rb-scpt 1.0.1 → 1.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rb-scpt-1.0.1.gem +0 -0
  3. data/extconf.rb +12 -12
  4. data/rb-scpt.gemspec +10 -10
  5. data/sample/AB_export_vcard.rb +16 -16
  6. data/sample/AB_list_people_with_emails.rb +4 -4
  7. data/sample/Add_iCal_event.rb +12 -12
  8. data/sample/Create_daily_iCal_todos.rb +28 -28
  9. data/sample/Export_Address_Book_phone_numbers.rb +52 -52
  10. data/sample/Hello_world.rb +10 -10
  11. data/sample/List_iTunes_playlist_names.rb +3 -3
  12. data/sample/Make_Mail_message.rb +24 -24
  13. data/sample/Open_file_in_TextEdit.rb +5 -5
  14. data/sample/Organize_Mail_messages.rb +46 -46
  15. data/sample/Print_folder_tree.rb +5 -5
  16. data/sample/Select_all_HTML_files.rb +6 -6
  17. data/sample/Set_iChat_status.rb +12 -12
  18. data/sample/Simple_Finder_GUI_Scripting.rb +6 -6
  19. data/sample/Stagger_Finder_windows.rb +9 -9
  20. data/sample/TextEdit_demo.rb +71 -71
  21. data/sample/iTunes_top40_to_html.rb +28 -30
  22. data/src/SendThreadSafe.c +293 -293
  23. data/src/SendThreadSafe.h +108 -108
  24. data/src/lib/_aem/aemreference.rb +997 -998
  25. data/src/lib/_aem/codecs.rb +609 -610
  26. data/src/lib/_aem/connect.rb +197 -197
  27. data/src/lib/_aem/encodingsupport.rb +67 -67
  28. data/src/lib/_aem/findapp.rb +75 -75
  29. data/src/lib/_aem/mactypes.rb +241 -242
  30. data/src/lib/_aem/send.rb +268 -268
  31. data/src/lib/_aem/typewrappers.rb +52 -52
  32. data/src/lib/_appscript/defaultterminology.rb +266 -266
  33. data/src/lib/_appscript/referencerenderer.rb +230 -233
  34. data/src/lib/_appscript/reservedkeywords.rb +106 -106
  35. data/src/lib/_appscript/safeobject.rb +125 -125
  36. data/src/lib/_appscript/terminology.rb +448 -449
  37. data/src/lib/aem.rb +238 -238
  38. data/src/lib/kae.rb +1487 -1487
  39. data/src/lib/osax.rb +647 -647
  40. data/src/lib/rb-scpt.rb +1065 -1065
  41. data/src/rbae.c +595 -595
  42. data/test/test_aemreference.rb +104 -107
  43. data/test/test_appscriptcommands.rb +131 -134
  44. data/test/test_appscriptreference.rb +96 -99
  45. data/test/test_codecs.rb +166 -168
  46. data/test/test_findapp.rb +13 -16
  47. data/test/test_mactypes.rb +70 -72
  48. data/test/test_osax.rb +46 -48
  49. data/test/testall.sh +4 -4
  50. metadata +8 -7
@@ -8,109 +8,109 @@
8
8
  # This list is mirrored in ch.6 of the appscript manual and in py-osaterminology's makeidentifier module
9
9
 
10
10
  ReservedKeywords = [
11
- "==",
12
- "===",
13
- "=~",
14
- "AS_aem_reference",
15
- "AS_aem_reference=",
16
- "AS_app_data",
17
- "AS_app_data=",
18
- "AS_new_reference",
19
- "AS_resolve",
20
- "ID",
21
- "[]",
22
- "__id__",
23
- "__send__",
24
- "_aem_application_class",
25
- "_call",
26
- "_resolve_range_boundary",
27
- "_send_command",
28
- "abort_transaction",
29
- "after",
30
- "and",
31
- "any",
32
- "app",
33
- "before",
34
- "begin_transaction",
35
- "beginning",
36
- "begins_with",
37
- "by_aem_app",
38
- "by_creator",
39
- "by_id",
40
- "by_name",
41
- "by_pid",
42
- "by_url",
43
- "class",
44
- "clone",
45
- "commands",
46
- "con",
47
- "contains",
48
- "current",
49
- "display",
50
- "does_not_contain",
51
- "does_not_end_with",
52
- "does_not_begin_with",
53
- "dup",
54
- "elements",
55
- "end",
56
- "end_transaction",
57
- "ends_with",
58
- "eq",
59
- "eql?",
60
- "equal?",
61
- "extend",
62
- "first",
63
- "freeze",
64
- "frozen?",
65
- "ge",
66
- "gt",
67
- "hash",
68
- "help",
69
- "id",
70
- "ignore",
71
- "inspect",
72
- "instance_eval",
73
- "instance_of?",
74
- "instance_variable_get",
75
- "instance_variable_set",
76
- "instance_variables",
77
- "is_a?",
78
- "is_in",
79
- "is_not_in",
80
- "is_running?",
81
- "its",
82
- "keywords",
83
- "kind_of?",
84
- "last",
85
- "launch",
86
- "le",
87
- "lt",
88
- "method",
89
- "method_missing",
90
- "methods",
91
- "middle",
92
- "ne",
93
- "next",
94
- "nil?",
95
- "not",
96
- "object_id",
97
- "or",
98
- "parameters",
99
- "previous",
100
- "private_methods",
101
- "properties",
102
- "protected_methods",
103
- "public_methods",
104
- "respond_to?",
105
- "result_type",
106
- "send",
107
- "singleton_methods",
108
- "taint",
109
- "tainted?",
110
- "timeout",
111
- "to_a",
112
- "to_s",
113
- "type",
114
- "untaint",
115
- "wait_reply",
116
- ]
11
+ "==",
12
+ "===",
13
+ "=~",
14
+ "AS_aem_reference",
15
+ "AS_aem_reference=",
16
+ "AS_app_data",
17
+ "AS_app_data=",
18
+ "AS_new_reference",
19
+ "AS_resolve",
20
+ "ID",
21
+ "[]",
22
+ "__id__",
23
+ "__send__",
24
+ "_aem_application_class",
25
+ "_call",
26
+ "_resolve_range_boundary",
27
+ "_send_command",
28
+ "abort_transaction",
29
+ "after",
30
+ "and",
31
+ "any",
32
+ "app",
33
+ "before",
34
+ "begin_transaction",
35
+ "beginning",
36
+ "begins_with",
37
+ "by_aem_app",
38
+ "by_creator",
39
+ "by_id",
40
+ "by_name",
41
+ "by_pid",
42
+ "by_url",
43
+ "class",
44
+ "clone",
45
+ "commands",
46
+ "con",
47
+ "contains",
48
+ "current",
49
+ "display",
50
+ "does_not_contain",
51
+ "does_not_end_with",
52
+ "does_not_begin_with",
53
+ "dup",
54
+ "elements",
55
+ "end",
56
+ "end_transaction",
57
+ "ends_with",
58
+ "eq",
59
+ "eql?",
60
+ "equal?",
61
+ "extend",
62
+ "first",
63
+ "freeze",
64
+ "frozen?",
65
+ "ge",
66
+ "gt",
67
+ "hash",
68
+ "help",
69
+ "id",
70
+ "ignore",
71
+ "inspect",
72
+ "instance_eval",
73
+ "instance_of?",
74
+ "instance_variable_get",
75
+ "instance_variable_set",
76
+ "instance_variables",
77
+ "is_a?",
78
+ "is_in",
79
+ "is_not_in",
80
+ "is_running?",
81
+ "its",
82
+ "keywords",
83
+ "kind_of?",
84
+ "last",
85
+ "launch",
86
+ "le",
87
+ "lt",
88
+ "method",
89
+ "method_missing",
90
+ "methods",
91
+ "middle",
92
+ "ne",
93
+ "next",
94
+ "nil?",
95
+ "not",
96
+ "object_id",
97
+ "or",
98
+ "parameters",
99
+ "previous",
100
+ "private_methods",
101
+ "properties",
102
+ "protected_methods",
103
+ "public_methods",
104
+ "respond_to?",
105
+ "result_type",
106
+ "send",
107
+ "singleton_methods",
108
+ "taint",
109
+ "tainted?",
110
+ "timeout",
111
+ "to_a",
112
+ "to_s",
113
+ "type",
114
+ "untaint",
115
+ "wait_reply",
116
+ ]
@@ -12,7 +12,7 @@
12
12
  # Appscript::Reference and Appscript#GenericReference with stable superclasses.
13
13
 
14
14
  # Unfortunately, Ruby makes it ludicrously easy for users to accidentally add new methods
15
- # to the Object class. And if these methods' names are the same as application keywords,
15
+ # to the Object class. And if these methods' names are the same as application keywords,
16
16
  # Ruby will invoke them instead of Reference#method_missing, resulting in incorrect behaviour.
17
17
  #
18
18
  # e.g. The following code demonstrates the problem in an unpatched copy of appscript 0.2.1.
@@ -43,10 +43,10 @@
43
43
  # then applied to Module#method_added and Module#included to detect any subsequent
44
44
  # method additions and immediately remove those from AS_SafeObject as well.
45
45
 
46
- # Having to insert traps into other users' runtimes isn't exactly an ideal solution, but
46
+ # Having to insert traps into other users' runtimes isn't exactly an ideal solution, but
47
47
  # unless/until Ruby comes up with a safe, sane system for including modules in main that
48
48
  # doesn't pollute every other namespace as well, it may be the only practical solution. The
49
- # only other alternative would be a major redesign+rewrite of the appscript module to use
49
+ # only other alternative would be a major redesign+rewrite of the appscript module to use
50
50
  # metaclasses (c.f. js-appscript) instead of method_missing, but this is not really desireable
51
51
  # as it'd be much more complicated to implement, slower to initialise, and less elegant to
52
52
  # use (since GenericReferences would have to be dropped).
@@ -61,58 +61,58 @@
61
61
  #
62
62
  # THE RUBY LICENSE
63
63
  # (http://www.ruby-lang.org/en/LICENSE.txt)
64
- #
64
+ #
65
65
  # You may redistribute this software and/or modify it under either the terms of
66
66
  # the GPL (see below), or the conditions below:
67
- #
67
+ #
68
68
  # 1. You may make and give away verbatim copies of the source form of the
69
69
  # software without restriction, provided that you duplicate all of the
70
70
  # original copyright notices and associated disclaimers.
71
- #
71
+ #
72
72
  # 2. You may modify your copy of the software in any way, provided that
73
73
  # you do at least ONE of the following:
74
- #
74
+ #
75
75
  # a) place your modifications in the Public Domain or otherwise
76
76
  # make them Freely Available, such as by posting said
77
77
  # modifications to Usenet or an equivalent medium, or by allowing
78
78
  # the author to include your modifications in the software.
79
- #
79
+ #
80
80
  # b) use the modified software only within your corporation or
81
81
  # organization.
82
- #
82
+ #
83
83
  # c) rename any non-standard executables so the names do not conflict
84
84
  # with standard executables, which must also be provided.
85
- #
85
+ #
86
86
  # d) make other distribution arrangements with the author.
87
- #
87
+ #
88
88
  # 3. You may distribute the software in object code or executable
89
89
  # form, provided that you do at least ONE of the following:
90
- #
90
+ #
91
91
  # a) distribute the executables and library files of the software,
92
92
  # together with instructions (in the manual page or equivalent)
93
93
  # on where to get the original distribution.
94
- #
94
+ #
95
95
  # b) accompany the distribution with the machine-readable source of
96
96
  # the software.
97
- #
97
+ #
98
98
  # c) give non-standard executables non-standard names, with
99
99
  # instructions on where to get the original software distribution.
100
- #
100
+ #
101
101
  # d) make other distribution arrangements with the author.
102
- #
102
+ #
103
103
  # 4. You may modify and include the part of the software into any other
104
104
  # software (possibly commercial). But some files in the distribution
105
105
  # are not written by the author, so that they are not under these terms.
106
- #
106
+ #
107
107
  # For the list of those files and their copying conditions, see the
108
108
  # file LEGAL.
109
- #
109
+ #
110
110
  # 5. The scripts and library files supplied as input to or produced as
111
111
  # output from the software do not automatically fall under the
112
112
  # copyright of the software, but belong to whomever generated them,
113
113
  # and may be sold commercially, and may be aggregated with this
114
114
  # software.
115
- #
115
+ #
116
116
  # 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
117
117
  # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
118
118
  # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
@@ -126,92 +126,92 @@ require '_appscript/reservedkeywords'
126
126
 
127
127
  class AS_SafeObject
128
128
 
129
- EXCLUDE = ReservedKeywords + [
130
- "Array",
131
- "Float",
132
- "Integer",
133
- "String",
134
- "`",
135
- "abort",
136
- "at_exit",
137
- "autoload",
138
- "autoload?",
139
- "binding",
140
- "block_given?",
141
- "callcc",
142
- "caller",
143
- "catch",
144
- "chomp",
145
- "chomp!",
146
- "chop",
147
- "chop!",
148
- "eval",
149
- "exec",
150
- "exit",
151
- "exit!",
152
- "fail",
153
- "fork",
154
- "format",
155
- "getc",
156
- "gets",
157
- "global_variables",
158
- "gsub",
159
- "gsub!",
160
- "initialize",
161
- "initialize_copy",
162
- "iterator?",
163
- "lambda",
164
- "load",
165
- "local_variables",
166
- "loop",
167
- "open",
168
- "p",
169
- "print",
170
- "printf",
171
- "proc",
172
- "putc",
173
- "puts",
174
- "raise",
175
- "rand",
176
- "readline",
177
- "readlines",
178
- "remove_instance_variable",
179
- "require",
180
- "scan",
181
- "select",
182
- "set_trace_func",
183
- "singleton_method_added",
184
- "singleton_method_removed",
185
- "singleton_method_undefined",
186
- "sleep",
187
- "split",
188
- "sprintf",
189
- "srand",
190
- "sub",
191
- "sub!",
192
- "syscall",
193
- "system",
194
- "test",
195
- "throw",
196
- "trace_var",
197
- "trap",
198
- "untrace_var",
199
- "warn"
200
- ] + [
201
- /^__/, /^instance_/, /^object_/, /\?$/, /^\W$/,
202
- ]
203
-
204
- def self.hide(name)
205
- case name.to_s # Ruby1.9 returns method names as symbols, not strings as in 1.8
206
- when *EXCLUDE
207
- else
208
- undef_method(name) rescue nil
209
- end
210
- end
211
-
212
- public_instance_methods(true).each { |m| hide(m) }
213
- #private_instance_methods(true).each { |m| hide(m) }
214
- protected_instance_methods(true).each { |m| hide(m) }
129
+ EXCLUDE = ReservedKeywords + [
130
+ "Array",
131
+ "Float",
132
+ "Integer",
133
+ "String",
134
+ "`",
135
+ "abort",
136
+ "at_exit",
137
+ "autoload",
138
+ "autoload?",
139
+ "binding",
140
+ "block_given?",
141
+ "callcc",
142
+ "caller",
143
+ "catch",
144
+ "chomp",
145
+ "chomp!",
146
+ "chop",
147
+ "chop!",
148
+ "eval",
149
+ "exec",
150
+ "exit",
151
+ "exit!",
152
+ "fail",
153
+ "fork",
154
+ "format",
155
+ "getc",
156
+ "gets",
157
+ "global_variables",
158
+ "gsub",
159
+ "gsub!",
160
+ "initialize",
161
+ "initialize_copy",
162
+ "iterator?",
163
+ "lambda",
164
+ "load",
165
+ "local_variables",
166
+ "loop",
167
+ "open",
168
+ "p",
169
+ "print",
170
+ "printf",
171
+ "proc",
172
+ "putc",
173
+ "puts",
174
+ "raise",
175
+ "rand",
176
+ "readline",
177
+ "readlines",
178
+ "remove_instance_variable",
179
+ "require",
180
+ "scan",
181
+ "select",
182
+ "set_trace_func",
183
+ "singleton_method_added",
184
+ "singleton_method_removed",
185
+ "singleton_method_undefined",
186
+ "sleep",
187
+ "split",
188
+ "sprintf",
189
+ "srand",
190
+ "sub",
191
+ "sub!",
192
+ "syscall",
193
+ "system",
194
+ "test",
195
+ "throw",
196
+ "trace_var",
197
+ "trap",
198
+ "untrace_var",
199
+ "warn"
200
+ ] + [
201
+ /^__/, /^instance_/, /^object_/, /\?$/, /^\W$/,
202
+ ]
203
+
204
+ def self.hide(name)
205
+ case name.to_s # Ruby1.9 returns method names as symbols, not strings as in 1.8
206
+ when *EXCLUDE
207
+ else
208
+ undef_method(name) rescue nil
209
+ end
210
+ end
211
+
212
+ public_instance_methods(true).each { |m| hide(m) }
213
+ #private_instance_methods(true).each { |m| hide(m) }
214
+ protected_instance_methods(true).each { |m| hide(m) }
215
215
 
216
216
  end
217
217
 
@@ -226,24 +226,24 @@ end
226
226
  # hooks in Module that will hide any defined.
227
227
 
228
228
  class Module
229
- madded = method(:method_added)
230
- define_method(:method_added) do |name|
231
- # puts "ADDED %-32s %s" % [name, self]
232
- result = madded.call(name)
233
- if self == Object
234
- AS_SafeObject.hide(name)
235
- end
236
- return result
237
- end
238
- mincluded = method(:included)
239
- define_method(:included) do |mod|
240
- result = mincluded.call(mod)
241
- # puts "INCLUDED %-32s %s" % [mod, self]
242
- if mod == Object
243
- public_instance_methods(true).each { |name| AS_SafeObject.hide(name) }
244
- #private_instance_methods(true).each { |name| AS_SafeObject.hide(name) }
245
- protected_instance_methods(true).each { |name| AS_SafeObject.hide(name) }
246
- end
247
- return result
248
- end
229
+ madded = method(:method_added)
230
+ define_method(:method_added) do |name|
231
+ # puts "ADDED %-32s %s" % [name, self]
232
+ result = madded.call(name)
233
+ if self == Object
234
+ AS_SafeObject.hide(name)
235
+ end
236
+ return result
237
+ end
238
+ mincluded = method(:included)
239
+ define_method(:included) do |mod|
240
+ result = mincluded.call(mod)
241
+ # puts "INCLUDED %-32s %s" % [mod, self]
242
+ if mod == Object
243
+ public_instance_methods(true).each { |name| AS_SafeObject.hide(name) }
244
+ #private_instance_methods(true).each { |name| AS_SafeObject.hide(name) }
245
+ protected_instance_methods(true).each { |name| AS_SafeObject.hide(name) }
246
+ end
247
+ return result
248
+ end
249
249
  end