ass_ole-snippets-shared 0.3.1 → 0.3.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.
- checksums.yaml +4 -4
- data/lib/ass_ole/snippets/shared/value_table.rb +44 -5
- data/lib/ass_ole/snippets/shared/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ef8af3522c444ae9dc38adca2ac74a46f6c88a6
|
4
|
+
data.tar.gz: 63163372c91ab83d973249f3f0a152ad70084c4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b17ae1e23d8cd2dce0af0e1d384e9c9a81a19440547ba99cf47e1371cc6ff9fdc6fb5b581f498a379fe8bf2ec0ae1092327fc2dff85c177f04ed5afdbc828e4
|
7
|
+
data.tar.gz: b8ea8240651d0bcd64c463c58490581589bf6ea97d6cfe0d1f1b46e2cfcc4448c08f4ed733091b46913882c7b98eb83e1d19e11c76c35b1188e394ceca9e54fc
|
@@ -15,7 +15,7 @@ module AssOle
|
|
15
15
|
# vt_wrapper.add f1: 0, f2: 1, f3: 2
|
16
16
|
# end # => WIN32OLE
|
17
17
|
#
|
18
|
-
# # Make new ValueTable and insert into 3 rows
|
18
|
+
# # Make new ValueTable without typing of columns and insert into 3 rows
|
19
19
|
# value_table :f1, :f2, :f3 do |vt_wrapper|
|
20
20
|
# 3.times do |r|
|
21
21
|
# vt_wrapper.add do |row|
|
@@ -25,6 +25,17 @@ module AssOle
|
|
25
25
|
# end
|
26
26
|
# end
|
27
27
|
# end # => WIN32OLE
|
28
|
+
#
|
29
|
+
# # Make new ValueTable with typing of columns and insert into 3 rows
|
30
|
+
# value_table f1:%w{String Boolean}, f2:[String, Date], f3:'String,Date' do |vt_wrapper|
|
31
|
+
# 3.times do |r|
|
32
|
+
# vt_wrapper.add do |row|
|
33
|
+
# row.f1 = r
|
34
|
+
# row.f2 = 10 + r
|
35
|
+
# row.f3 = 20 + r
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
# end # => WIN32OLE
|
28
39
|
module ValueTable
|
29
40
|
# Warapper for add rows into +ValueTable+
|
30
41
|
# @api private
|
@@ -55,14 +66,42 @@ module AssOle
|
|
55
66
|
end
|
56
67
|
end
|
57
68
|
|
69
|
+
module Columns
|
70
|
+
def self.make(vtable, columns, columns_with_types, ole_connector)
|
71
|
+
to_columns_with_types(columns).merge(columns_with_types)
|
72
|
+
.each do |col, types|
|
73
|
+
type_desc_ = type_desc(types, ole_connector)
|
74
|
+
vtable.Columns.Add(col.to_s, type_desc_) if type_desc_
|
75
|
+
vtable.Columns.Add(col.to_s) unless type_desc_
|
76
|
+
end
|
77
|
+
vtable.Columns
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.type_desc(types, ole_connector)
|
81
|
+
return unless types
|
82
|
+
types_ = types.clone
|
83
|
+
types_ = types_.split(',') if types.is_a? String
|
84
|
+
ole_connector.newObject('TypeDescription', types_.join(','))
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.to_columns_with_types(columns)
|
88
|
+
r = {}
|
89
|
+
columns.each do |col|
|
90
|
+
r[col.to_sym] = nil
|
91
|
+
end
|
92
|
+
r
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
58
96
|
# @param columns [Array] +ValueTable+ columns
|
97
|
+
# @param columns_with_types [Hash] +ValueTable+ columns with column
|
98
|
+
# type names [Array] like %w{TypeName OtheTypeName}
|
99
|
+
# or [String] like 'TypeName, OtheTypeName'
|
59
100
|
# @yield [Wrapper]
|
60
101
|
# @return [WIN32OLE] 1C +ValueTable+ object
|
61
|
-
def value_table(*columns, &block)
|
102
|
+
def value_table(*columns, **columns_with_types, &block)
|
62
103
|
r = newObject('ValueTable')
|
63
|
-
|
64
|
-
r.Columns.Add(coll.to_s)
|
65
|
-
end
|
104
|
+
Columns.make(r, columns, columns_with_types, ole_connector)
|
66
105
|
r = Wrapper.new(r)
|
67
106
|
yield r if block_given?
|
68
107
|
r.ole
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ass_ole-snippets-shared
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Vlasov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ass_ole
|