win32ole 1.8.9 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.document +4 -0
  3. data/{LICENSE.txt → BSDL} +3 -3
  4. data/COPYING +56 -0
  5. data/ext/win32ole/.document +1 -0
  6. data/ext/win32ole/win32ole.c +70 -134
  7. data/ext/win32ole/win32ole_error.c +13 -4
  8. data/ext/win32ole/win32ole_event.c +26 -25
  9. data/ext/win32ole/win32ole_method.c +64 -63
  10. data/ext/win32ole/win32ole_param.c +57 -56
  11. data/ext/win32ole/win32ole_record.c +26 -25
  12. data/ext/win32ole/win32ole_type.c +73 -69
  13. data/ext/win32ole/win32ole_typelib.c +38 -37
  14. data/ext/win32ole/win32ole_variable.c +19 -18
  15. data/ext/win32ole/win32ole_variant.c +34 -33
  16. data/ext/win32ole/win32ole_variant_m.c +7 -5
  17. data/lib/win32ole/property.rb +15 -3
  18. data/lib/win32ole.rb +1 -2
  19. data/{ext/win32ole/sample → sample/win32ole}/olegen.rb +2 -2
  20. metadata +22 -31
  21. data/.git-blame-ignore-revs +0 -7
  22. data/.github/dependabot.yml +0 -6
  23. data/.github/workflows/windows.yml +0 -24
  24. data/.gitignore +0 -8
  25. data/Gemfile +0 -7
  26. data/Rakefile +0 -19
  27. data/bin/console +0 -14
  28. data/bin/setup +0 -8
  29. data/rakelib/changelogs.rake +0 -34
  30. data/rakelib/epoch.rake +0 -5
  31. data/rakelib/sync_tool.rake +0 -6
  32. data/rakelib/version.rake +0 -45
  33. data/win32ole.gemspec +0 -22
  34. /data/{ext/win32ole/sample → sample/win32ole}/excel1.rb +0 -0
  35. /data/{ext/win32ole/sample → sample/win32ole}/excel2.rb +0 -0
  36. /data/{ext/win32ole/sample → sample/win32ole}/excel3.rb +0 -0
  37. /data/{ext/win32ole/sample → sample/win32ole}/ie.rb +0 -0
  38. /data/{ext/win32ole/sample → sample/win32ole}/ieconst.rb +0 -0
  39. /data/{ext/win32ole/sample → sample/win32ole}/ienavi.rb +0 -0
  40. /data/{ext/win32ole/sample → sample/win32ole}/ienavi2.rb +0 -0
  41. /data/{ext/win32ole/sample → sample/win32ole}/oledirs.rb +0 -0
  42. /data/{ext/win32ole/sample → sample/win32ole}/xml.rb +0 -0
@@ -43,9 +43,9 @@ olevariable_size(const void *ptr)
43
43
  }
44
44
 
45
45
  /*
46
- * Document-class: WIN32OLE_VARIABLE
46
+ * Document-class: WIN32OLE::Variable
47
47
  *
48
- * <code>WIN32OLE_VARIABLE</code> objects represent OLE variable information.
48
+ * +WIN32OLE::Variable+ objects represent OLE variable information.
49
49
  */
50
50
 
51
51
  VALUE
@@ -63,11 +63,11 @@ create_win32ole_variable(ITypeInfo *pTypeInfo, UINT index, VALUE name)
63
63
 
