skripsi-generator 1.0.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.
- checksums.yaml +7 -0
- data/example/logo.png +0 -0
- data/example/skripsi.rb +33 -0
- data/example/test_webgen.rb +14 -0
- data/extconf.rb +11 -0
- data/include/lokasidef.h +39 -0
- data/include/ntapdef.h +79 -0
- data/include/risetdef.h +598 -0
- data/include/skripsi.h +7 -0
- data/include/temadef.h +129 -0
- data/include/urai.h +36 -0
- data/lib/adaptor/adaptor.rb +104 -0
- data/lib/adaptor/unduh.rb +29 -0
- data/lib/adaptor/web_generate.rb +82 -0
- data/lib/skripsi.rb +13 -0
- data/lib/sks/alat/document.rb +145 -0
- data/lib/sks/alat/font_table.rb +75 -0
- data/lib/sks/alat/numbering.rb +287 -0
- data/lib/sks/alat/prop_app.rb +85 -0
- data/lib/sks/alat/prop_core.rb +38 -0
- data/lib/sks/alat/prop_custom.rb +30 -0
- data/lib/sks/alat/rels.rb +33 -0
- data/lib/sks/alat/rels_document.rb +38 -0
- data/lib/sks/alat/setting.rb +89 -0
- data/lib/sks/alat/style.rb +432 -0
- data/lib/sks/alat/theme.rb +311 -0
- data/lib/sks/alat/web.rb +34 -0
- data/lib/sks/alat.rb +41 -0
- data/lib/sks/dasar.rb +29 -0
- data/lib/sks/footer/dasar.rb +0 -0
- data/lib/sks/header/dasar.rb +0 -0
- data/lib/sks/istimewa/dasar.rb +0 -0
- data/lib/sks/media/dasar.rb +14 -0
- data/lib/sks/paragraph/dasar.rb +114 -0
- data/lib/sks/remote.rb +28 -0
- data/lib/sks/section/dasar.rb +33 -0
- data/lib/sks/sks.rb +65 -0
- data/lib/transformasi/web.rb +34 -0
- data/lib/xml/administrasi.rb +124 -0
- data/lib/xml/builder.rb +269 -0
- data/lib/xml/dasar.rb +17 -0
- data/lib/xml/media.rb +66 -0
- data/lib/xml/paragraph.rb +9 -0
- data/lib/xml/section.rb +84 -0
- data/src/jembatan.c +34 -0
- data/src/sisi.c +1665 -0
- data/src/skripsi.c +77 -0
- data/src/urai.c +70 -0
- metadata +162 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
NUMBERING = {
|
|
5
|
+
MARKUP_COMPAT: :MARKUP_COMPAT_VAL,
|
|
6
|
+
OFFICE: :OFFICE_VAL,
|
|
7
|
+
OFFICE_RELATIONSHIP: :OFFICE_RELATIONSHIP_VAL,
|
|
8
|
+
WORD_MAIN: :WORD_MAIN_VAL,
|
|
9
|
+
VML: :VML_VAL,
|
|
10
|
+
WORDML10: :WORDML10_VAL,
|
|
11
|
+
ATTR_IGNORABLE: :D_NAMES_WORDML10
|
|
12
|
+
}
|
|
13
|
+
NUMBERING_JUMLAH = 1
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module KebutuhanDasar
|
|
17
|
+
def generate_numbering
|
|
18
|
+
inner_generate_numbering
|
|
19
|
+
.catat_administrasi(:LOKASI_WORD_NUMBERING)
|
|
20
|
+
.catat_arsip
|
|
21
|
+
.struktur
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
def inner_generate_numbering
|
|
26
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
27
|
+
xml.numbering(Gudang::NUMBERING) do
|
|
28
|
+
xml.abstractNum(ATTR_ABSTRACT_NUMID: '1') do
|
|
29
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '0') do
|
|
30
|
+
xml.start('w:val' => '1')
|
|
31
|
+
xml.numFmt('w:val' => 'decimal')
|
|
32
|
+
xml.lvlText('w:val' => '%1.')
|
|
33
|
+
xml.lvlJc('w:val' => 'start')
|
|
34
|
+
xml.pPr do
|
|
35
|
+
xml.tabs do
|
|
36
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '720')
|
|
37
|
+
end
|
|
38
|
+
xml.ind(ATTR_START: '720', ATTR_LEVEL_INDENT: '360')
|
|
39
|
+
end
|
|
40
|
+
xml.rPr do
|
|
41
|
+
xml.rFonts(:ATTR_ASCII => :FONT_ROMAN_VAL, 'w:hAnsi' => :FONT_ROMAN_VAL)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '1') do
|
|
45
|
+
xml.start('w:val' => '1')
|
|
46
|
+
xml.numFmt('w:val' => 'decimal')
|
|
47
|
+
xml.lvlText('w:val' => '%2.')
|
|
48
|
+
xml.lvlJc('w:val' => 'start')
|
|
49
|
+
xml.pPr do
|
|
50
|
+
xml.tabs do
|
|
51
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '1080')
|
|
52
|
+
end
|
|
53
|
+
xml.ind(ATTR_START: '1080', ATTR_LEVEL_INDENT: '360')
|
|
54
|
+
end
|
|
55
|
+
xml.rPr
|
|
56
|
+
end
|
|
57
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '2') do
|
|
58
|
+
xml.start('w:val' => '1')
|
|
59
|
+
xml.numFmt('w:val' => 'decimal')
|
|
60
|
+
xml.lvlText('w:val' => '%3.')
|
|
61
|
+
xml.lvlJc('w:val' => 'start')
|
|
62
|
+
xml.pPr do
|
|
63
|
+
xml.tabs do
|
|
64
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '1440')
|
|
65
|
+
end
|
|
66
|
+
xml.ind(ATTR_START: '1440', ATTR_LEVEL_INDENT: '360')
|
|
67
|
+
end
|
|
68
|
+
xml.rPr
|
|
69
|
+
end
|
|
70
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '3') do
|
|
71
|
+
xml.start('w:val' => '1')
|
|
72
|
+
xml.numFmt('w:val' => 'decimal')
|
|
73
|
+
xml.lvlText('w:val' => '%4.')
|
|
74
|
+
xml.lvlJc('w:val' => 'start')
|
|
75
|
+
xml.pPr do
|
|
76
|
+
xml.tabs do
|
|
77
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '1800')
|
|
78
|
+
end
|
|
79
|
+
xml.ind(ATTR_START: '1800', ATTR_LEVEL_INDENT: '360')
|
|
80
|
+
end
|
|
81
|
+
xml.rPr
|
|
82
|
+
end
|
|
83
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '4') do
|
|
84
|
+
xml.start('w:val' => '1')
|
|
85
|
+
xml.numFmt('w:val' => 'decimal')
|
|
86
|
+
xml.lvlText('w:val' => '%5.')
|
|
87
|
+
xml.lvlJc('w:val' => 'start')
|
|
88
|
+
xml.pPr do
|
|
89
|
+
xml.tabs do
|
|
90
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '2160')
|
|
91
|
+
end
|
|
92
|
+
xml.ind(ATTR_START: '2160', ATTR_LEVEL_INDENT: '360')
|
|
93
|
+
end
|
|
94
|
+
xml.rPr
|
|
95
|
+
end
|
|
96
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '5') do
|
|
97
|
+
xml.start('w:val' => '1')
|
|
98
|
+
xml.numFmt('w:val' => 'decimal')
|
|
99
|
+
xml.lvlText('w:val' => '%6.')
|
|
100
|
+
xml.lvlJc('w:val' => 'start')
|
|
101
|
+
xml.pPr do
|
|
102
|
+
xml.tabs do
|
|
103
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '2520')
|
|
104
|
+
end
|
|
105
|
+
xml.ind(ATTR_START: '2520', ATTR_LEVEL_INDENT: '360')
|
|
106
|
+
end
|
|
107
|
+
xml.rPr
|
|
108
|
+
end
|
|
109
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '6') do
|
|
110
|
+
xml.start('w:val' => '1')
|
|
111
|
+
xml.numFmt('w:val' => 'decimal')
|
|
112
|
+
xml.lvlText('w:val' => '%7.')
|
|
113
|
+
xml.lvlJc('w:val' => 'start')
|
|
114
|
+
xml.pPr do
|
|
115
|
+
xml.tabs do
|
|
116
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '2880')
|
|
117
|
+
end
|
|
118
|
+
xml.ind(ATTR_START: '2880', ATTR_LEVEL_INDENT: '360')
|
|
119
|
+
end
|
|
120
|
+
xml.rPr
|
|
121
|
+
end
|
|
122
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '7') do
|
|
123
|
+
xml.start('w:val' => '1')
|
|
124
|
+
xml.numFmt('w:val' => 'decimal')
|
|
125
|
+
xml.lvlText('w:val' => '%8.')
|
|
126
|
+
xml.lvlJc('w:val' => 'start')
|
|
127
|
+
xml.pPr do
|
|
128
|
+
xml.tabs do
|
|
129
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '3240')
|
|
130
|
+
end
|
|
131
|
+
xml.ind(ATTR_START: '3240', ATTR_LEVEL_INDENT: '360')
|
|
132
|
+
end
|
|
133
|
+
xml.rPr
|
|
134
|
+
end
|
|
135
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '8') do
|
|
136
|
+
xml.start('w:val' => '1')
|
|
137
|
+
xml.numFmt('w:val' => 'decimal')
|
|
138
|
+
xml.lvlText('w:val' => '%9.')
|
|
139
|
+
xml.lvlJc('w:val' => 'start')
|
|
140
|
+
xml.pPr do
|
|
141
|
+
xml.tabs do
|
|
142
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '3600')
|
|
143
|
+
end
|
|
144
|
+
xml.ind(ATTR_START: '3600', ATTR_LEVEL_INDENT: '360')
|
|
145
|
+
end
|
|
146
|
+
xml.rPr
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
xml.abstractNum(ATTR_ABSTRACT_NUMID: '2') do
|
|
150
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '0') do
|
|
151
|
+
xml.start('w:val' => '1')
|
|
152
|
+
xml.numFmt('w:val' => 'none')
|
|
153
|
+
xml.suff('w:val' => 'nothing')
|
|
154
|
+
xml.lvlText('w:val' => '')
|
|
155
|
+
xml.lvlJc('w:val' => 'start')
|
|
156
|
+
xml.pPr do
|
|
157
|
+
xml.tabs do
|
|
158
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
159
|
+
end
|
|
160
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '1') do
|
|
164
|
+
xml.start('w:val' => '1')
|
|
165
|
+
xml.numFmt('w:val' => 'none')
|
|
166
|
+
xml.suff('w:val' => 'nothing')
|
|
167
|
+
xml.lvlText('w:val' => '')
|
|
168
|
+
xml.lvlJc('w:val' => 'start')
|
|
169
|
+
xml.pPr do
|
|
170
|
+
xml.tabs do
|
|
171
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
172
|
+
end
|
|
173
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '2') do
|
|
177
|
+
xml.start('w:val' => '1')
|
|
178
|
+
xml.numFmt('w:val' => 'none')
|
|
179
|
+
xml.suff('w:val' => 'nothing')
|
|
180
|
+
xml.lvlText('w:val' => '')
|
|
181
|
+
xml.lvlJc('w:val' => 'start')
|
|
182
|
+
xml.pPr do
|
|
183
|
+
xml.tabs do
|
|
184
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
185
|
+
end
|
|
186
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '3') do
|
|
190
|
+
xml.start('w:val' => '1')
|
|
191
|
+
xml.numFmt('w:val' => 'none')
|
|
192
|
+
xml.suff('w:val' => 'nothing')
|
|
193
|
+
xml.lvlText('w:val' => '')
|
|
194
|
+
xml.lvlJc('w:val' => 'start')
|
|
195
|
+
xml.pPr do
|
|
196
|
+
xml.tabs do
|
|
197
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
198
|
+
end
|
|
199
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '4') do
|
|
203
|
+
xml.start('w:val' => '1')
|
|
204
|
+
xml.numFmt('w:val' => 'none')
|
|
205
|
+
xml.suff('w:val' => 'nothing')
|
|
206
|
+
xml.lvlText('w:val' => '')
|
|
207
|
+
xml.lvlJc('w:val' => 'start')
|
|
208
|
+
xml.pPr do
|
|
209
|
+
xml.tabs do
|
|
210
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
211
|
+
end
|
|
212
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '5') do
|
|
216
|
+
xml.start('w:val' => '1')
|
|
217
|
+
xml.numFmt('w:val' => 'none')
|
|
218
|
+
xml.suff('w:val' => 'nothing')
|
|
219
|
+
xml.lvlText('w:val' => '')
|
|
220
|
+
xml.lvlJc('w:val' => 'start')
|
|
221
|
+
xml.pPr do
|
|
222
|
+
xml.tabs do
|
|
223
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
224
|
+
end
|
|
225
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '6') do
|
|
229
|
+
xml.start('w:val' => '1')
|
|
230
|
+
xml.numFmt('w:val' => 'none')
|
|
231
|
+
xml.suff('w:val' => 'nothing')
|
|
232
|
+
xml.lvlText('w:val' => '')
|
|
233
|
+
xml.lvlJc('w:val' => 'start')
|
|
234
|
+
xml.pPr do
|
|
235
|
+
xml.tabs do
|
|
236
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
237
|
+
end
|
|
238
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '7') do
|
|
242
|
+
xml.start('w:val' => '1')
|
|
243
|
+
xml.numFmt('w:val' => 'none')
|
|
244
|
+
xml.suff('w:val' => 'nothing')
|
|
245
|
+
xml.lvlText('w:val' => '')
|
|
246
|
+
xml.lvlJc('w:val' => 'start')
|
|
247
|
+
xml.pPr do
|
|
248
|
+
xml.tabs do
|
|
249
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
250
|
+
end
|
|
251
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
xml.lvl(ATTR_NUMBERING_LEVEL: '8') do
|
|
255
|
+
xml.start('w:val' => '1')
|
|
256
|
+
xml.numFmt('w:val' => 'none')
|
|
257
|
+
xml.suff('w:val' => 'nothing')
|
|
258
|
+
xml.lvlText('w:val' => '')
|
|
259
|
+
xml.lvlJc('w:val' => 'start')
|
|
260
|
+
xml.pPr do
|
|
261
|
+
xml.tabs do
|
|
262
|
+
xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
|
|
263
|
+
end
|
|
264
|
+
xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
xml.num(ATTR_NUMBERING_ID: '1') do
|
|
269
|
+
xml.abstractNumId('w:val' => '1')
|
|
270
|
+
end
|
|
271
|
+
xml.num(ATTR_NUMBERING_ID: '2') do
|
|
272
|
+
xml.abstractNumId('w:val' => '2')
|
|
273
|
+
end
|
|
274
|
+
Gudang::NUMBERING_JUMLAH.times do |i|
|
|
275
|
+
xml.num(ATTR_NUMBERING_ID: (i + 3).to_s) do
|
|
276
|
+
xml.abstractNumId('w:val' => '1')
|
|
277
|
+
xml.lvlOverride(ATTR_NUMBERING_LEVEL: '0') do
|
|
278
|
+
xml.startOverride('w:val' => '1')
|
|
279
|
+
end
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
PROP_APP = { xmlns: :CUSTOM_PROP_VAL, VT: :VT_VAL }
|
|
5
|
+
PROP_APP_VALUE = {
|
|
6
|
+
TotalTime: '60',
|
|
7
|
+
Pages: '1',
|
|
8
|
+
Words: '1',
|
|
9
|
+
Characters: '1',
|
|
10
|
+
Application: :LABEL_WORD,
|
|
11
|
+
DocSecurity: '0',
|
|
12
|
+
Lines: '1',
|
|
13
|
+
Paragraphs: '1',
|
|
14
|
+
ScaleCrop: :FALSE_VAL,
|
|
15
|
+
HeadingPairs: {
|
|
16
|
+
vector: {
|
|
17
|
+
size: '2',
|
|
18
|
+
baseType: :HEADING_PAIR_VAL,
|
|
19
|
+
body: {
|
|
20
|
+
variant: [ { lpstr: :TEXT_TITLE }, { i4: '1' } ]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
TitlesOfParts: {
|
|
25
|
+
vector: {
|
|
26
|
+
size: '1',
|
|
27
|
+
baseType: :VECTOR_TYPE_VAL,
|
|
28
|
+
body: { lpstr: '' }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
Company: 'Snailight Coorporation',
|
|
32
|
+
LinksUpToDate: :FALSE_VAL,
|
|
33
|
+
CharactersWithSpaces: '1',
|
|
34
|
+
SharedDoc: :FALSE_VAL,
|
|
35
|
+
HyperlinksChanged: :FALSE_VAL,
|
|
36
|
+
AppVersion: '16.0000'
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
module KebutuhanDasar
|
|
41
|
+
def generate_prop_app
|
|
42
|
+
inner_generate_prop_app
|
|
43
|
+
.catat_administrasi(:LOKASI_PROP_APP)
|
|
44
|
+
.catat_arsip
|
|
45
|
+
.struktur
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
def inner_generate_prop_app
|
|
50
|
+
@_prop_app_value_xml = nil
|
|
51
|
+
@_prop_app_value_proses = nil
|
|
52
|
+
proses = proc do |tag, body|
|
|
53
|
+
break if @_prop_app_value_xml.nil?
|
|
54
|
+
break if @_prop_app_value_proses.nil?
|
|
55
|
+
key = body.clone
|
|
56
|
+
if body.is_a?(Hash)
|
|
57
|
+
if key.values.any? { |v| v.is_a?(Hash) }
|
|
58
|
+
key.each do |k, v|
|
|
59
|
+
if v.is_a?(Hash)
|
|
60
|
+
@_prop_app_value_xml.send(k, v)
|
|
61
|
+
key.delete(k)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
else
|
|
65
|
+
subelm = key.fetch(:body) { nil }
|
|
66
|
+
key.delete(:body) unless subelm.nil?
|
|
67
|
+
end
|
|
68
|
+
@_prop_app_value_xml.send(tag, key) do
|
|
69
|
+
subelm.each(&@_prop_app_value_proses) unless subelm.nil?
|
|
70
|
+
end
|
|
71
|
+
else
|
|
72
|
+
@_prop_app_value_xml.send(tag, body)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
@_prop_app_value_proses = proses
|
|
76
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
77
|
+
@_prop_app_value_xml = xml
|
|
78
|
+
xml.Properties(Gudang::PROP_APP) do
|
|
79
|
+
Gudang::PROP_APP_VALUE.each(&proses)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
PROP_CORE = {
|
|
5
|
+
CP: :CP_VAL,
|
|
6
|
+
PURL_ELEMENT: :PURL_ELEMENT_VAL,
|
|
7
|
+
PURL_TERMS: :PURL_TERMS_VAL,
|
|
8
|
+
PURL_DC_MI: :PURL_DC_MI_VAL,
|
|
9
|
+
SCHEMA_INST: :SCHEMA_INST_VAL
|
|
10
|
+
}
|
|
11
|
+
PROP_CORE_XSI = { XSI_TYPE: :XSI_TYPE_VAL }
|
|
12
|
+
PROP_CORE_TIMEFORM = "%Y-%m-%dT%H:%M:%SZ".freeze
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
module KebutuhanDasar
|
|
16
|
+
def generate_prop_core
|
|
17
|
+
inner_generate_prop_core
|
|
18
|
+
.catat_administrasi(:LOKASI_PROP_CORE)
|
|
19
|
+
.catat_arsip
|
|
20
|
+
.struktur
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
def inner_generate_prop_core
|
|
25
|
+
waktu = Time.now.utc.strftime(Gudang::PROP_CORE_TIMEFORM)
|
|
26
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
27
|
+
xml.Properties(Gudang::PROP_CORE) do
|
|
28
|
+
xml.creator(:CREATOR_VAL)
|
|
29
|
+
xml.lastModifiedBy(:MODIFIED_BY_VAL)
|
|
30
|
+
xml.revision('1')
|
|
31
|
+
xml.created(Gudang::PROP_CORE_XSI, waktu)
|
|
32
|
+
xml.modified(Gudang::PROP_CORE_XSI, waktu)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
PROP_CUSTOM = { xmlns: :CUSTOM_PROP_VAL, VT: :VT_VAL }
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
module KebutuhanDasar
|
|
8
|
+
def generate_prop_custom
|
|
9
|
+
inner_generate_prop_custom
|
|
10
|
+
.catat_administrasi(:LOKASI_PROP_CUSTOM)
|
|
11
|
+
.catat_arsip
|
|
12
|
+
.struktur
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
def inner_generate_prop_custom
|
|
17
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
18
|
+
xml.Properties(Gudang::PROP_CUSTOM) do
|
|
19
|
+
xml.property(fmtid: :DOC_ID_VAL, pid: '2', name: :PROP_NAME_VAL) do
|
|
20
|
+
xml.lpwstr('1033-12.2.0.21546')
|
|
21
|
+
end
|
|
22
|
+
xml.property(fmtid: :DOC_ID_VAL, pid: '3', name: :PROP_NAME2_VAL) do
|
|
23
|
+
xml.lpwstr(:TEXT_MEDIA)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
RELS_NS = { xmlns: :PACKAGE_RELATIONSHIP_VAL }
|
|
5
|
+
RELS_KONTEN = {
|
|
6
|
+
'rId1' => { Type: :PACKAGE_RELATIONSHIP_META_CORE_VAL, Target: :LOKASI_PROP_CORE },
|
|
7
|
+
'rId2' => { Type: :OFFICE_RELATIONSHIP_EXTENDED_VAL, Target: :LOKASI_PROP_APP },
|
|
8
|
+
'rId3' => { Type: :OFFICE_RELATIONSHIP_CUSTOM_VAL, Target: :LOKASI_PROP_CUSTOM },
|
|
9
|
+
'rId4' => { Type: :OFFICE_RELATIONSHIP_OFFICE_VAL, Target: :LOKASI_WORD_DOCUMENT }
|
|
10
|
+
}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module KebutuhanDasar
|
|
14
|
+
def generate_rels
|
|
15
|
+
inner_generate_rels
|
|
16
|
+
.catat_administrasi(:LOKASI_RELS)
|
|
17
|
+
.catat_arsip
|
|
18
|
+
.struktur
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
def inner_generate_rels
|
|
23
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
24
|
+
xml.Relationships(Gudang::RELS_NS) do
|
|
25
|
+
Gudang::RELS_KONTEN.each do |k, v|
|
|
26
|
+
xml.Relationship(Id: k, **v)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
RELS_DOCUMENT_NS = { xmlns: :PACKAGE_RELATIONSHIP_VAL }
|
|
5
|
+
RELS_DOCUMENT_KONTEN = {
|
|
6
|
+
'rId1' => { Type: :OFFICE_RELATIONSHIP_STYLE_VAL, Target: :LOKASI_STYLES },
|
|
7
|
+
'rId2' => { Type: :OFFICE_RELATIONSHIP_NUMBER_VAL, Target: :LOKASI_WORD_NUMBERING },
|
|
8
|
+
'rId3' => { Type: :OFFICE_RELATIONSHIP_FONT_VAL, Target: :LOKASI_FONT_TABLE },
|
|
9
|
+
'rId4' => { Type: :OFFICE_RELATIONSHIP_SETTING_VAL, Target: :LOKASI_SETTINGS },
|
|
10
|
+
'rId5' => { Type: :OFFICE_RELATIONSHIP_THEME_VAL, Target: :LOKASI_THEME_THEME1 },
|
|
11
|
+
'rId6' => { Type: :OFFICE_RELATIONSHIP_WEB_VAL, Target: :LOKASI_WEB_SETTINGS },
|
|
12
|
+
'rId7' => { Type: :PURL_HEADER, Target: :LOKASI_PAGE_NUMBER },
|
|
13
|
+
'rId8' => { Type: :PURL_FOOTER, Target: :LOKASI_FIRST_PAGE },
|
|
14
|
+
'rId9' => { Type: :PURL_FOOTER, Target: :LOKASI_ROMAWI }
|
|
15
|
+
}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module KebutuhanDasar
|
|
19
|
+
def generate_rels_document
|
|
20
|
+
inner_generate_rels_document
|
|
21
|
+
.catat_administrasi(:LOKASI_WORD_RELS_DOCUMENT_RELS)
|
|
22
|
+
.catat_arsip
|
|
23
|
+
.struktur
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
def inner_generate_rels_document
|
|
28
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
29
|
+
xml.Relationships(Gudang::RELS_DOCUMENT_NS) do
|
|
30
|
+
Gudang::RELS_DOCUMENT_KONTEN.each do |k, v|
|
|
31
|
+
xml.Relationship(Id: k, **v)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
module SistemKebut
|
|
2
|
+
module Peralatan
|
|
3
|
+
module Gudang
|
|
4
|
+
SETTING = {
|
|
5
|
+
MARKUP_COMPAT: :MARKUP_COMPAT_VAL,
|
|
6
|
+
OFFICE_RELATIONSHIP: :OFFICE_RELATIONSHIP_VAL,
|
|
7
|
+
OFFICE: :OFFICE_VAL,
|
|
8
|
+
MATH: :MATH_VAL,
|
|
9
|
+
VML: :VML_VAL,
|
|
10
|
+
OFFICE_WORD: :OFFICE_WORD_VAL,
|
|
11
|
+
WORD_MAIN: :WORD_MAIN_VAL,
|
|
12
|
+
WORDML10: :WORDML10_VAL,
|
|
13
|
+
WORDML12: :WORDML12_VAL,
|
|
14
|
+
SCHEMA_INST: :SCHEMA_INST_VAL,
|
|
15
|
+
ATTR_IGNORABLE: :ATTR_IGNORABLE_VAL
|
|
16
|
+
}
|
|
17
|
+
SETTING_CLRSCHM = {
|
|
18
|
+
ATTR_SCHEMA_BACKGROUND1: :SCHEMA_BACKGROUND1_VAL,
|
|
19
|
+
ATTR_SCHEMA_TEXT1: :SCHEMA_TEXT1_VAL,
|
|
20
|
+
ATTR_SCHEMA_BACKGROUND2: :SCHEMA_BACKGROUND2_VAL,
|
|
21
|
+
ATTR_SCHEMA_TEXT2: :SCHEMA_TEXT2_VAL,
|
|
22
|
+
ATTR_SCHEMA_ACCENT1: :SCHEMA_ACCENT1_VAL,
|
|
23
|
+
ATTR_SCHEMA_ACCENT2: :SCHEMA_ACCENT2_VAL,
|
|
24
|
+
ATTR_SCHEMA_ACCENT3: :SCHEMA_ACCENT3_VAL,
|
|
25
|
+
ATTR_SCHEMA_ACCENT4: :SCHEMA_ACCENT4_VAL,
|
|
26
|
+
ATTR_SCHEMA_ACCENT5: :SCHEMA_ACCENT5_VAL,
|
|
27
|
+
ATTR_SCHEMA_ACCENT6: :SCHEMA_ACCENT6_VAL,
|
|
28
|
+
ATTR_SCHEMA_HYPERLINK: :SCHEMA_HYPERLINK_VAL,
|
|
29
|
+
ATTR_SCHEMA_FOLHYPERLINK: :SCHEMA_FOLHYPERLINK_VAL
|
|
30
|
+
}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
module KebutuhanDasar
|
|
34
|
+
def generate_setting
|
|
35
|
+
inner_generate_setting
|
|
36
|
+
.catat_administrasi(:LOKASI_WORD_SETTINGS)
|
|
37
|
+
.catat_arsip
|
|
38
|
+
.struktur
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
private
|
|
42
|
+
def inner_generate_setting
|
|
43
|
+
SistemKebut::XML::Builder.new do |xml|
|
|
44
|
+
xml.settings(Gudang::SETTING) do
|
|
45
|
+
xml.zoom(ATTR_ZOOM: '80')
|
|
46
|
+
xml.defaultTabStop('w:val' => '720')
|
|
47
|
+
xml.characterSpacingControl('w:val' => :CHARACTER_SPACING_VAL)
|
|
48
|
+
xml.compat do
|
|
49
|
+
xml.compatSetting(ATTR_NAME: :COMPAT_MODE_VAL, ATTR_URI: :MICROSOFT_WORD, 'w:val' => '15')
|
|
50
|
+
xml.compatSetting(ATTR_NAME: :COMPAT_OVERRIDE_VAL, ATTR_URI: :MICROSOFT_WORD, 'w:val' => '1')
|
|
51
|
+
xml.compatSetting(ATTR_NAME: :COMPAT_MIRROR_VAL, ATTR_URI: :MICROSOFT_WORD, 'w:val' => '1')
|
|
52
|
+
xml.compatSetting(ATTR_NAME: :COMPAT_MULTIROW_HEADER_VAL, ATTR_URI: :MICROSOFT_WORD, 'w:val' => '1')
|
|
53
|
+
end
|
|
54
|
+
xml.rsids do
|
|
55
|
+
xml.rsidRoot('w:val' => :RSID_ROOT_VAL)
|
|
56
|
+
xml.rsid('w:val' => :RSID_VAL)
|
|
57
|
+
xml.rsid('w:val' => :RSID_ROOT_VAL)
|
|
58
|
+
end
|
|
59
|
+
xml.mathPr do
|
|
60
|
+
xml.mathFont(ATTR_MATHPR_MATH: :CAMBRIA_VAL)
|
|
61
|
+
xml.brkBin(ATTR_MATHPR_MATH: :MATHPR_BREAK_VAL)
|
|
62
|
+
xml.brkBinSub(ATTR_MATHPR_MATH: :MATHPR_SUB_BREAK_VAL)
|
|
63
|
+
xml.smallFrac(ATTR_MATHPR_MATH: '0')
|
|
64
|
+
xml.dispDef
|
|
65
|
+
xml.lMargin(ATTR_MATHPR_MATH: '0')
|
|
66
|
+
xml.rMargin(ATTR_MATHPR_MATH: '0')
|
|
67
|
+
xml.defJc(ATTR_MATHPR_MATH: :MATHPR_JCDEF_VAL)
|
|
68
|
+
xml.wrapIndent(ATTR_MATHPR_MATH: '1440')
|
|
69
|
+
xml.intLim(ATTR_MATHPR_MATH: :MATHPR_LIMIT1_VAL)
|
|
70
|
+
xml.naryLim(ATTR_MATHPR_MATH: :MATHPR_LIMIT2_VAL)
|
|
71
|
+
end
|
|
72
|
+
xml.themeFontLang('w:val' => :THEME_FONT_EN_US, ATTR_BIDI: :THEME_FONT_AR_SA)
|
|
73
|
+
xml.clrSchemeMapping(Gudang::SETTING_CLRSCHM)
|
|
74
|
+
xml.shapeDefaults do
|
|
75
|
+
xml.shapedefaults(ATTR_SHAPE_EXT: :SHAPE_EDIT_VAL, SHAPE_SPIDMAX_VAL: '1026')
|
|
76
|
+
xml.shapelayout(ATTR_SHAPE_EXT: :SHAPE_EDIT_VAL) do
|
|
77
|
+
xml.idmap(ATTR_SHAPE_EXT: :SHAPE_EDIT_VAL, SHAPE_DATA_VAL: '1')
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
xml.decimalSymbol('w:val' => :SYMBOL_DECIMAL)
|
|
81
|
+
xml.listSeparator('w:val' => :SYMBOL_LIST_SEP)
|
|
82
|
+
xml.chartTrackingRefBased
|
|
83
|
+
xml.docId(ATTR_DOCID: :DOCID_VAL)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|