skripsi-generator 1.0.0 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09426ed53cf2b2bb2231579e1832ce0dae6b6e0545f37dc0471bcdacff6a0411'
4
- data.tar.gz: d468fa9a116e2710d039310d417dc3d1e37ac6b2427d1fa3978ece2335d60c8d
3
+ metadata.gz: ca434b421f39892b975b23dc255ded69c0574f266a901843e3cd54a251318ed3
4
+ data.tar.gz: 2f19cbb4839886bc8290c2ddbdafcc816ecfdf65e4dc300f2e4f6136d0070973
5
5
  SHA512:
6
- metadata.gz: c296d597c9697db9908af794eb757bca94fd87dd8be69ad709239be697054d8ec500a90cd36c60dcf9f80cb37df642a2b30b5fcdbeba2024195d2263fc820632
7
- data.tar.gz: 488c8068ce3e32bb44fb05c46508d399fd9712b7dda18ff6d63f81cca04298735e476bfa91e289f8aee0e83f87d4e59a07ab26058cdb366271cf8973922390eb
6
+ metadata.gz: ab681501694626ae4d2f5c2fdbf9e0b1ea1392f204093b0f1c8bf9f285462254ca7fcdefd8aa6f81d62ca2fb86652f8d1febdd394d6917ed6733f1be98fb30b3
7
+ data.tar.gz: 3a4f9ad3f61a165920a06ac17cdf892449ad427ea2eb4b0eac5e88d07d3413676f700d34120b5eff4618ca71e6a379ff56b2983bf178fb00cefbc0e7fd46931e
data/example/skripsi.rb CHANGED
@@ -20,6 +20,11 @@ skripsi = SistemKebut.buat_skripsi do |skripsi|
20
20
  seharusnya juga berperan dalam penjagaan lingkungan untuk dilestrikan. Kelestarian lingkungan perlu dikenalkan
21
21
  dalam praktek produksi.
22
22
  PARAGRAF
23
+ formulir(3600, 14).tap do |form|
24
+ form.tambah('nama', 'Reckordp')
25
+ form.tambah('tempat', 'Desa Kedungmaling Rt 019 Rw 008 Kecamatan Sooko Kabupaten Mojokerto')
26
+ end
27
+ Penomoran(self, %w( A B C D E F ))
23
28
  Daftar_Pustaka(self, [
24
29
  UtilSkripsi::DaftarPustaka.new(
25
30
  'Ikatan Akuntan Indonesia',
data/lib/skripsi.rb CHANGED
@@ -8,6 +8,20 @@ require_relative 'sks/sks'
8
8
 
9
9
  module SistemKebut
10
10
  def self.buat_skripsi(&block)
11
+ bersih unless butuh_kebersihan?
11
12
  Skripsi.new(&block)
12
13
  end
14
+
15
+ def self.butuh_kebersihan?
16
+ SistemKebut::Peralatan::Gudang::KOMBINASI
17
+ .values
18
+ .all?(&:empty?)
19
+ end
20
+
21
+ def self.bersih
22
+ SistemKebut::Peralatan::Gudang::KOMBINASI
23
+ .values
24
+ .each(&:clear)
25
+ SistemKebut::XML::Administrasi.bersih
26
+ end
13
27
  end
@@ -32,6 +32,7 @@ module SistemKebut
32
32
  def init_document
33
33
  @sequence = []
34
34
  @id_media = Gudang::RELS_DOCUMENT_KONTEN.length + 1
35
+ @id_penomoran = Gudang::NUMBERING_PERLENGKAPAN[:mulai]
35
36
  end
36
37
 
37
38
  def generate_document
@@ -104,6 +105,27 @@ module SistemKebut
104
105
  return inst
105
106
  end
106
107
 
108
+ def formulir(ts, uku)
109
+ SistemKebut::Paragraph::Formulir.new(ts, uku).tap do |f|
110
+ inner_tambah(:paragraph, f)
111
+ end
112
+ end
113
+
114
+ def meja_sekat(jumlah, uku)
115
+ SistemKebut::Paragraph::MejaSekat.new(jumlah, uku).tap do |ms|
116
+ inner_tambah(:paragraph, ms)
117
+ end
118
+ end
119
+
120
+ def penomoran
121
+ id = @id_penomoran
122
+ @id_penomoran += 1
123
+ Gudang::NUMBERING_PERLENGKAPAN[:jumlah] += 1
124
+ SistemKebut::Paragraph::Penomoran.new(id).tap do |nm|
125
+ inner_tambah(:paragraph, nm)
126
+ end
127
+ end
128
+
107
129
  private
108
130
  def inner_tambah(jenis, e)
109
131
  @sequence.push(jenis)
@@ -10,7 +10,7 @@ module SistemKebut
10
10
  WORDML10: :WORDML10_VAL,
11
11
  ATTR_IGNORABLE: :D_NAMES_WORDML10
12
12
  }
13
- NUMBERING_JUMLAH = 1
13
+ NUMBERING_PERLENGKAPAN = { jumlah: 1, mulai: 3 }
14
14
  end
15
15
 
16
16
  module KebutuhanDasar
@@ -33,12 +33,12 @@ module SistemKebut
33
33
  xml.lvlJc('w:val' => 'start')
34
34
  xml.pPr do
35
35
  xml.tabs do
36
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '720')
36
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '720')
37
37
  end