64
64
  /*
65
65
  * call-seq:
66
- * WIN32OLE_VARIABLE#name
66
+ * name
67
67
  *
68
68
  * Returns the name of variable.
69
69
  *
70
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
70
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
71
71
  * variables = tobj.variables
72
72
  * variables.each do |variable|
73
73
  * puts "#{variable.name}"
@@ -103,11 +103,11 @@ ole_variable_ole_type(ITypeInfo *pTypeInfo, UINT var_index)
103
103
 
104
104
  /*
105
105
  * call-seq:
106
- * WIN32OLE_VARIABLE#ole_type
106
+ * ole_type
107
107
  *
108
108
  * Returns OLE type string.
109
109
  *
110
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
110
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
111
111
  * variables = tobj.variables
112
112
  * variables.each do |variable|
113
113
  * puts "#{variable.ole_type} #{variable.name}"
@@ -145,11 +145,11 @@ ole_variable_ole_type_detail(ITypeInfo *pTypeInfo, UINT var_index)
145
145
 
146
146
  /*
147
147
  * call-seq:
148
- * WIN32OLE_VARIABLE#ole_type_detail
148
+ * ole_type_detail
149
149
  *
150
150
  * Returns detail information of type. The information is array of type.
151
151
  *
152
- * tobj = WIN32OLE_TYPE.new('DirectX 7 for Visual Basic Type Library', 'D3DCLIPSTATUS')
152
+ * tobj = WIN32OLE::Type.new('DirectX 7 for Visual Basic Type Library', 'D3DCLIPSTATUS')
153
153
  * variable = tobj.variables.find {|variable| variable.name == 'lFlags'}
154
154
  * tdetail = variable.ole_type_detail
155
155
  * p tdetail # => ["USERDEFINED", "CONST_D3DCLIPSTATUSFLAGS"]
@@ -180,12 +180,12 @@ ole_variable_value(ITypeInfo *pTypeInfo, UINT var_index)
180
180
 
181
181
  /*
182
182
  * call-seq:
183
- * WIN32OLE_VARIABLE#value
183
+ * value
184
184
  *
185
185
  * Returns value if value is exists. If the value does not exist,
186
186
  * this method returns nil.
187
187
  *
188
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
188
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
189
189
  * variables = tobj.variables
190
190
  * variables.each do |variable|
191
191
  * puts "#{variable.name} #{variable.value}"
@@ -227,11 +227,11 @@ ole_variable_visible(ITypeInfo *pTypeInfo, UINT var_index)
227
227
 
228
228
  /*
229
229
  * call-seq:
230
- * WIN32OLE_VARIABLE#visible?
230
+ * visible?
231
231
  *
232
232
  * Returns true if the variable is public.
233
233
  *
234
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
234
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
235
235
  * variables = tobj.variables
236
236
  * variables.each do |variable|
237
237
  * puts "#{variable.name} #{variable.visible?}"
@@ -284,11 +284,11 @@ ole_variable_kind(ITypeInfo *pTypeInfo, UINT var_index)
284
284
 
285
285
  /*
286
286
  * call-seq:
287
- * WIN32OLE_VARIABLE#variable_kind
287
+ * variable_kind
288
288
  *
289
289
  * Returns variable kind string.
290
290
  *
291
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
291
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
292
292
  * variables = tobj.variables
293
293
  * variables.each do |variable|
294
294
  * puts "#{variable.name} #{variable.variable_kind}"
@@ -325,10 +325,10 @@ ole_variable_varkind(ITypeInfo *pTypeInfo, UINT var_index)
325
325
 
326
326
  /*
327
327
  * call-seq:
328
- * WIN32OLE_VARIABLE#varkind
328
+ * varkind
329
329
  *
330
330
  * Returns the number which represents variable kind.
331
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
331
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
332
332
  * variables = tobj.variables
333
333
  * variables.each do |variable|
334
334
  * puts "#{variable.name} #{variable.varkind}"
@@ -351,7 +351,7 @@ folevariable_varkind(VALUE self)
351
351
 
352
352
  /*
353
353
  * call-seq:
354
- * WIN32OLE_VARIABLE#inspect -> String
354
+ * inspect -> String
355
355
  *
356
356
  * Returns the OLE variable name and the value with class name.
357
357
  *
@@ -362,7 +362,7 @@ folevariable_inspect(VALUE self)
362
362
  VALUE v = rb_inspect(folevariable_value(self));
363
363
  VALUE n = folevariable_name(self);
364
364
  VALUE detail = rb_sprintf("%"PRIsVALUE"=%"PRIsVALUE, n, v);
365
- return make_inspect("WIN32OLE_VARIABLE", detail);
365
+ return make_inspect("WIN32OLE::Variable", detail);
366
366
  }
367
367
 
368
368
  VALUE cWIN32OLE_VARIABLE;
@@ -370,6 +370,7 @@ VALUE cWIN32OLE_VARIABLE;
370
370
  void Init_win32ole_variable(void)
371
371
  {
372
372
  cWIN32OLE_VARIABLE = rb_define_class_under(cWIN32OLE, "Variable", rb_cObject);
373
+ /* Alias of WIN32OLE::Variable, for the backward compatibility */
373
374
  rb_define_const(rb_cObject, "WIN32OLE_VARIABLE", cWIN32OLE_VARIABLE);
