Class: Ares

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

Constant Summary collapse

SERVICE_URL =
"http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_std.cgi?%s".freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Ares

initializes new ares object



18
19
20
21
22
# File 'lib/ares_cz.rb', line 18

def initialize(options)
  @options = options
  @result = Crack::XML.parse(Net::HTTP.get(URI.parse(SERVICE_URL % self.params)))
  return self
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/ares_cz.rb', line 7

def options
  @options
end

#resultObject (readonly)

Returns the value of attribute result.



7
8
9
# File 'lib/ares_cz.rb', line 7

def result
  @result
end

Class Method Details

.find(options) ⇒ Object

finds subject by any part on ares service



12
13
14
# File 'lib/ares_cz.rb', line 12

def find(options)
  return new(options)
end

Instance Method Details

#addressObject

returns address



61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/ares_cz.rb', line 61

def address
  unless @address 
    @address = {
    :city => self.raw_address['dtt:PSC'][0..0] == "1" ? self.raw_address['dtt:Nazev_mestske_casti'] : self.raw_address['dtt:Nazev_obce'],
    :street => [street_name, building_number].join(' '),
    :street_name => street_name,
    :building_number => building_number,
    :zip => self.raw_address['dtt:PSC']
  }
    @address[:country] = "Česká republika" if self.raw_address['dtt:Kod_statu'].to_i == 203
  end
  return @address
end

#answerObject

returns just answer part



39
40
41
# File 'lib/ares_cz.rb', line 39

def answer
  @answer ||= self.result["are:Ares_odpovedi"]["are:Odpoved"]["are:Zaznam"]
end

#company_nameObject

returns company name



44
45
46
# File 'lib/ares_cz.rb', line 44

def company_name
  @company_name ||= self.answer["are:Obchodni_firma"]
end

#found?Boolean

returns true if subject found on ares, otherwise false

Returns:

  • (Boolean)


25
26
27
28
# File 'lib/ares_cz.rb', line 25

def found?
  @found ||= !(self.result["are:Ares_odpovedi"]["are:Odpoved"]["are:Pocet_zaznamu"] == '0' ||
    self.result["are:Ares_odpovedi"]["are:Odpoved"]["are:Error"])
end

#icoObject

returns ico



49
50
51
# File 'lib/ares_cz.rb', line 49

def ico
  @ico ||= self.answer["are:ICO"]
end

#paramsObject

returns params like concatenated options



31
32
33
34
35
36
# File 'lib/ares_cz.rb', line 31

def params
  sanitize_options
  @params ||= URI.escape(@options.sort.inject([]) do |res, pair|
     res << "%s=%s" % [pair.first, pair.last]
  end.join('&'))
end

#raw_addressObject

returns raw address



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

def raw_address
  @raw_address ||= if self.subject_type == "P"
                 self.answer["are:Identifikace"]["are:Adresa_ARES"]
               end
end

#subject_typeObject

returns subject type



54
55
56
57
58
# File 'lib/ares_cz.rb', line 54

def subject_type
  @subject_type ||= if self.answer["are:Identifikace"]["are:Osoba"].nil?
                      "P"
                    end
end