38
38
  xml.ind(ATTR_START: '720', ATTR_LEVEL_INDENT: '360')
39
39
  end
40
40
  xml.rPr do
41
- xml.rFonts(:ATTR_ASCII => :FONT_ROMAN_VAL, 'w:hAnsi' => :FONT_ROMAN_VAL)
41
+ xml.rFonts(:ATTR_ASCII => :ROMAN_VAL, 'w:hAnsi' => :ROMAN_VAL)
42
42
  end
43
43
  end
44
44
  xml.lvl(ATTR_NUMBERING_LEVEL: '1') do
@@ -48,7 +48,7 @@ module SistemKebut
48
48
  xml.lvlJc('w:val' => 'start')
49
49
  xml.pPr do
50
50
  xml.tabs do
51
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '1080')
51
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '1080')
52
52
  end
53
53
  xml.ind(ATTR_START: '1080', ATTR_LEVEL_INDENT: '360')
54
54
  end
@@ -61,7 +61,7 @@ module SistemKebut
61
61
  xml.lvlJc('w:val' => 'start')
62
62
  xml.pPr do
63
63
  xml.tabs do
64
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '1440')
64
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '1440')
65
65
  end
66
66
  xml.ind(ATTR_START: '1440', ATTR_LEVEL_INDENT: '360')
67
67
  end
@@ -74,7 +74,7 @@ module SistemKebut
74
74
  xml.lvlJc('w:val' => 'start')
75
75
  xml.pPr do
76
76
  xml.tabs do
77
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '1800')
77
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '1800')
78
78
  end
79
79
  xml.ind(ATTR_START: '1800', ATTR_LEVEL_INDENT: '360')
80
80
  end
@@ -87,7 +87,7 @@ module SistemKebut
87
87
  xml.lvlJc('w:val' => 'start')
88
88
  xml.pPr do
89
89
  xml.tabs do
90
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '2160')
90
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '2160')
91
91
  end
92
92
  xml.ind(ATTR_START: '2160', ATTR_LEVEL_INDENT: '360')
93
93
  end
@@ -100,7 +100,7 @@ module SistemKebut
100
100
  xml.lvlJc('w:val' => 'start')
101
101
  xml.pPr do
102
102
  xml.tabs do
103
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '2520')
103
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '2520')
104
104
  end
105
105
  xml.ind(ATTR_START: '2520', ATTR_LEVEL_INDENT: '360')
106
106
  end
@@ -113,7 +113,7 @@ module SistemKebut
113
113
  xml.lvlJc('w:val' => 'start')
114
114
  xml.pPr do
115
115
  xml.tabs do
116
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '2880')
116
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '2880')
117
117
  end
118
118
  xml.ind(ATTR_START: '2880', ATTR_LEVEL_INDENT: '360')
119
119
  end
@@ -126,7 +126,7 @@ module SistemKebut
126
126
  xml.lvlJc('w:val' => 'start')
127
127
  xml.pPr do
128
128
  xml.tabs do
