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
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: []