374
375
  rb_undef_alloc_func(cWIN32OLE_VARIABLE);
375
376
  rb_define_method(cWIN32OLE_VARIABLE, "name", folevariable_name, 0);
@@ -267,7 +267,7 @@ folevariant_s_allocate(VALUE klass)
267
267
 
268
268
  /*
269
269
  * call-seq:
270
- * WIN32OLE_VARIANT.array(ary, vt)
270
+ * array(ary, vt)
271
271
  *
272
272
  * Returns Ruby object wrapping OLE variant whose variant type is VT_ARRAY.
273
273
  * The first argument should be Array object which specifies dimensions
@@ -277,7 +277,7 @@ folevariant_s_allocate(VALUE klass)
277
277
  * The following create 2 dimensions OLE array. The first dimensions size
278
278
  * is 3, and the second is 4.
279
279
  *
280
- * ole_ary = WIN32OLE_VARIANT.array([3,4], VT_I4)
280
+ * ole_ary = WIN32OLE::Variant.array([3,4], VT_I4)
281
281
  * ruby_ary = ole_ary.value # => [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
282
282
  *
283
283
  */
@@ -357,44 +357,44 @@ check_type_val2variant(VALUE val)
357
357
  case T_NIL:
358
358
  break;
359
359
  default:
360
- rb_raise(rb_eTypeError, "can not convert WIN32OLE_VARIANT from type %s",
360
+ rb_raise(rb_eTypeError, "can not convert WIN32OLE::Variant from type %s",
361
361
  rb_obj_classname(val));
362
362
  }
363
363
  }
364
364
  }
365
365
 
366
366
  /*
367
- * Document-class: WIN32OLE_VARIANT
367
+ * Document-class: WIN32OLE::Variant
368
368
  *
369
- * <code>WIN32OLE_VARIANT</code> objects represents OLE variant.
369
+ * +WIN32OLE::Variant+ objects represents OLE variant.
370
370
  *
371
371
  * Win32OLE converts Ruby object into OLE variant automatically when
372
372
  * invoking OLE methods. If OLE method requires the argument which is
373
373
  * different from the variant by automatic conversion of Win32OLE, you
374
- * can convert the specified variant type by using WIN32OLE_VARIANT class.
374
+ * can convert the specified variant type by using WIN32OLE::Variant class.
375
375
  *
376
- * param = WIN32OLE_VARIANT.new(10, WIN32OLE::VARIANT::VT_R4)
376
+ * param = WIN32OLE::Variant.new(10, WIN32OLE::VARIANT::VT_R4)
377
377
  * oleobj.method(param)
378
378
  *
379
- * WIN32OLE_VARIANT does not support VT_RECORD variant. Use WIN32OLE_RECORD
380
- * class instead of WIN32OLE_VARIANT if the VT_RECORD variant is needed.
379
+ * WIN32OLE::Variant does not support VT_RECORD variant. Use WIN32OLE::Record
380
+ * class instead of WIN32OLE::Variant if the VT_RECORD variant is needed.
381
381
  */
382
382
 