129
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '3240')
129
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '3240')
130
130
  end
131
131
  xml.ind(ATTR_START: '3240', ATTR_LEVEL_INDENT: '360')
132
132
  end
@@ -139,7 +139,7 @@ module SistemKebut
139
139
  xml.lvlJc('w:val' => 'start')
140
140
  xml.pPr do
141
141
  xml.tabs do
142
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '3600')
142
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '3600')
143
143
  end
144
144
  xml.ind(ATTR_START: '3600', ATTR_LEVEL_INDENT: '360')
145
145
  end
@@ -155,7 +155,7 @@ module SistemKebut
155
155
  xml.lvlJc('w:val' => 'start')
156
156
  xml.pPr do
157
157
  xml.tabs do
158
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
158
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
159
159
  end
160
160
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
161
161
  end
@@ -168,7 +168,7 @@ module SistemKebut
168
168
  xml.lvlJc('w:val' => 'start')
169
169
  xml.pPr do
170
170
  xml.tabs do
171
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
171
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
172
172
  end
173
173
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
174
174
  end
@@ -181,7 +181,7 @@ module SistemKebut
181
181
  xml.lvlJc('w:val' => 'start')
182
182
  xml.pPr do
183
183
  xml.tabs do
184
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
184
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
185
185
  end
186
186
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
187
187
  end
@@ -194,7 +194,7 @@ module SistemKebut
194
194
  xml.lvlJc('w:val' => 'start')
195
195
  xml.pPr do
196
196
  xml.tabs do
197
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
197
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
198
198
  end
199
199
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
200
200
  end
@@ -207,7 +207,7 @@ module SistemKebut
207
207
  xml.lvlJc('w:val' => 'start')
208
208
  xml.pPr do
209
209
  xml.tabs do
210
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
210
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
211
211
  end
212
212
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
213
213
  end
@@ -220,7 +220,7 @@ module SistemKebut
220
220
  xml.lvlJc('w:val' => 'start')
221
221
  xml.pPr do
222
222
  xml.tabs do
223
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
223
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
224
224
  end
225
225
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
226
226
  end
@@ -233,7 +233,7 @@ module SistemKebut
233
233
  xml.lvlJc('w:val' => 'start')
234
234
  xml.pPr do
235
235
  xml.tabs do
236
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
236
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
237
237
  end
238
238
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
239
239
  end
@@ -246,7 +246,7 @@ module SistemKebut
246
246
  xml.lvlJc('w:val' => 'start')
247
247
  xml.pPr do
248
248
  xml.tabs do
249
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
249
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
250
250
  end
251
251
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
252
252
  end
@@ -259,7 +259,7 @@ module SistemKebut
259
259
  xml.lvlJc('w:val' => 'start')
260
260
  xml.pPr do
261
261
  xml.tabs do
262
- xml.tab('w:val' => :LEVEL_TAB_NAME_VALUE, :ATTR_POS => '0')
262
+ xml.tab('w:val' => :LEVEL_TAB_NAME_VAL, :ATTR_POS => '0')
263
263
  end
264
264
  xml.ind(ATTR_START: '0', ATTR_LEVEL_INDENT: '0')
265
265
  end
@@ -271,8 +271,9 @@ module SistemKebut
271
271
  xml.num(ATTR_NUMBERING_ID: '2') do
272
272
  xml.abstractNumId('w:val' => '2')
273
273
  end
274
- Gudang::NUMBERING_JUMLAH.times do |i|
275
- xml.num(ATTR_NUMBERING_ID: (i + 3).to_s) do
274
+ plk = Gudang::NUMBERING_PERLENGKAPAN
275
+ plk[:jumlah].times do |i|
276
+ xml.num(ATTR_NUMBERING_ID: (i + plk[:mulai]).to_s) do
276
277
  xml.abstractNumId('w:val' => '1')
277
278
  xml.lvlOverride(ATTR_NUMBERING_LEVEL: '0') do
278
279
  xml.startOverride('w:val' => '1')
@@ -4,7 +4,7 @@ module SistemKebut
4
4
  RELS_DOCUMENT_NS = { xmlns: :PACKAGE_RELATIONSHIP_VAL }
