win32ole 1.8.9 → 1.9.0

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 (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