383
383
  /*
384
384
  * call-seq:
385
- * WIN32OLE_VARIANT.new(val, vartype) #=> WIN32OLE_VARIANT object.
385
+ * new(val, vartype) #=> WIN32OLE::Variant object.
386
386
  *
387
387
  * Returns Ruby object wrapping OLE variant.
388
388
  * The first argument specifies Ruby object to convert OLE variant variable.
389
389
  * The second argument specifies VARIANT type.
390
- * In some situation, you need the WIN32OLE_VARIANT object to pass OLE method
390
+ * In some situation, you need the WIN32OLE::Variant object to pass OLE method
391
391
  *
392
392
  * shell = WIN32OLE.new("Shell.Application")
393
393
  * folder = shell.NameSpace("C:\\Windows")
394
394
  * item = folder.ParseName("tmp.txt")
395
395
  * # You can't use Ruby String object to call FolderItem.InvokeVerb.
396
- * # Instead, you have to use WIN32OLE_VARIANT object to call the method.
397
- * shortcut = WIN32OLE_VARIANT.new("Create Shortcut(\&S)")
396
+ * # Instead, you have to use WIN32OLE::Variant object to call the method.
397
+ * shortcut = WIN32OLE::Variant.new("Create Shortcut(\&S)")
398
398
  * item.invokeVerb(shortcut)
399
399
  *
400
400
  */
@@ -422,7 +422,7 @@ folevariant_initialize(VALUE self, VALUE args)
422
422
  vvt = rb_ary_entry(args, 1);
423
423
  vt = RB_NUM2INT(vvt);
424
424
  if ((vt & VT_TYPEMASK) == VT_RECORD) {
425
- rb_raise(rb_eArgError, "not supported VT_RECORD WIN32OLE_VARIANT object");
425
+ rb_raise(rb_eArgError, "not supported VT_RECORD WIN32OLE::Variant object");
426
426
  }
427
427
  ole_val2olevariantdata(val, vt, pvar);
428
428
  }
@@ -482,22 +482,22 @@ unlock_safe_array(SAFEARRAY *psa)
482
482
 
483
483
  /*
484
484
  * call-seq:
485
- * WIN32OLE_VARIANT[i,j,...] #=> element of OLE array.
485
+ * variant[i,j,...] #=> element of OLE array.
486
486
  *
487
- * Returns the element of WIN32OLE_VARIANT object(OLE array).
487
+ * Returns the element of WIN32OLE::Variant object(OLE array).
488
488
  * This method is available only when the variant type of
489
- * WIN32OLE_VARIANT object is VT_ARRAY.
489
+ * WIN32OLE::Variant object is VT_ARRAY.
490
490
  *
491
491
  * REMARK:
492
492
  * The all indices should be 0 or natural number and
493
493
  * lower than or equal to max indices.
494
494
  * (This point is different with Ruby Array indices.)
495
495
  *
496
- * obj = WIN32OLE_VARIANT.new([[1,2,3],[4,5,6]])
496
+ * obj = WIN32OLE::Variant.new([[1,2,3],[4,5,6]])
497
497
  * p obj[0,0] # => 1
498
498
  * p obj[1,0] # => 4
499
- * p obj[2,0] # => WIN32OLERuntimeError
500
- * p obj[0, -1] # => WIN32OLERuntimeError
499
+ * p obj[2,0] # => WIN32OLE::RuntimeError
500
+ * p obj[0, -1] # => WIN32OLE::RuntimeError
501
501
  *
502
502
  */
503
503
  static VALUE
@@ -537,23 +537,23 @@ folevariant_ary_aref(int argc, VALUE *argv, VALUE self)
537
537
 
