module Kajian

Constants

KesalahanDaerah
TidakAdaAdapter
VERSION

Public Class Methods

adapter() click to toggle source
# File lib/kajian.rb, line 12
def adapter
  @@adapter ||= Kajian::Makro.adapter
end
lihat(*sumber_sumber) click to toggle source
# File lib/kajian.rb, line 16
def lihat *sumber_sumber
  sumber_sumber = [:semua] if sumber_sumber.empty?
  if sumber_sumber.length == 1
    if sumber_sumber.first == :semua
      raise TidakAdaAdapter unless Kajian.adapter
      Kajian::KoleksiAdapter.new(Kajian.adapter)
    else
      s = sumber_sumber.first
      Kajian::Adapter.new(s)
    end
  else
    Kajian::KoleksiAdapter.new(sumber_sumber)
  end
end

Public Instance Methods

blok(filter_blok) { |laman| ... } click to toggle source
# File lib/kajian/makro.rb, line 91
def blok(filter_blok)
  @blok = if block_given?
            proc {|laman| yield(laman)}
          elsif filter_blok
            filter_blok
          end

  @proc_blok = proc do |daerah, dir|
    if instance_variable_get("@laman_#{daerah}").nil?
      laman = Nokogiri::HTML(open(File.join(self.url, dir)))
      instance_variable_set("@laman_#{daerah}", laman)
    end

    laman ||= instance_variable_get("@laman_#{daerah}")

    if @blok.kind_of? Proc
      @blok.(laman)
    elsif filter_blok
      laman.public_send(*filter_blok.to_a.first)
    end.map do |b|
      kajian = {}
      KOLOM.each do |k|
        konten    = self.public_send("proc_#{k}").(b) rescue nil
        kajian[k] = konten.kind_of?(Array) ? (k == :penceramah ? konten : konten.first) : konten
      end
      kajian
    end
  end
end
buang_direktori(*args) click to toggle source
# File lib/kajian/makro.rb, line 79
def buang_direktori(*args)
  set_direktori!
  @pakai_direktori = direktori_master.keys - args.map(&:to_sym)
  @buang_direktori = args
end
json_ke_hash(file_name = " click to toggle source
# File lib/kajian/makro.rb, line 68
def json_ke_hash(file_name = "#{simbol}.json")
  JSON(
    File.read(File.join(File.dirname(caller[0][/^.*\.rb/]), file_name)),
    symbolize_names: true
  )
end
pakai_direktori(*args) click to toggle source
# File lib/kajian/makro.rb, line 85
def pakai_direktori(*args)
  set_direktori!
  @buang_direktori = direktori_master.keys - args.map(&:to_sym)
  @pakai_direktori = args.map(&:to_sym)
end
set_direktori!() click to toggle source
# File lib/kajian/makro.rb, line 75
def set_direktori!
  @direktori_salinan = direktori_master.dup
end

Private Instance Methods

bersihkan(teks, harus_hilang, nama_kolom) click to toggle source
# File lib/kajian/makro.rb, line 165
def bersihkan(teks, harus_hilang, nama_kolom)
  teks.gsub!(harus_hilang, '') if harus_hilang
  if nama_kolom == :tema
    teks.sub(/\s+((B|b)ersama (Usta(d)?(z)?(ah)?)? .*)?$/, '')
  elsif nama_kolom == :penceramah
    teks.sub(/^(((A|a)l(\-?|\s+))?(U|u)stad?z?(ah)?)\s+/, '')
  elsif nama_kolom == :tanggal
    BULAN.each do |asal_kata, terjemahan|
      teks.sub!(asal_kata, terjemahan)
    end
    teks
  else
    teks
  end
end
konversi(teks, parser) click to toggle source
# File lib/kajian/makro.rb, line 185
def konversi(teks, parser)
  parser ? parser.parse(teks) : teks
end
substitusi(teks, sub_hash) click to toggle source
# File lib/kajian/makro.rb, line 181
def substitusi(teks, sub_hash)
  sub_hash ? teks.gsub(*sub_hash.to_a.first) : teks
end