module Kajian::FungsiBantu

Public Instance Methods

adapter_ke_simbol(kelas_adapter) click to toggle source

Konversi dari kelas adapter ke simbol. Misal:

Kajian::Adapter::JadwalKajian ke :jadwal_kajian
# 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) click to toggle source

Konversi dari simbol ke kelas adapter. Misal:

:jadwal_kajian ke Kajian::Adapter::JadwalKajian
# 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