538
538
  /*
539
539
  * call-seq:
540
- * WIN32OLE_VARIANT[i,j,...] = val #=> set the element of OLE array
540
+ * variant[i,j,...] = val #=> set the element of OLE array
541
541
  *
542
- * Set the element of WIN32OLE_VARIANT object(OLE array) to val.
542
+ * Set the element of WIN32OLE::Variant object(OLE array) to val.
543
543
  * This method is available only when the variant type of
544
- * WIN32OLE_VARIANT object is VT_ARRAY.
544
+ * WIN32OLE::Variant object is VT_ARRAY.
545
545
  *
546
546
  * REMARK:
547
547
  * The all indices should be 0 or natural number and
548
548
  * lower than or equal to max indices.
549
549
  * (This point is different with Ruby Array indices.)
550
550
  *
551
- * obj = WIN32OLE_VARIANT.new([[1,2,3],[4,5,6]])
551
+ * obj = WIN32OLE::Variant.new([[1,2,3],[4,5,6]])
552
552
  * obj[0,0] = 7
553
553
  * obj[1,0] = 8
554
554
  * p obj.value # => [[7,2,3], [8,5,6]]
555
- * obj[2,0] = 9 # => WIN32OLERuntimeError
556
- * obj[0, -1] = 9 # => WIN32OLERuntimeError
555
+ * obj[2,0] = 9 # => WIN32OLE::RuntimeError
556
+ * obj[0, -1] = 9 # => WIN32OLE::RuntimeError
557
557
  *
558
558
  */
559
559
  static VALUE
@@ -598,10 +598,10 @@ folevariant_ary_aset(int argc, VALUE *argv, VALUE self)
598
598
 
599
599
  /*
600
600
  * call-seq:
601
- * WIN32OLE_VARIANT.value #=> Ruby object.
601
+ * value #=> Ruby object.
602
602
  *
603
603
  * Returns Ruby object value from OLE variant.
604
- * obj = WIN32OLE_VARIANT.new(1, WIN32OLE::VARIANT::VT_BSTR)
604
+ * obj = WIN32OLE::Variant.new(1, WIN32OLE::VARIANT::VT_BSTR)
605
605
  * obj.value # => "1" (not Integer object, but String object "1")
606
606
  *
607
607
  */
@@ -637,10 +637,10 @@ folevariant_value(VALUE self)
637
637
 
638
638
  /*
639
639
  * call-seq:
640
- * WIN32OLE_VARIANT.vartype #=> OLE variant type.
640
+ * vartype #=> OLE variant type.
641
641
  *
642
642
  * Returns OLE variant type.
643
- * obj = WIN32OLE_VARIANT.new("string")
643
+ * obj = WIN32OLE::Variant.new("string")
644
644
  * obj.vartype # => WIN32OLE::VARIANT::VT_BSTR
645
645
  *
646
646
  */
@@ -654,7 +654,7 @@ folevariant_vartype(VALUE self)
654
654
 
655
655
  /*
656
656
  * call-seq:
657
- * WIN32OLE_VARIANT.value = val #=> set WIN32OLE_VARIANT value to val.
657
+ * variant.value = val #=> set WIN32OLE::Variant value to val.
658
658
  *
659
659
  * Sets variant value to val. If the val type does not match variant value
660
660
  * type(vartype), then val is changed to match variant value type(vartype)
@@ -662,7 +662,7 @@ folevariant_vartype(VALUE self)
662
662
  * This method is not available when vartype is VT_ARRAY(except VT_UI1|VT_ARRAY).
663
663
  * If the vartype is VT_UI1|VT_ARRAY, the val should be String object.
664
664
  *
665
- * obj = WIN32OLE_VARIANT.new(1) # obj.vartype is WIN32OLE::VARIANT::VT_I4
665
+ * obj = WIN32OLE::Variant.new(1) # obj.vartype is WIN32OLE::VARIANT::VT_I4
666
666
  * obj.value = 3.2 # 3.2 is changed to 3 when setting value.
667
667
  * p obj.value # => 3
668
668
  */
