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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/example/logo.png +0 -0
  3. data/example/skripsi.rb +33 -0
  4. data/example/test_webgen.rb +14 -0
  5. data/extconf.rb +11 -0
  6. data/include/lokasidef.h +39 -0
  7. data/include/ntapdef.h +79 -0
  8. data/include/risetdef.h +598 -0
  9. data/include/skripsi.h +7 -0
  10. data/include/temadef.h +129 -0
  11. data/include/urai.h +36 -0
  12. data/lib/adaptor/adaptor.rb +104 -0
  13. data/lib/adaptor/unduh.rb +29 -0
  14. data/lib/adaptor/web_generate.rb +82 -0
  15. data/lib/skripsi.rb +13 -0
  16. data/lib/sks/alat/document.rb +145 -0
  17. data/lib/sks/alat/font_table.rb +75 -0
  18. data/lib/sks/alat/numbering.rb +287 -0
  19. data/lib/sks/alat/prop_app.rb +85 -0
  20. data/lib/sks/alat/prop_core.rb +38 -0
  21. data/lib/sks/alat/prop_custom.rb +30 -0
  22. data/lib/sks/alat/rels.rb +33 -0
  23. data/lib/sks/alat/rels_document.rb +38 -0
  24. data/lib/sks/alat/setting.rb +89 -0
  25. data/lib/sks/alat/style.rb +432 -0
  26. data/lib/sks/alat/theme.rb +311 -0
  27. data/lib/sks/alat/web.rb +34 -0
  28. data/lib/sks/alat.rb +41 -0
  29. data/lib/sks/dasar.rb +29 -0
  30. data/lib/sks/footer/dasar.rb +0 -0
  31. data/lib/sks/header/dasar.rb +0 -0
  32. data/lib/sks/istimewa/dasar.rb +0 -0
  33. data/lib/sks/media/dasar.rb +14 -0
  34. data/lib/sks/paragraph/dasar.rb +114 -0
  35. data/lib/sks/remote.rb +28 -0
  36. data/lib/sks/section/dasar.rb +33 -0
  37. data/lib/sks/sks.rb +65 -0
  38. data/lib/transformasi/web.rb +34 -0
  39. data/lib/xml/administrasi.rb +124 -0
  40. data/lib/xml/builder.rb +269 -0
  41. data/lib/xml/dasar.rb +17 -0
  42. data/lib/xml/media.rb +66 -0
  43. data/lib/xml/paragraph.rb +9 -0
  44. data/lib/xml/section.rb +84 -0
  45. data/src/jembatan.c +34 -0
  46. data/src/sisi.c +1665 -0
  47. data/src/skripsi.c +77 -0
  48. data/src/urai.c +70 -0
  49. metadata +162 -0