5
5
  RELS_DOCUMENT_KONTEN = {
6
6
  'rId1' => { Type: :OFFICE_RELATIONSHIP_STYLE_VAL, Target: :LOKASI_STYLES },
7
- 'rId2' => { Type: :OFFICE_RELATIONSHIP_NUMBER_VAL, Target: :LOKASI_WORD_NUMBERING },
7
+ 'rId2' => { Type: :OFFICE_RELATIONSHIP_NUMBER_VAL, Target: :LOKASI_NUMBERING },
8
8
  'rId3' => { Type: :OFFICE_RELATIONSHIP_FONT_VAL, Target: :LOKASI_FONT_TABLE },
9
9
  'rId4' => { Type: :OFFICE_RELATIONSHIP_SETTING_VAL, Target: :LOKASI_SETTINGS },
10
10
  'rId5' => { Type: :OFFICE_RELATIONSHIP_THEME_VAL, Target: :LOKASI_THEME_THEME1 },
@@ -0,0 +1,47 @@
1
+ module SistemKebut
2
+ module Paragraph
3
+ class Formulir < SistemKebut::DefPengelolaXML
4
+ class UnitFormulir
5
+ attr_accessor :label, :value
6
+ def initialize(l, v)
7
+ @label = l
8
+ @value = v
9
+ end
10
+ end
11
+
12
+ include InnerParagraph
13
+
14
+ attr_accessor :fstyle, :fsize, :masuk, :align, :konten
15
+ attr_accessor :spacing, :bold, :italic, :underline
16
+ attr_accessor :mode, :tabsize
17
+ def initialize(ts, ukuran)
18
+ @mode = :normal
19
+ @fstyle = TNR
20
+ @fsize = 22
21
+ @masuk = false
22
+ @bold = false
23
+ @italic = false
24
+ @underline = false
25
+ @spacing = :normal
26
+ @align = :both
27
+ @konten = []
28
+ @tabsize = ts
29
+ ubah_ukuran(ukuran)
30
+ kecilkan_spacing
31
+ end
32
+
33
+ def [](id)
34
+ @konten[id]
35
+ end
36
+
37
+ def tiap(&block)
38
+ @konten.each(&block)
39
+ end
40
+
41
+ def tambah(l, v)
42
+ @konten.push(UnitFormulir.new(l, v))
43
+ return nil
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,53 @@
1
+ module SistemKebut
2
+ module Paragraph
3
+ class MejaSekat < SistemKebut::Paragraph::Formulir
4
+ class Unit
5
+ class JumlahKolomTidakSama < StandardError
6
+ def initialize(kini, expect)
7
+ super(<<~MESSAGE)
8
+ Jumlah dari kolom yang diberikan adalah #{kini}
9
+ Jumlah dari kolom MejaSekat yang terinisiasi adalah #{expect}
10
+ MESSAGE
11
+ end
12
+ end
13
+
14
+ attr_accessor :konten
15
+ attr_reader :setelan
16
+
17
+ def initialize(kolom, *args)
18
+ berat = args.clone
19
+ @setelan = berat.last.kind_of?(Hash) ? berat.pop : Hash.new
20
+ kini = berat.length
21
+ raise JumlahKolomTidakSama.new(kini, kolom) if kini != kolom
22
+ @konten = berat
23
+ end
24
+
25
+ def [](id)
26
+ @konten[id]
27
+ end
28
+
29
+ def tiap(&block)
30
+ @konten.each(&block)
31
+ end
32
+ end
33
+
34
+ attr_accessor :jumlah, :kepala
35
+
36
+ def initialize(j, ukuran)
37
+ super(nil, ukuran)
38
+ @jumlah = j
39
+ @kepala = nil
40
+ end
41
+
42
+ def kepala(*args)
43
+ @kepala = Unit.new(@jumlah, *args)
44
+ return nil
45
+ end
46
+
47
+ def tambah(*args)
48
+ @konten.push(Unit.new(@jumlah, *args))
49
+ return nil
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,32 @@
1
+ module SistemKebut
2
+ module Paragraph
3
+ class Penomoran < SistemKebut::Paragraph::Teks
4
+ include InnerParagraph
5
+
6
+ attr_accessor :fstyle, :fsize, :masuk, :align, :konten
7
+ attr_accessor :spacing, :bold, :italic, :underline
8
+ attr_accessor :mode
9
+
10
+ attr_reader :numid
11
+
12
+ def initialize(id)
13
+ super([])
14
+ @masuk = false
15
+ @numid = id
16
+ end
17
+
18
+ def [](id)
19
+ @konten[id]
20
+ end
21
+
22
+ def tiap(&block)
23
+ @konten.each(&block)
24
+ end
25
+
26
+ def tambah(teks)
27
+ @konten.push(teks)
28
+ return nil
29
+ end
30
+ end
31
+ end
32
+ end
data/lib/sks/sks.rb CHANGED
@@ -19,6 +19,9 @@ require_relative 'alat/web'
19
19
  require_relative 'istimewa/dasar'
20
20
  require_relative 'section/dasar'
21
21
  require_relative 'paragraph/dasar'
22
+ require_relative 'paragraph/formulir'
23
+ require_relative 'paragraph/mejasekat'
24
+ require_relative 'paragraph/penomoran'
22
25
  require_relative 'media/dasar'
23
26
  require_relative 'header/dasar'
24
27
  require_relative 'footer/dasar'
@@ -52,6 +55,7 @@ module SistemKebut
52
55
  inst.generate_setting
53
56
  inst.generate_style
54
57
  inst.generate_web
58
+ inst.generate_numbering
55
59
  inst.generate_document
56
60
  # root
57
61
  inst.generate_content_types
@@ -73,6 +73,15 @@ module SistemKebut
73
73
  @konten = []
74
74
  end
75
75
 
76
+ def longgar?
77
+ @konten.empty?
78
+ end
79
+
80
+ def bersih
81
+ @konten.clear
82
+ return nil
83
+ end
84
+
76
85
  def arsipkan(xml)
77
86
  return false if @konten.find { |i| i.lokasi == xml.lokasi }
78
87
  @konten.push(xml)
@@ -119,6 +128,10 @@ module SistemKebut
119
128
  praktisi.saring.perform
120
129
  end
121
130
  end
131
+
132
+ def self.bersih
133
+ @instansi.bersih unless @instansi.longgar?
134
+ end
122
135
  end
123
136
  end
124
137
  end
data/lib/xml/builder.rb CHANGED
@@ -78,6 +78,12 @@ module SistemKebut
78
78
  @konten.length == 1 ? @konten.first : nil
79
79
  end
80
80
 
81
+ def raw_serialize(induk)
82
+ return unless @tag == :produk
83
+ @konten.each { |i| induk.append(i) }
84
+ return nil
85
+ end
86
+
81
87
  def serialize(nokoxml, warisan=nil)
82
88
  proses = proc { |i| i.is_a?(Hash) && i.has_key?(:_konten) }
83
89
  dalam = @konten.select(&proses)
@@ -197,7 +203,7 @@ module SistemKebut
197
203
 
198
204
  def raw(elm)
199
205
  return nil unless elm.is_a?(Element)
200
- @kini.append(elm)
206
+ elm.raw_serialize(@kini)
201
207
  end
202
208
 
203
209
  def catat_administrasi(id)
@@ -207,6 +213,7 @@ module SistemKebut
207
213
  def build(tujuan=nil)
208
214
  hasil = inner_build.doc.root
209
215
  w_acme(hasil) if hasil.name == "document"
216
+ w_acme(hasil) if hasil.name == "numbering"
210
217
  return case tujuan
211
218
  when :xml; hasil.to_xml
212
219
  else; hasil.serialize(save_with: 0)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skripsi-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reckordp
@@ -120,6 +120,9 @@ files:
120
120
  - lib/sks/istimewa/dasar.rb
121
121
  - lib/sks/media/dasar.rb
122
122
  - lib/sks/paragraph/dasar.rb
123
+ - lib/sks/paragraph/formulir.rb
124
+ - lib/sks/paragraph/mejasekat.rb
125
+ - lib/sks/paragraph/penomoran.rb
123
126
  - lib/sks/remote.rb
124
127
  - lib/sks/section/dasar.rb
125
128
  - lib/sks/sks.rb