@@ -696,6 +696,7 @@ Init_win32ole_variant(void)
696
696
  {
697
697
  #undef rb_intern
698
698
  cWIN32OLE_VARIANT = rb_define_class_under(cWIN32OLE, "Variant", rb_cObject);
699
+ /* Alias of WIN32OLE::Variant, for the backward compatibility */
699
700
  rb_define_const(rb_cObject, "WIN32OLE_VARIANT", cWIN32OLE_VARIANT);
700
701
  rb_define_alloc_func(cWIN32OLE_VARIANT, folevariant_s_allocate);
701
702
  rb_define_singleton_method(cWIN32OLE_VARIANT, "array", folevariant_s_array, 2);
@@ -729,7 +730,7 @@ Init_win32ole_variant(void)
729
730
  * This constants is used for not specified parameter.
730
731
  *
731
732
  * fso = WIN32OLE.new("Scripting.FileSystemObject")
732
- * fso.openTextFile(filename, WIN32OLE_VARIANT::NoParam, false)
733
+ * fso.openTextFile(filename, WIN32OLE::Variant::NoParam, false)
733
734
  */
734
735
  rb_define_const(cWIN32OLE_VARIANT, "NoParam",
735
736
  rb_funcall(cWIN32OLE_VARIANT, rb_intern("new"), 2, INT2NUM(DISP_E_PARAMNOTFOUND), RB_INT2FIX(VT_ERROR)));
@@ -5,16 +5,18 @@ VALUE mWIN32OLE_VARIANT;
5
5
  void Init_win32ole_variant_m(void)
6
6
  {
7
7
  /*
8
- * Document-module: WIN32OLE::VARIANT
8
+ * Document-module: WIN32OLE::VariantType
9
9
  *
10
- * The WIN32OLE::VARIANT module includes constants of VARIANT type constants.
11
- * The constants is used when creating WIN32OLE_VARIANT object.
10
+ * The +WIN32OLE::VariantType+ module includes constants of VARIANT type constants.
11
+ * The constants is used when creating WIN32OLE::Variant object.
12
12
  *
13
- * obj = WIN32OLE_VARIANT.new("2e3", WIN32OLE::VARIANT::VT_R4)
13
+ * obj = WIN32OLE::Variant.new("2e3", WIN32OLE::VARIANT::VT_R4)
14
14
  * obj.value # => 2000.0
15
15
  *
16
16
  */
17
- mWIN32OLE_VARIANT = rb_define_module_under(cWIN32OLE, "VARIANT");
17
+ mWIN32OLE_VARIANT = rb_define_module_under(cWIN32OLE, "VariantType");
18
+ /* Alias of WIN32OLE::VariantType, for the backward compatibility */
19
+ rb_define_const(cWIN32OLE, "VARIANT", mWIN32OLE_VARIANT);
18
20
 
19
21
  /*
20
22
  * represents VT_EMPTY type constant.
@@ -1,7 +1,12 @@
1
1
  # frozen_string_literal: false
2
- # OLEProperty
3
- # helper class of Property with arguments.
4
- class OLEProperty
2
+
3
+ class WIN32OLE
4
+ end
5
+
6
+ # OLEProperty is a helper class of Property with arguments, used by
7
+ # `olegen.rb`-generated files.
8
+ class WIN32OLE::Property
9
+ # :stopdoc:
5
10
  def initialize(obj, dispid, gettypes, settypes)
6
11
  @obj = obj
7
12
  @dispid = dispid
@@ -14,4 +19,11 @@ class OLEProperty
14
19
  def []=(*args)
15
20
  @obj._setproperty(@dispid, args, @settypes)
16
21
  end
22
+ # :stopdoc:
23
+ end
24
+
25
+ module WIN32OLE::VariantType
26
+ # Alias for `olegen.rb`-generated files, that should include
27
+ # WIN32OLE::VARIANT.
28
+ OLEProperty = WIN32OLE::Property
17
29
  end
data/lib/win32ole.rb CHANGED
@@ -5,7 +5,6 @@ rescue LoadError
5
5
  end
6
6
 
7
7
  if defined?(WIN32OLE)
8
- # WIN32OLE
9
8
  class WIN32OLE
10
9
 
11
10
  #
@@ -26,7 +25,7 @@ if defined?(WIN32OLE)
26
25
 
27
26
  def ole_methods_safely
28
27
  ole_methods
29
- rescue WIN32OLEQueryInterfaceError
28
+ rescue WIN32OLE::QueryInterfaceError
30
29
  []
31
30
  end
32
31
  end
@@ -70,8 +70,8 @@ class WIN32COMGen
70
70
  end
71
71
  if ts.empty?
72
72
  ts = 'VT_VARIANT'
73
- elsif ts[-1] == ?|
74
- ts += 'VT_VARIANT'
73
+ elsif ts.end_with?(?|)
74
+ ts += 'VT_VARIANT'
75
75
  end
76
76
  ts
77
77
  end
metadata CHANGED
@@ -1,44 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: win32ole
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.9
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaki Suketa
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-05 00:00:00.000000000 Z
11
+ date: 2024-11-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Provides an interface for OLE Automation in Ruby
14
14
  email:
15
15
  - suke@ruby-lang.org
16
16
  executables: []
17
- extensions: []
17
+ extensions:
18
+ - ext/win32ole/extconf.rb
18
19
  extra_rdoc_files: []
19
20
  files:
20
- - ".git-blame-ignore-revs"
21
- - ".github/dependabot.yml"
22
- - ".github/workflows/windows.yml"
23
- - ".gitignore"
24
- - Gemfile
25
- - LICENSE.txt
21
+ - ".document"
22
+ - BSDL
23
+ - COPYING
26
24
  - README.md
27
- - Rakefile
28
- - bin/console
29
- - bin/setup
25
+ - ext/win32ole/.document
30
26
  - ext/win32ole/depend
31
27
  - ext/win32ole/extconf.rb
32
- - ext/win32ole/sample/excel1.rb
33
- - ext/win32ole/sample/excel2.rb
34
- - ext/win32ole/sample/excel3.rb
35
- - ext/win32ole/sample/ie.rb
36
- - ext/win32ole/sample/ieconst.rb
37
- - ext/win32ole/sample/ienavi.rb
38
- - ext/win32ole/sample/ienavi2.rb
39
- - ext/win32ole/sample/oledirs.rb
40
- - ext/win32ole/sample/olegen.rb
41
- - ext/win32ole/sample/xml.rb
42
28
  - ext/win32ole/win32ole.c
43
29
  - ext/win32ole/win32ole.h
44
30
  - ext/win32ole/win32ole_error.c
@@ -63,11 +49,16 @@ files:
63
49
  - ext/win32ole/win32ole_variant_m.h
64
50
  - lib/win32ole.rb
65
51
  - lib/win32ole/property.rb
66
- - rakelib/changelogs.rake
67
- - rakelib/epoch.rake
68
- - rakelib/sync_tool.rake
69
- - rakelib/version.rake
70
- - win32ole.gemspec
52
+ - sample/win32ole/excel1.rb
53
+ - sample/win32ole/excel2.rb
54
+ - sample/win32ole/excel3.rb
55
+ - sample/win32ole/ie.rb
56
+ - sample/win32ole/ieconst.rb
57
+ - sample/win32ole/ienavi.rb
58
+ - sample/win32ole/ienavi2.rb
59
+ - sample/win32ole/oledirs.rb
60
+ - sample/win32ole/olegen.rb
61
+ - sample/win32ole/xml.rb
71
62
  homepage: https://github.com/ruby/win32ole
72
63
  licenses:
73
64
  - Ruby
@@ -75,7 +66,7 @@ licenses:
75
66
  metadata:
76
67
  homepage_uri: https://github.com/ruby/win32ole
77
68
  source_code_uri: https://github.com/ruby/win32ole
78
- post_install_message:
69
+ post_install_message:
79
70
  rdoc_options: []
80
71
  require_paths:
81
72
  - lib
@@ -90,8 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
81
  - !ruby/object:Gem::Version
91
82
  version: '0'
92
83
  requirements: []
93
- rubygems_version: 3.4.0.dev
94
- signing_key:
84
+ rubygems_version: 3.5.11
85
+ signing_key:
95
86
  specification_version: 4
96
87
  summary: Provides an interface for OLE Automation in Ruby
97
88
  test_files: []
@@ -1,7 +0,0 @@
1
- # This is a file used by GitHub to ignore the following commits on `git blame`.
2
- #
3
- # You can also do the same thing in your local repository with:
4
- # $ git config --local blame.ignoreRevsFile .git-blame-ignore-revs
5
-
6
- # Expand tabs
7
- 0667bd63edb6bffeaa59f7ebc3dbe42b82ac496d
@@ -1,6 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: 'github-actions'
4
- directory: '/'
5
- schedule:
6
- interval: 'weekly'
@@ -1,24 +0,0 @@
1
- name: windows
2
-
3
- on: [push, pull_request]
4
-
5
- jobs:
6
- build:
7
- name: ${{ matrix.os }} ${{ matrix.ruby }}
8
- runs-on: ${{ matrix.os }}
9
- strategy:
10
- fail-fast: false
11
- matrix:
12
- os:
13
- - windows-latest
14
- ruby: [ '3.1', '3.0', '2.7', '2.6', 'mswin', 'mingw' ]
15
- steps:
16
- - uses: actions/checkout@v3
17
- - name: Set up Ruby
18
- uses: ruby/setup-ruby@v1
19
- with:
20
- ruby-version: ${{ matrix.ruby }}
21
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
22
- - name: Run test
23
- run: bundle exec rake
24
-
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
data/Gemfile DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in win32ole.gemspec
4
- gemspec
5
-
6
- gem 'rake-compiler'
7
- gem 'test-unit'
data/Rakefile DELETED
@@ -1,19 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- name = "win32ole"
5
-
6
- require 'rake/extensiontask'
7
- extask = Rake::ExtensionTask.new(name) do |x|
8
- x.lib_dir << "/#{RUBY_VERSION}/#{x.platform}"
9
- end
10
- Rake::TestTask.new(:test) do |t|
11
- t.libs << extask.lib_dir
12
- t.libs << "test/lib"
13
- t.libs << "lib"
14
- t.ruby_opts << "-rhelper"
15
- t.test_files = FileList["test/**/test_*.rb"]
16
- end
17
-
18
- task :default => :test
19
- task :test => :compile
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "win32ole"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,34 +0,0 @@
1
- task "build" => "changelogs"
2
-
3
- changelog = proc do |output, ver = nil, prev = nil|
4
- ver &&= Gem::Version.new(ver)
5
- range = [[prev], [ver, "HEAD"]].map {|ver, branch| ver ? "v#{ver.to_s}" : branch}.compact.join("..")
6
- IO.popen(%W[git log --format=fuller --topo-order --no-merges #{range}]) do |log|
7
- line = log.gets
8
- FileUtils.mkpath(File.dirname(output))
9
- File.open(output, "wb") do |f|
10
- f.print "-*- coding: utf-8 -*-\n\n", line
11
- log.each_line do |line|
12
- line.sub!(/^(?!:)(?:Author|Commit)?(?:Date)?: /, ' \&')
13
- line.sub!(/ +$/, '')
14
- f.print(line)
15
- end
16
- end
17
- end
18
- end
19
-
20
- tags = IO.popen(%w[git tag -l v[0-9]*]).grep(/v(.*)/) {$1}
21
- tags.sort_by! {|tag| tag.scan(/\d+/).map(&:to_i)}
22
- tags.inject(nil) do |prev, tag|
23
- task("logs/ChangeLog-#{tag}") {|t| changelog[t.name, tag, prev]}
24
- tag
25
- end
26
-
27
- desc "Make ChangeLog"
28
- task "ChangeLog", [:ver, :prev] do |t, ver: nil, prev: tags.last|
29
- changelog[t.name, ver, prev]
30
- end
31
-
32
- changelogs = ["ChangeLog", *tags.map {|tag| "logs/ChangeLog-#{tag}"}]
33
- task "changelogs" => changelogs
34
- CLOBBER.concat(changelogs) << "logs"
data/rakelib/epoch.rake DELETED
@@ -1,5 +0,0 @@
1
- task "build" => "date_epoch"
2
-
3
- task "date_epoch" do
4
- ENV["SOURCE_DATE_EPOCH"] = IO.popen(%W[git -C #{__dir__} log -1 --format=%ct], &:read).chomp
5
- end
@@ -1,6 +0,0 @@
1
- task :sync_tool do
2
- require 'fileutils'
3
- FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
4
- FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
5
- FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
6
- end