@@ -0,0 +1,311 @@
1
+ module SistemKebut
2
+ module Peralatan
3
+ module Gudang
4
+ THEME = {
5
+ DRAWING_MAIN: :DRAWING_MAIN_VAL,
6
+ OFFICE_RELATIONSHIP: :OFFICE_RELATIONSHIP_VAL
7
+ }
8
+ end
9
+
10
+ module KebutuhanDasar
11
+ def generate_theme
12
+ inner_generate_theme
13
+ .catat_administrasi(:LOKASI_WORD_TEMA)
14
+ .catat_arsip
15
+ .struktur
16
+ end
17
+
18
+ private
19
+ def inner_generate_theme
20
+ SistemKebut::XML::Builder.new do |xml|
21
+ xml.theme(Gudang::THEME, name: :OFFICE_VAL) do
22
+ xml.themeElements do
23
+ inner_theme_elements(xml)
24
+ end
25
+ xml.objectDefaults
26
+ xml.extraClrSchemeLst
27
+ end
28
+ end
29
+ end
30
+
31
+ def inner_theme_elements(xml)
32
+ xml.clrScheme(name: :OFFICE_VAL) do
33
+ xml.dk1 do
34
+ xml.sysClr(val: :WINDOW_TEXT, lastClr: :FIXNUM_ZERO)
35
+ end
36
+ xml.lt1 do
37
+ xml.sysClr(val: :THEME_WINDOW, lastClr: :FIXNUM_ONE)
38
+ end
39
+ xml.dk2 do
40
+ xml.srgbClr(val: :DK2)
41
+ end
42
+ xml.lt2 do
43
+ xml.srgbClr(val: :LT2)
44
+ end
45
+ xml.accent1 do
46
+ xml.srgbClr(val: :ACCENT1)
47
+ end
48
+ xml.accent2 do
49
+ xml.srgbClr(val: :ACCENT2)
50
+ end
51
+ xml.accent3 do
52
+ xml.srgbClr(val: :ACCENT3)
53
+ end
54
+ xml.accent4 do
55
+ xml.srgbClr(val: :ACCENT4)
56
+ end
57
+ xml.accent5 do
58
+ xml.srgbClr(val: :ACCENT5)
59
+ end
60
+ xml.accent6 do
61
+ xml.srgbClr(val: :ACCENT6)
62
+ end
63
+ xml.hlink do
64
+ xml.srgbClr(val: :HIGHLIGHT_LINK)
65
+ end
66
+ xml.folHlink do
67
+ xml.srgbClr(val: :FOLLOW_LINK)
68
+ end
69
+ end
70
+ xml.fontScheme(name: :OFFICE_VAL) do
71
+ xml.majorFont do
72
+ xml.latin(typeface: :CAMBRIA)
73
+ xml.ea(typeface: '')
74
+ xml.cs(typeface: '')
75
+ xml.font(script: :JAPAN, typeface: :JAPAN_MAJOR_VAL)
76
+ xml.font(script: :HONGKONG, typeface: :HONGKONG_VAL)
77
+ xml.font(script: :HAN, typeface: :HAN_VAL)
78
+ xml.font(script: :HANT, typeface: :HANT_VAL)
79
+ xml.font(script: :ARAB, typeface: :ROMAN_VAL)
80
+ xml.font(script: :HEBR, typeface: :ROMAN_VAL)
81
+ xml.font(script: :THAI, typeface: :ANGSANA_VAL)
82
+ xml.font(script: :ETHI, typeface: :NYALA_VAL)
83
+ xml.font(script: :BENG, typeface: :VRINDA_VAL)
84
+ xml.font(script: :GUJARAT, typeface: :SHRUTI_VAL)
85
+ xml.font(script: :KHEMR, typeface: :MOOL_VAL)
86
+ xml.font(script: :KANDA, typeface: :TUNGA_VAL)
87
+ xml.font(script: :GURU, typeface: :RAAVI_VAL)
88
+ xml.font(script: :CANS, typeface: :EUPHEMIA_VAL)
89
+ xml.font(script: :CHER, typeface: :PLANTAGENET_VAL)
90
+ xml.font(script: :YIII, typeface: :YIII_BAITI_VAL)
91
+ xml.font(script: :TIBET, typeface: :HIMALAYA_VAL)
92
+ xml.font(script: :THAA, typeface: :BOLI_VAL)
93
+ xml.font(script: :DEVA, typeface: :MANGAL_VAL)
94
+ xml.font(script: :TELU, typeface: :GAUTAMI_VAL)
95
+ xml.font(script: :TAML, typeface: :LATHA_VAL)
96
+ xml.font(script: :SYRC, typeface: :EDESSA_VAL)
97
+ xml.font(script: :ORYA, typeface: :KALINGGA_VAL)
98
+ xml.font(script: :MLYM, typeface: :KARTIKA_VAL)
99
+ xml.font(script: :LAOO, typeface: :CHAMPA_VAL)
100
+ xml.font(script: :SINH, typeface: :ISKOOLA_VAL)
101
+ xml.font(script: :MONGO, typeface: :BAITI_VAL)
102
+ xml.font(script: :VIET, typeface: :ROMAN_VAL)
103
+ xml.font(script: :UIGHUR, typeface: :MICROSOFT_UIGHUR_VAL)
104
+ xml.font(script: :GEORGIA, typeface: :SYLFAEN_VAL)
105
+ end
106
+ xml.minorFont do
107
+ xml.latin(typeface: :CALIBRI)
108
+ xml.ea(typeface: '')
109
+ xml.cs(typeface: '')
110
+ xml.font(script: :JAPAN, typeface: :JAPAN_MINOR_VAL)
111
+ xml.font(script: :HONGKONG, typeface: :HONGKONG_VAL)
112
+ xml.font(script: :HAN, typeface: :HAN_VAL)
113
+ xml.font(script: :HANT, typeface: :HANT_VAL)
114
+ xml.font(script: :ARAB, typeface: :ARIAL)
115
+ xml.font(script: :HEBR, typeface: :ARIAL)
116
+ xml.font(script: :THAI, typeface: :CORDIA)
117
+ xml.font(script: :ETHI, typeface: :NYALA_VAL)
118
+ xml.font(script: :BENG, typeface: :VRINDA_VAL)
119
+ xml.font(script: :GUJARAT, typeface: :SHRUTI_VAL)
120
+ xml.font(script: :KHEMR, typeface: :DAUN_PENH)
121
+ xml.font(script: :KANDA, typeface: :TUNGA_VAL)
122
+ xml.font(script: :GURU, typeface: :RAAVI_VAL)
123
+ xml.font(script: :CANS, typeface: :EUPHEMIA_VAL)
124
+ xml.font(script: :CHER, typeface: :PLANTAGENET_VAL)
125
+ xml.font(script: :YIII, typeface: :YIII_BAITI_VAL)
126
+ xml.font(script: :TIBET, typeface: :HIMALAYA_VAL)
127
+ xml.font(script: :THAA, typeface: :BOLI_VAL)
128
+ xml.font(script: :DEVA, typeface: :MANGAL_VAL)
129
+ xml.font(script: :TELU, typeface: :GAUTAMI_VAL)
130
+ xml.font(script: :TAML, typeface: :LATHA_VAL)
131
+ xml.font(script: :SYRC, typeface: :EDESSA_VAL)
132
+ xml.font(script: :ORYA, typeface: :KALINGGA_VAL)
133
+ xml.font(script: :MLYM, typeface: :KARTIKA_VAL)
134
+ xml.font(script: :LAOO, typeface: :CHAMPA_VAL)
135
+ xml.font(script: :SINH, typeface: :ISKOOLA_VAL)
136
+ xml.font(script: :MONGO, typeface: :BAITI_VAL)
137
+ xml.font(script: :VIET, typeface: :ARIAL)
138
+ xml.font(script: :UIGHUR, typeface: :MICROSOFT_UIGHUR_VAL)
139
+ xml.font(script: :GEORGIA, typeface: :SYLFAEN_VAL)
140
+ end
141
+ end
142
+ xml.fmtScheme(name: :OFFICE_VAL) do
143
+ xml.fillStyleLst do
144
+ xml.solidFill do
145
+ xml.schemeClr(val: :THEME_SCHEME)
146
+ end
147
+ xml.gradFill(rotWithShape: :DECIMAL_ONE_VAL) do
148
+ xml.gsLst do
149
+ xml.gs(pos: :DECIMAL_ZERO_VAL) do
150
+ xml.schemeClr(val: :THEME_SCHEME) do
151
+ xml.tint(val: :DECIMAL_FIFTY_VAL)
152
+ xml.satMod(val: :DECIMAL_THREE_HUNDRED_VAL)
153
+ end
154
+ end
155
+ xml.gs(pos: :DECIMAL_THREE_FIVE_VAL) do
156
+ xml.schemeClr(val: :THEME_SCHEME) do
157
+ xml.tint(val: :DECIMAL_THREE_SEVEN_VAL)
158
+ xml.satMod(val: :DECIMAL_THREE_HUNDRED_VAL)
159
+ end
160
+ end
161
+ xml.gs(pos: :DECIMAL_ONE_HUNDRED_VAL) do
162
+ xml.schemeClr(val: :THEME_SCHEME) do
163
+ xml.tint(val: :DECIMAL_FIFTEEN_VAL)
164
+ xml.satMod(val: :DECIMAL_THREE_FIVE_ZERO_VAL)
165
+ end
166
+ end
167
+ end
168
+ xml.lin(ang: :DECIMAL_ONE_SIX_TWO_VAL, scaled: :DECIMAL_ONE_VAL)
169
+ end
170
+ xml.gradFill(rotWithShape: :DECIMAL_ONE_VAL) do
171
+ xml.gsLst do
172
+ xml.gs(pos: :DECIMAL_ZERO_VAL) do
173
+ xml.schemeClr(val: :THEME_SCHEME) do
174
+ xml.shade(val: :DECIMAL_FIFTY_ONE_VAL)
175
+ xml.satMod(val: :DECIMAL_ONE_THREE_ZERO_VAL)
176
+ end
177
+ end
178
+ xml.gs(pos: :DECIMAL_EIGHTY_VAL) do
179
+ xml.schemeClr(val: :THEME_SCHEME) do
180
+ xml.shade(val: :DECIMAL_NINTY_THREE_VAL)
181
+ xml.satMod(val: :DECIMAL_ONE_THREE_ZERO_VAL)
182
+ end
183
+ end
184
+ xml.gs(pos: :DECIMAL_ONE_HUNDRED_VAL) do
185
+ xml.schemeClr(val: :THEME_SCHEME) do
186
+ xml.shade(val: :DECIMAL_NINTY_FOUR_VAL)
187
+ xml.satMod(val: :DECIMAL_ONE_THREE_FIVE_VAL)
188
+ end
189
+ end
190
+ end
191
+ xml.lin(ang: :DECIMAL_ONE_SIX_TWO_VAL, scaled: :DECIMAL_ZERO_VAL)
192
+ end
193
+ end
194
+ xml.lnStyleLst do
195
+ xml.ln(w: :DECIMAL_NINE_TWO_VAL, cap: 'flat', cmpd: 'sng', algn: :LIST_CENTER) do
196
+ xml.solidFill do
197
+ xml.schemeClr(val: :THEME_SCHEME) do
198
+ xml.shade(val: :DECIMAL_NINTY_FIVE_VAL)
199
+ xml.satMod(val: :DECIMAL_ONE_HUNDRED_FIVE_VAL)
200
+ end
201
+ end
202
+ xml.prstDash(val: :LIST_SOLID)
203
+ end
204
+ xml.ln(w: :DECIMAL_TWO_FIVE_FOUR_VAL, cap: 'flat', cmpd: 'sng', algn: :LIST_CENTER) do
205
+ xml.solidFill do
206
+ xml.schemeClr(val: :THEME_SCHEME)
207
+ end
208
+ xml.prstDash(val: :LIST_SOLID)
209
+ end
210
+ xml.ln(w: :DECIMAL_THREE_EIGHT_ONE_VAL, cap: 'flat', cmpd: 'sng', algn: :LIST_CENTER) do
211
+ xml.solidFill do
212
+ xml.schemeClr(val: :THEME_SCHEME)
213
+ end
214
+ xml.prstDash(val: :LIST_SOLID)
215
+ end
216
+ end
217
+ xml.effectStyleLst do
218
+ xml.effectStyle do
219
+ xml.effectLst do
220
+ xml.outerShdw(blurRad: :DECIMAL_FOURTY_VAL, dist: '20000', dir: '5400000', rotWithShape: :DECIMAL_ZERO_VAL) do
221
+ xml.srgbClr(val: :FIXNUM_ZERO) do
222
+ xml.alpha(val: :DECIMAL_THIRTY_EIGHT_VAL)
223
+ end
224
+ end
225
+ end
226
+ end
227
+ xml.effectStyle do
228
+ xml.effectLst do
229
+ xml.outerShdw(blurRad: :DECIMAL_FOURTY_VAL, dist: '23000', dir: '5400000', rotWithShape: :DECIMAL_ZERO_VAL) do
230
+ xml.srgbClr(val: :FIXNUM_ZERO) do
231
+ xml.alpha(val: :DECIMAL_THREE_FIVE_VAL)
232
+ end
233
+ end
234
+ end
235
+ end
236
+ xml.effectStyle do
237
+ xml.effectLst do
238
+ xml.outerShdw(blurRad: :DECIMAL_FOURTY_VAL, dist: '23000', dir: '5400000', rotWithShape: :DECIMAL_ZERO_VAL) do
239
+ xml.srgbClr(val: :FIXNUM_ZERO) do
240
+ xml.alpha(val: :DECIMAL_THREE_FIVE_VAL)
241
+ end
242
+ end
243
+ end
244
+ xml.scene3d do
245
+ xml.camera(prst: :EFFECT_ORTHO) do
246
+ xml.rot(lat: :DECIMAL_ZERO_VAL, lon: :DECIMAL_ZERO_VAL, rev: :DECIMAL_ZERO_VAL)
247
+ end
248
+ xml.lightRg(rig: :EFFECT_THREE_POINT, dir: :EFFECT_DIRECTION) do
249
+ xml.rot(lat: :DECIMAL_ZERO_VAL, lon: :DECIMAL_ZERO_VAL, rev: :DECIMAL_ONE_TWO_VAL)
250
+ end
251
+ end
252
+ xml.sp3d do
253
+ xml.bevelT(w: :DECIMAL_SIX_THREE_FIVE_VAL, h: :DECIMAL_TWO_FIVE_FOUR_VAL)
254
+ end
255
+ end
256
+ end
257
+ xml.bgFillStyleLst do
258
+ xml.solidFill do
259
+ xml.schemeClr(val: :THEME_SCHEME)
260
+ end
261
+ xml.gradFill(rotWithShape: :DECIMAL_ONE_VAL) do
262
+ xml.gsLst do
263
+ xml.gs(pos: :DECIMAL_ZERO_VAL) do
264
+ xml.schemeClr(val: :THEME_SCHEME) do
265
+ xml.tint(val: :DECIMAL_FOURTY_VAL)
266
+ xml.satMod(val: '350000')
267
+ end
268
+ end
269
+ xml.gs(pos: :DECIMAL_FOURTY_VAL) do
270
+ xml.schemeClr(val: :THEME_SCHEME) do
271
+ xml.tint(val: :DECIMAL_FORTY_FIVE_VAL)
272
+ xml.shade(val: :DECIMAL_NINTY_NINE_VAL)
273
+ xml.satMod(val: :DECIMAL_THREE_FIVE_ZERO_VAL)
274
+ end
275
+ end
276
+ xml.gs(pos: :DECIMAL_ONE_HUNDRED_VAL) do
277
+ xml.schemeClr(val: :THEME_SCHEME) do
278
+ xml.shade(val: :DECIMAL_TWENTY_VAL)
279
+ xml.satMod(val: :DECIMAL_TWO_FIVE_FIVE_VAL)
280
+ end
281
+ end
282
+ end
283
+ xml.path(path: :EFFECT_LIST_SVG) do
284
+ xml.fillToRect(l: :DECIMAL_FIFTY_VAL, t: '-80000', r: :DECIMAL_FIFTY_VAL, b: :DECIMAL_ONE_EIGHT_VAL)
285
+ end
286
+ end
287
+ xml.gradFill(rotWithShape: :DECIMAL_ONE_VAL) do
288
+ xml.gsLst do
289
+ xml.gs(pos: :DECIMAL_ZERO_VAL) do
290
+ xml.schemeClr(val: :THEME_SCHEME) do
291
+ xml.shade(val: :DECIMAL_EIGHTY_VAL)
292
+ xml.satMod(val: :DECIMAL_THREE_HUNDRED_VAL)
293
+ end
294
+ end
295
+ xml.gs(pos: :DECIMAL_ONE_HUNDRED_VAL) do
296
+ xml.schemeClr(val: :THEME_SCHEME) do
297
+ xml.shade(val: :DECIMAL_THIRTY_VAL)
298
+ xml.satMod(val: :DECIMAL_TWO_HUNDRED_VAL)
299
+ end
300
+ end
301
+ end
302
+ xml.path(path: :EFFECT_LIST_SVG) do
303
+ xml.fillToRect(l: :DECIMAL_FIFTY_VAL, t: :DECIMAL_FIFTY_VAL, r: :DECIMAL_FIFTY_VAL, b: :DECIMAL_FIFTY_VAL)
304
+ end
305
+ end
306
+ end
307
+ end
308
+ end
309
+ end
310
+ end
311
+ end
@@ -0,0 +1,34 @@
1
+ module SistemKebut
2
+ module Peralatan
3
+ module Gudang
4
+ WEB = {
5
+ MARKUP_COMPAT: :MARKUP_COMPAT_VAL,
6
+ OFFICE_RELATIONSHIP: :OFFICE_RELATIONSHIP_VAL,
7
+ WORD_MAIN: :WORD_MAIN_VAL,
8
+ PURL_DC_MI: :PURL_DC_MI_VAL,
9
+ WORDML10: :WORDML10_VAL,
10
+ WORDML12: :WORDML12_VAL,
11
+ ATTR_IGNORABLE: :ATTR_IGNORABLE_VAL
12
+ }
13
+ end
14
+
15
+ module KebutuhanDasar
16
+ def generate_web
17
+ inner_generate_web
18
+ .catat_administrasi(:LOKASI_WORD_WEB_SETTINGS)
19
+ .catat_arsip
20
+ .struktur
21
+ end
22
+
23
+ private
24
+ def inner_generate_web
25
+ SistemKebut::XML::Builder.new do |xml|
26
+ xml.webSettings(Gudang::WEB) do
27
+ xml.optimizeForBrowser
28
+ xml.allowPNG
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
data/lib/sks/alat.rb ADDED
@@ -0,0 +1,41 @@
1
+ module SistemKebut
2
+ module Peralatan
3
+ module Gudang
4
+ CT_NS = { xmlns: :PACKAGE_CONTENT_VAL }
5
+ end
6
+
7
+ module RemoteSistem
8
+ def _t(jenis)
9
+ SistemKebut::Remote.terjemah(jenis)
10
+ end
11
+ end
12
+
13
+ module KebutuhanDasar
14
+ def generate_content_types
15
+ inner_generate_content_types
16
+ .catat_administrasi(:LOKASI_CONTENT_TYPES)
17
+ .catat_arsip
18
+ .struktur
19
+ end
20
+
21
+ private
22
+ def inner_generate_content_types
23
+ SistemKebut::XML::Builder.new do |xml|
24
+ xml.Types(Gudang::CT_NS) do
25
+ xml.Default(ATTR_EXTENSION: :EXTENSION_RELS_VAL, ATTR_CONTENT_TYPE: :CT_VND_PACKAGE_RELATIONSHIP)
26
+ xml.Default(ATTR_EXTENSION: :EXTENSION_XML_VAL, ATTR_CONTENT_TYPE: :CT_XML)
27
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_DOCUMENT_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_DOCUMENT)
28
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_NUMBERING_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_NUMBER)
29
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_STYLES_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_STYLE)
30
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_SETTINGS_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_SETTING)
31
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_WEB_SETTINGS_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_WEB)
32
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_FONT_TABLE_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_FONT)
33
+ xml.Override(ATTR_PARTNAME: :LOKASI_WORD_THEME_THEME_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_THEME)
34
+ xml.Override(ATTR_PARTNAME: :LOKASI_PROP_CORE_ROOT, ATTR_CONTENT_TYPE: :CT_VND_PACKAGE_CORE)
35
+ xml.Override(ATTR_PARTNAME: :LOKASI_PROP_APP_ROOT, ATTR_CONTENT_TYPE: :CT_VND_OFFICE_EXTENDED)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
data/lib/sks/dasar.rb ADDED
@@ -0,0 +1,29 @@
1
+ module KebutSemalam
2
+ class PengelolaXML
3
+ class NotImplemented < StandardError
4
+ def initialize
5
+ super('Not Implemented')
6
+ end
7
+ end
8
+
9
+ def pembangun
10
+ raise NotImplemented.new
11
+ end
12
+
13
+ def build(xml)
14
+ pembangun.new(xml).build(self).start
15
+ end
16
+ end
17
+ end
18
+
19
+ module SistemKebut
20
+ class DefPengelolaXML < KebutSemalam::PengelolaXML
21
+ def pembangun
22
+ return self.class.const_get(:XMLBuilder)
23
+ rescue NameError
24
+ nama = self.class.to_s.rpartition("::").first
25
+ bungkus = self.class.const_get(nama)
26
+ return bungkus.const_get(:XMLBuilder)
27
+ end
28
+ end
29
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,14 @@
1
+ module SistemKebut
2
+ module Media
3
+ class Gambar < SistemKebut::DefPengelolaXML
4
+
5
+ attr_reader :id, :sumber
6
+ def initialize(i, s)
7
+ @id = i
8
+ @sumber = s
9
+ end
10
+
11
+ alias lokasi sumber
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,114 @@
1
+ module SistemKebut
2
+ module Paragraph
3
+ TNR = 'Times New Roman'.freeze
4
+
5
+ module InnerParagraph
6
+ def ubah_ukuran(n)
7
+ @fsize = n * 2
8
+ end
9
+
10
+ def kecilkan_spacing
11
+ @spacing = :kecil
12
+ end
13
+
14
+ def gandakan_spacing
15
+ @spacing = :ganda
16
+ end
17
+
18
+ def struktur
19
+ return @struktur
20
+ end
21
+ end
22
+
23
+ class Teks < SistemKebut::DefPengelolaXML
24
+ include InnerParagraph
25
+
26
+ attr_accessor :fstyle, :fsize, :masuk, :align, :konten
27
+ attr_accessor :spacing, :bold, :italic, :underline
28
+ attr_accessor :mode
29
+ def initialize(k)
30
+ @mode = :normal
31
+ @fstyle = TNR
32
+ @fsize = 22
33
+ @masuk = true
34
+ @bold = false
35
+ @italic = false
36
+ @underline = false
37
+ @spacing = :normal
38
+ @align = :both
39
+ @konten = k
40
+ end
41
+ end
42
+
43
+ class Kosong < SistemKebut::DefPengelolaXML
44
+ include InnerParagraph
45
+
46
+ attr_accessor :fstyle, :fsize, :masuk, :align, :konten
47
+ attr_accessor :spacing, :bold, :italic, :underline
48
+ attr_accessor :mode
49
+ def initialize
50
+ @mode = :normal
51
+ @fstyle = TNR
52
+ @fsize = 20
53
+ @masuk = false
54
+ @bold = false
55
+ @italic = false
56
+ @underline = false
57
+ @spacing = :normal
58
+ @align = :both
59
+ @konten = String.new
60
+ end
61
+ end
62
+
63
+ class BarisKosong < Kosong
64
+ def initialize
65
+ super
66
+ @fsize = 22
67
+ end
68
+
69
+ def struktur
70
+ return @struktur
71
+ end
72
+ end
73
+
74
+ class Judul < SistemKebut::DefPengelolaXML
75
+ include InnerParagraph
76
+
77
+ attr_accessor :fstyle, :fsize, :masuk, :align, :konten
78
+ attr_accessor :spacing, :bold, :italic, :underline
79
+ attr_accessor :mode
80
+ def initialize(k)
81
+ @mode = :normal
82
+ @fstyle = TNR
83
+ @fsize = 40
84
+ @masuk = false
85
+ @bold = true
86
+ @italic = false
87
+ @underline = false
88
+ @spacing = :normal
89
+ @align = :center
90
+ @konten = k
91
+ end
92
+ end
93
+
94
+ class Kutipan < SistemKebut::DefPengelolaXML
95
+ include InnerParagraph
96
+
97
+ attr_accessor :fstyle, :fsize, :masuk, :align, :konten
98
+ attr_accessor :spacing, :bold, :italic, :underline
99
+ attr_accessor :mode
100
+ def initialize(k)
101
+ @mode = :normal
102
+ @fstyle = TNR
103
+ @fsize = 22
104
+ @masuk = false
105
+ @bold = false
106
+ @italic = true
107
+ @underline = false
108
+ @spacing = :normal
109
+ @align = :both
110
+ @konten = "\"#{k}\""
111
+ end
112
+ end
113
+ end
114
+ end
data/lib/sks/remote.rb ADDED
@@ -0,0 +1,28 @@
1
+ module SistemKebut
2
+ module Remote
3
+ @instansi = JembatanC.new
4
+
5
+ def self.terjemah(jenis)
6
+ return jenis if jenis.is_a?(String)
7
+ return jenis.to_s if jenis == :Type
8
+ return jenis.to_s if jenis == :Target
9
+ return jenis.to_s if jenis == :Id
10
+ return jenis.to_s if jenis.to_s[0].ord > 96
11
+ label = case jenis
12
+ when :MEDIA; :GAMBAR_TEXT_MEDIA
13
+ when :BDOC; :GAMBAR_TEXT_BEHINDDOC
14
+ when :DIST_T; :ANCHOR_ATTR_DIST_T
15
+ when :DIST_B; :ANCHOR_ATTR_DIST_B
16
+ when :DIST_L; :ANCHOR_ATTR_DIST_L
17
+ when :DIST_R; :ANCHOR_ATTR_DIST_R
18
+ when :SIMPLE_POS; :ANCHOR_ATTR_SIMPLE_POS
19
+ when :LOCKED; :ANCHOR_ATTR_LOCKED
20
+ when :LAYOUT_IN_CELL; :ANCHOR_ATTR_LAYOUT
21
+ when :ALLOW_OVERLAP; :ANCHOR_ATTR_OVERLAP
22
+ when :RELATIVE_HEIGHT; :ANCHOR_ATTR_REL_HEIGHT
23
+ else; jenis
24
+ end
25
+ @instansi.untaian(label)
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,33 @@
1
+ module SistemKebut
2
+ module Section
3
+ class SectionProperties < SistemKebut::DefPengelolaXML
4
+ attr_accessor :type, :pgSz, :pgMar, :pgNumType
5
+ attr_accessor :formProt, :textDirection, :docGrid
6
+
7
+ PGMAR = {
8
+ left: 1134,
9
+ right: 1134,
10
+ gutter: 0,
11
+ header: 0,
12
+ top: 1134,
13
+ footer: 0,
14
+ bottom: 1134
15
+ }
16
+ GRID = {
17
+ type: :default,
18
+ linePitch: 600,
19
+ charSpace: 32768
20
+ }
21
+
22
+ def initialize
23
+ @type = :nextPage
24
+ @pgSz = { width: 11906, height: 16838 }
25
+ @pgMar = PGMAR
26
+ @pgNumType = { fmt: :decimal, start: 1 }
27
+ @formProt = false
28
+ @textDirection = :lrTb
29
+ @docGrid = GRID
30
+ end
31
+ end
32
+ end
33
+ end
data/lib/sks/sks.rb ADDED
@@ -0,0 +1,65 @@
1
+ require 'nokogiri'
2
+ require_relative '../xml/builder'
3
+ require_relative '../transformasi/web'
4
+ require_relative 'alat'
5
+ require_relative 'alat/rels'
6
+ require_relative 'alat/prop_core'
7
+ require_relative 'alat/prop_app'
8
+ require_relative 'alat/prop_custom'
9
+ require_relative 'alat/rels_document'
10
+ require_relative 'alat/style'
11
+ require_relative 'alat/numbering'
12
+ require_relative 'alat/font_table'
13
+ require_relative 'alat/setting'
14
+ require_relative 'alat/theme'
15
+ require_relative 'alat/web'
16
+ # require_relative 'alat/page_number'
17
+ # require_relative 'alat/first_page'
18
+ # require_relative 'alat/romawi'
19
+ require_relative 'istimewa/dasar'
20
+ require_relative 'section/dasar'
21
+ require_relative 'paragraph/dasar'
22
+ require_relative 'media/dasar'
23
+ require_relative 'header/dasar'
24
+ require_relative 'footer/dasar'
25
+ require_relative 'alat/document'
26
+
27
+ SistemKebut::Peralatan::Gudang::KOMBINASI.each_key do |i|
28
+ require_relative File.join(i.to_s, 'dasar')
29
+ end
30
+
31
+ module SistemKebut
32
+ class Skripsi
33
+ def initialize(&block)
34
+ obj = Class.new
35
+ obj.include(SistemKebut::Peralatan::KebutuhanDasar)
36
+ inst = obj.new
37
+
38
+ # initialize
39
+ inst.init_document
40
+ inst.instance_eval(&block)
41
+
42
+ inst.generate_rels
43
+ # docProps
44
+ inst.generate_prop_core
45
+ inst.generate_prop_app
46
+ inst.generate_prop_custom
47
+ # word/_rels
48
+ inst.generate_theme
49
+ inst.generate_rels_document
50
+ # word
51
+ inst.generate_font_table
52
+ inst.generate_setting
53
+ inst.generate_style
54
+ inst.generate_web
55
+ inst.generate_document
56
+ # root
57
+ inst.generate_content_types
58
+ @inti = inst
59
+ end
60
+
61
+ def ekspor(berkas)
62
+ SistemKebut::XML::Administrasi.ekspor(berkas)
63
+ end
64
+ end
65
+ end