Class: Datajud::Processo

Inherits:
Object
  • Object
show all
Defined in:
lib/datajud/process.rb

Overview

Representa um processo retornado pela API DataJud. Fornece acesso simples a campos comuns via métodos.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw) ⇒ Processo

Returns a new instance of Processo.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/datajud/process.rb', line 33

def initialize(raw)
  processo_hash = raw[:processo] || raw['processo'] || raw
  @tribunal = self.class.deep_struct(raw[:tribunal] || raw['tribunal'])
  processo_hash.each do |k, v|
    ivar = "@#{k.to_s.gsub(/([A-Z])/, '_\\1').downcase}"
    instance_variable_set(ivar, self.class.deep_struct(v))
    self.class.send(:attr_reader, k.to_s.gsub(/([A-Z])/, '_\\1').downcase)
  end
  if processo_hash['orgaoJulgador'] || processo_hash[:orgaoJulgador]
    orgao = processo_hash['orgaoJulgador'] || processo_hash[:orgaoJulgador]
    instance_variable_set(:@orgao_julgador, self.class.deep_struct(orgao))
    self.class.send(:attr_reader, :orgao_julgador)
    if orgao['codigoMunicipioIBGE'] || orgao[:codigoMunicipioIBGE]
      vara = instance_variable_get(:@vara)
      if vara && vara.respond_to?(:comarca)
        comarca = vara.comarca
        if comarca && comarca.is_a?(OpenStruct)
          ibge = orgao['codigoMunicipioIBGE'] || orgao[:codigoMunicipioIBGE]
          comarca.codigoIbge = ibge if comarca.respond_to?(:codigoIbge=)
        end
      end
    end
  end

end

Instance Attribute Details

#tribunalObject (readonly)

Returns the value of attribute tribunal.



31
32
33
# File 'lib/datajud/process.rb', line 31

def tribunal
  @tribunal
end

Class Method Details

.deep_struct(obj) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/datajud/process.rb', line 9

def self.deep_struct(obj)
  case obj
  when Hash
    OpenStruct.new(obj.transform_values { |v| deep_struct(v) })
  when Array
    obj.map { |v| deep_struct(v) }
  else
    obj
  end
end

Instance Method Details

#codigo_municipio_ibgeObject



59
60
61
62
63
64
65
# File 'lib/datajud/process.rb', line 59

def codigo_municipio_ibge
  if respond_to?(:orgao_julgador) && orgao_julgador.is_a?(Hash)
    orgao_julgador['codigoMunicipioIBGE'] || orgao_julgador[:codigoMunicipioIBGE]
  else
    nil
  end
end

#comarca_ibge_codigoObject



24
25
26
27
28
29
30
# File 'lib/datajud/process.rb', line 24

def comarca_ibge_codigo
  v = instance_variable_get(:@vara)
  return nil unless v && v.is_a?(Hash)
  comarca = v['comarca'] || v[:comarca]
  return nil unless comarca && comarca.is_a?(Hash)
  comarca['codigoIbge'] || comarca[:codigoIbge] || comarca['ibge'] || comarca[:ibge]
end

#municipio_ibgeObject



19
20
21
22
23
# File 'lib/datajud/process.rb', line 19

def municipio_ibge
  orgao = instance_variable_get(:@orgao_julgador) || instance_variable_get(:@orgao_julgador) || self.respond_to?(:orgao_julgador) ? self.orgao_julgador : nil
  return nil unless orgao && orgao.is_a?(Hash)
  orgao['codigoMunicipioIBGE'] || orgao[:codigoMunicipioIBGE]
end