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
data/src/skripsi.c
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#include <ruby.h>
|
|
2
|
+
#include <stdio.h>
|
|
3
|
+
|
|
4
|
+
#include "skripsi.h"
|
|
5
|
+
#include "urai.h"
|
|
6
|
+
|
|
7
|
+
const char *adaptor[] = {
|
|
8
|
+
"LokasiAdaptor",
|
|
9
|
+
"TemaAdaptor",
|
|
10
|
+
"RisetAdaptor",
|
|
11
|
+
"NTapAdaptor",
|
|
12
|
+
0
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
void serap_meta(VALUE ns) {
|
|
16
|
+
ID mid;
|
|
17
|
+
VALUE konten, alat, kelazz;
|
|
18
|
+
size_t panjang;
|
|
19
|
+
char *sumber;
|
|
20
|
+
|
|
21
|
+
mid = rb_intern_const("konten");
|
|
22
|
+
kelazz = rb_const_get(ns, rb_intern_const(adaptor[0]));
|
|
23
|
+
alat = rb_class_new_instance(0, NULL, kelazz);
|
|
24
|
+
konten = rb_funcall(alat, mid, 0);
|
|
25
|
+
if(RB_NIL_P(konten)) return;
|
|
26
|
+
panjang = RSTRING_LEN(konten);
|
|
27
|
+
sumber = malloc(panjang);
|
|
28
|
+
memcpy(sumber, RSTRING_PTR(konten), panjang);
|
|
29
|
+
urai_untaian_umum(SUMBER_LOKASI, sumber, panjang);
|
|
30
|
+
|
|
31
|
+
kelazz = rb_const_get(ns, rb_intern_const(adaptor[1]));
|
|
32
|
+
alat = rb_class_new_instance(0, NULL, kelazz);
|
|
33
|
+
konten = rb_funcall(alat, mid, 0);
|
|
34
|
+
if(RB_NIL_P(konten)) return;
|
|
35
|
+
panjang = RSTRING_LEN(konten);
|
|
36
|
+
sumber = realloc(sumber, panjang);
|
|
37
|
+
memcpy(sumber, RSTRING_PTR(konten), panjang);
|
|
38
|
+
urai_untaian_umum(SUMBER_TEMA, sumber, panjang);
|
|
39
|
+
|
|
40
|
+
kelazz = rb_const_get(ns, rb_intern_const(adaptor[2]));
|
|
41
|
+
alat = rb_class_new_instance(0, NULL, kelazz);
|
|
42
|
+
konten = rb_funcall(alat, mid, 0);
|
|
43
|
+
if(RB_NIL_P(konten)) return;
|
|
44
|
+
panjang = RSTRING_LEN(konten);
|
|
45
|
+
sumber = realloc(sumber, panjang);
|
|
46
|
+
memcpy(sumber, RSTRING_PTR(konten), panjang);
|
|
47
|
+
urai_untaian_umum(SUMBER_RISET, sumber, panjang);
|
|
48
|
+
|
|
49
|
+
kelazz = rb_const_get(ns, rb_intern_const(adaptor[3]));
|
|
50
|
+
alat = rb_class_new_instance(0, NULL, kelazz);
|
|
51
|
+
konten = rb_funcall(alat, mid, 0);
|
|
52
|
+
if(RB_NIL_P(konten)) return;
|
|
53
|
+
panjang = RSTRING_LEN(konten);
|
|
54
|
+
sumber = realloc(sumber, panjang);
|
|
55
|
+
memcpy(sumber, RSTRING_PTR(konten), panjang);
|
|
56
|
+
urai_untaian_umum(SUMBER_NTAP, sumber, panjang);
|
|
57
|
+
free(sumber);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
VALUE lokasi_perolehan(VALUE self) {
|
|
61
|
+
VALUE sks, unduh, remote;
|
|
62
|
+
sks = rb_const_get(rb_cObject, rb_intern_const("KebutSemalam"));
|
|
63
|
+
unduh = rb_const_get(sks, rb_intern_const("Unduh"));
|
|
64
|
+
remote = rb_const_get(sks, rb_intern_const("Remote"));
|
|
65
|
+
memulai_urai();
|
|
66
|
+
serap_meta(unduh);
|
|
67
|
+
buat_jembatan(remote);
|
|
68
|
+
return Qtrue;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void Init_skripsi() {
|
|
72
|
+
VALUE sks, lokasi;
|
|
73
|
+
sks = rb_const_get(rb_cObject, rb_intern_const("KebutSemalam"));
|
|
74
|
+
lokasi = rb_define_module_under(sks, "LokasiWeb");
|
|
75
|
+
rb_define_const(lokasi, "HOST", rb_str_new_cstr(webhost));
|
|
76
|
+
rb_define_module_function(lokasi, "perolehan", lokasi_perolehan, 0);
|
|
77
|
+
}
|
data/src/urai.c
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#include <stdio.h>
|
|
2
|
+
#include <stdlib.h>
|
|
3
|
+
#include <string.h>
|
|
4
|
+
#include "urai.h"
|
|
5
|
+
|
|
6
|
+
keterangan_urai *ket;
|
|
7
|
+
|
|
8
|
+
void memulai_urai() {
|
|
9
|
+
ket = malloc(sizeof(keterangan_urai));
|
|
10
|
+
memset(ket, 0, sizeof(keterangan_urai));
|
|
11
|
+
ket->terjaga = 1;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
void urai_untaian_umum(uint8_t urutan, char *untaian, size_t panjang) {
|
|
15
|
+
uint32_t beda, nomor;
|
|
16
|
+
char *salin, *asal, *kini, *ujung, nilai;
|
|
17
|
+
salin = malloc(panjang + 1);
|
|
18
|
+
salin[panjang] = 0;
|
|
19
|
+
memcpy(salin, untaian, panjang);
|
|
20
|
+
asal = salin;
|
|
21
|
+
kini = salin;
|
|
22
|
+
ujung = salin + panjang;
|
|
23
|
+
nomor = 0;
|
|
24
|
+
beda = (uint32_t)(kini - asal);
|
|
25
|
+
ket->sumber[urutan].indices[nomor++] = beda;
|
|
26
|
+
while(kini < ujung) {
|
|
27
|
+
nilai = *kini++;
|
|
28
|
+
if(!nilai) {
|
|
29
|
+
beda = (uint32_t)(kini - asal);
|
|
30
|
+
ket->sumber[urutan].indices[nomor++] = beda;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ket->sumber[urutan].terisi = 1;
|
|
34
|
+
ket->sumber[urutan].jumlah = nomor;
|
|
35
|
+
ket->sumber[urutan].panjang = panjang;
|
|
36
|
+
ket->sumber[urutan].konten = salin;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void *buat_penjaga_sumber(uint32_t id) {
|
|
40
|
+
uint32_t id_sumber, indices, beda;
|
|
41
|
+
uint8_t urutan, jumlah;
|
|
42
|
+
char **hasil, *s;
|
|
43
|
+
if(!id) return NULL;
|
|
44
|
+
indices = (id & 0x0fff);
|
|
45
|
+
id_sumber = ((id >> 12) & 0x07) % 5;
|
|
46
|
+
if(!id_sumber) return NULL;
|
|
47
|
+
if(!ket->sumber[id_sumber].terisi) return NULL;
|
|
48
|
+
if(!(ket->sumber[id_sumber].jumlah > indices)) return NULL;
|
|
49
|
+
beda = ket->sumber[id_sumber].indices[indices];
|
|
50
|
+
s = ket->sumber[id_sumber].konten + beda;
|
|
51
|
+
// jumlah = ket->terjaga;
|
|
52
|
+
// while(jumlah--) {
|
|
53
|
+
// if(!jumlah) continue;
|
|
54
|
+
// if(*(char**)(ket->pemindai[jumlah]) == s) {
|
|
55
|
+
// ket->penjaga[jumlah]++;
|
|
56
|
+
// return ket->pemindai[jumlah];
|
|
57
|
+
// }
|
|
58
|
+
// }
|
|
59
|
+
// if(!(ket->terjaga < JUMLAH_PEMINDAI)) return NULL;
|
|
60
|
+
hasil = malloc(sizeof(char*));
|
|
61
|
+
*hasil = s;
|
|
62
|
+
// urutan = ket->terjaga++;
|
|
63
|
+
// ket->penjaga[urutan] += 1;
|
|
64
|
+
// ket->pemindai[urutan] = hasil;
|
|
65
|
+
return hasil;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const char *urai_penjaga_string(void *penjaga) {
|
|
69
|
+
return *(const char**)penjaga;
|
|
70
|
+
}
|
metadata
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: skripsi-generator
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Reckordp
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: roman-numerals
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 0.3.0
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 0.3.0
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: zip
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 2.0.2
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 2.0.2
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: multipart-post
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 2.4.1
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 2.4.1
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: http-cookie
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 1.1.6
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 1.1.6
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: nokogiri
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.19.4
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.19.4
|
|
82
|
+
description: The library of generator docx files so it will easier to do task.
|
|
83
|
+
email:
|
|
84
|
+
- rmuhammad134@gmail.com
|
|
85
|
+
executables: []
|
|
86
|
+
extensions:
|
|
87
|
+
- extconf.rb
|
|
88
|
+
extra_rdoc_files: []
|
|
89
|
+
files:
|
|
90
|
+
- example/logo.png
|
|
91
|
+
- example/skripsi.rb
|
|
92
|
+
- example/test_webgen.rb
|
|
93
|
+
- extconf.rb
|
|
94
|
+
- include/lokasidef.h
|
|
95
|
+
- include/ntapdef.h
|
|
96
|
+
- include/risetdef.h
|
|
97
|
+
- include/skripsi.h
|
|
98
|
+
- include/temadef.h
|
|
99
|
+
- include/urai.h
|
|
100
|
+
- lib/adaptor/adaptor.rb
|
|
101
|
+
- lib/adaptor/unduh.rb
|
|
102
|
+
- lib/adaptor/web_generate.rb
|
|
103
|
+
- lib/skripsi.rb
|
|
104
|
+
- lib/sks/alat.rb
|
|
105
|
+
- lib/sks/alat/document.rb
|
|
106
|
+
- lib/sks/alat/font_table.rb
|
|
107
|
+
- lib/sks/alat/numbering.rb
|
|
108
|
+
- lib/sks/alat/prop_app.rb
|
|
109
|
+
- lib/sks/alat/prop_core.rb
|
|
110
|
+
- lib/sks/alat/prop_custom.rb
|
|
111
|
+
- lib/sks/alat/rels.rb
|
|
112
|
+
- lib/sks/alat/rels_document.rb
|
|
113
|
+
- lib/sks/alat/setting.rb
|
|
114
|
+
- lib/sks/alat/style.rb
|
|
115
|
+
- lib/sks/alat/theme.rb
|
|
116
|
+
- lib/sks/alat/web.rb
|
|
117
|
+
- lib/sks/dasar.rb
|
|
118
|
+
- lib/sks/footer/dasar.rb
|
|
119
|
+
- lib/sks/header/dasar.rb
|
|
120
|
+
- lib/sks/istimewa/dasar.rb
|
|
121
|
+
- lib/sks/media/dasar.rb
|
|
122
|
+
- lib/sks/paragraph/dasar.rb
|
|
123
|
+
- lib/sks/remote.rb
|
|
124
|
+
- lib/sks/section/dasar.rb
|
|
125
|
+
- lib/sks/sks.rb
|
|
126
|
+
- lib/transformasi/web.rb
|
|
127
|
+
- lib/xml/administrasi.rb
|
|
128
|
+
- lib/xml/builder.rb
|
|
129
|
+
- lib/xml/dasar.rb
|
|
130
|
+
- lib/xml/media.rb
|
|
131
|
+
- lib/xml/paragraph.rb
|
|
132
|
+
- lib/xml/section.rb
|
|
133
|
+
- src/jembatan.c
|
|
134
|
+
- src/sisi.c
|
|
135
|
+
- src/skripsi.c
|
|
136
|
+
- src/urai.c
|
|
137
|
+
homepage: https://github.com/Snailight/skripsi-generator
|
|
138
|
+
licenses: []
|
|
139
|
+
metadata:
|
|
140
|
+
homepage_uri: https://github.com/Snailight/skripsi-generator
|
|
141
|
+
source_code_uri: https://github.com/Snailight/skripsi-generator
|
|
142
|
+
rdoc_options: []
|
|
143
|
+
require_paths:
|
|
144
|
+
- lib
|
|
145
|
+
- include
|
|
146
|
+
- src
|
|
147
|
+
- example
|
|
148
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0'
|
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
|
+
requirements:
|
|
155
|
+
- - ">="
|
|
156
|
+
- !ruby/object:Gem::Version
|
|
157
|
+
version: '0'
|
|
158
|
+
requirements: []
|
|
159
|
+
rubygems_version: 4.0.0
|
|
160
|
+
specification_version: 4
|
|
161
|
+
summary: Generator docx files for lesson purpose.
|
|
162
|
+
test_files: []
|