Module: Kajian::FungsiBantu

Included in:
Adapter, Makro
Defined in:
lib/kajian/fungsi_bantu.rb

Instance Method Summary collapse

Instance Method Details

#adapter_ke_simbol(kelas_adapter) ⇒ Object

Konversi dari kelas adapter ke simbol. Misal:

Kajian::Adapter::JadwalKajian ke :jadwal_kajian


6
7
8
9
10
11
12
13
14
# File 'lib/kajian/fungsi_bantu.rb', line 6

def adapter_ke_simbol(kelas_adapter)
  kelas_adapter.name
               .sub(/(\w+::)+/, '')
               .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
               .gsub(/([a-z\d])([A-Z])/, '\1_\2')
               .tr("-", "_")
               .downcase
               .to_sym
end

#simbol_ke_adapter(simbol) ⇒ Object

Konversi dari simbol ke kelas adapter. Misal:

:jadwal_kajian ke Kajian::Adapter::JadwalKajian


19
20
21
22
23
24
# File 'lib/kajian/fungsi_bantu.rb', line 19

def simbol_ke_adapter(simbol)
  nama_adapter = simbol.to_s
                       .sub(/^[a-z\d]*/) { |match| match.capitalize }
                       .gsub!(/(?:_)([a-z\d]*)/i) {"#{$1.capitalize}"}
  Kernel.const_get("Kajian::Adapter::#{nama_adapter}")
end