Module: Kajian::Makro

Extended by:
FungsiBantu
Included in:
Adapter::JadwalKajian
Defined in:
lib/kajian/makro.rb

Constant Summary collapse

KOLOM =
%i[tema penceramah tempat tanggal waktu gambar]
BULAN =
{
  "januari"  => "january",
  "februari" => "february",
  "pebruari" => "february",
  "maret"    => "march",
  "mei"      => "may",
  "juni"     => "june",
  "juli"     => "july",
  "agustus"  => "august",
  "oktober"  => "october",
  "desember" => "december",
}
@@adapter =
[]

Class Method Summary collapse

Instance Method Summary collapse

Methods included from FungsiBantu

adapter_ke_simbol, simbol_ke_adapter

Class Method Details

.adapterObject



35
36
37
# File 'lib/kajian/makro.rb', line 35

def adapter
  @@adapter
end

.extended(adapter) ⇒ Object



30
31
32
33
# File 'lib/kajian/makro.rb', line 30

def extended(adapter)
  @@adapter << adapter
  adapter.simbol = adapter_ke_simbol(adapter)
end

Instance Method Details

#blok(filter_blok) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# 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) ⇒ Object



79
80
81
82
83
# 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 = "#{simbol}.json") ⇒ Object



68
69
70
71
72
73
# 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) ⇒ Object



85
86
87
88
89
# 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!Object



75
76
77
# File 'lib/kajian/makro.rb', line 75

def set_direktori!
  @direktori_salinan = direktori_master.dup
end