Class: SistemKebut::XML::Administrasi

Inherits:
Object
  • Object
show all
Defined in:
lib/xml/administrasi.rb

Constant Summary collapse

ACUAN =
%q(<?xml version="1.0" encoding="UTF-8" standalone="yes"?>)

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAdministrasi

Returns a new instance of Administrasi.



72
73
74
# File 'lib/xml/administrasi.rb', line 72

def initialize
  @konten = []
end

Class Method Details

.ekspor(berkas) ⇒ Object



114
115
116
117
118
119
120
121
# File 'lib/xml/administrasi.rb', line 114

def self.ekspor(berkas)
  Zip::ZipOutputStream.open(berkas) do |zos|
    praktisi = @instansi.pasang do |lokasi, arsip|
      @instansi.taruh(zos, lokasi, arsip)
    end
    praktisi.saring.perform
  end
end

.masukkan(xml) ⇒ Object



107
108
109
110
111
112
# File 'lib/xml/administrasi.rb', line 107

def self.masukkan(xml)
  return false unless xml.respond_to?(:lokasi)
  return false unless xml.respond_to?(:struktur)
  return true if @instansi.arsipkan(xml)
  return false
end

Instance Method Details

#arsipkan(xml) ⇒ Object



76
77
78
79
80
# File 'lib/xml/administrasi.rb', line 76

def arsipkan(xml)
  return false if @konten.find { |i| i.lokasi == xml.lokasi }
  @konten.push(xml)
  return true
end

#pasang(&blk) ⇒ Object



82
83
84
85
86
# File 'lib/xml/administrasi.rb', line 82

def pasang(&blk)
  return nil unless block_given?
  praktisi = @konten.collect { |k| Eksportir.new(k, &blk) }
  return Regulator.new(praktisi)
end

#taruh(zos, lokasi, arsip) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/xml/administrasi.rb', line 88

def taruh(zos, lokasi, arsip)
  konten = nil
  if lokasi == :LOKASI_WORD_DOCUMENT
    webgen = KebutSemalam::Web::WebGenerate.new(arsip.serialize)
    konten = webgen.konten
  elsif arsip.xml?
    konten = String.new
      .concat(ACUAN)
      .concat("\n")
      .concat(arsip.serialize)
  else
    konten = arsip.serialize
  end
  zos.put_next_entry(lokasi)
  zos.write(konten)
end