class RpiMarca::Publication
Constants
- NATURE_NORMALIZATION
Attributes
agent[R]
application[R]
disclaimer[R]
expires_on[R]
filed_on[R]
granted_on[R]
kind[R]
national_class[R]
nature[R]
ncl[R]
owners[R]
previous_applications[R]
priorities[R]
rules[R]
trademark[R]
vienna_class[R]
Public Class Methods
new(publication)
click to toggle source
# File lib/rpi_marca/publication.rb, line 35 def initialize(publication) @rules = [] @owners = [] @previous_applications = [] @priorities = [] element = validate_and_parse_publication(publication) parse_element_children(element) end
Protected Instance Methods
parse_element_apostila(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 132 def parse_element_apostila(el) @disclaimer = Helpers.get_element_value(el) end
parse_element_children(publication)
click to toggle source
# File lib/rpi_marca/publication.rb, line 62 def parse_element_children(publication) parse_element_processo(publication) publication.elements.each do |el| normalized_element_name = el.name.gsub('-', '_') parse_method = "parse_element_#{normalized_element_name}".to_sym fail ParseError unless respond_to?(parse_method, true) __send__(parse_method, el) end end
parse_element_classe_nacional(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 120 def parse_element_classe_nacional(el) @national_class = NationalClass.parse(el) end
parse_element_classe_nice(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 116 def parse_element_classe_nice(el) @ncl = Ncl.parse(el) end
parse_element_classes_vienna(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 124 def parse_element_classes_vienna(el) @vienna_class = ViennaClass.parse(el) end
parse_element_despachos(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 89 def parse_element_despachos(el) el = el.elements fail ParseError if el.empty? @rules = el.map { |rule| Rule.parse(rule) } end
parse_element_marca(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 109 def parse_element_marca(el) @trademark = Helpers.get_element_value(el.at_xpath('.//nome')) @kind = Helpers.get_attribute_value(el, 'apresentacao') nature = Helpers.get_attribute_value(el, 'natureza') @nature = NATURE_NORMALIZATION.fetch(nature, nature) end
parse_element_prioridade_unionista(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 128 def parse_element_prioridade_unionista(el) @priorities = el.elements.map { |prio| Priority.parse(prio) } end
parse_element_processo(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 75 def parse_element_processo(el) @application = Helpers.get_attribute_value(el, 'numero') or fail ParseError @filed_on = Helpers.parse_date(Helpers.get_attribute_value(el, 'data-deposito')) @granted_on = Helpers.parse_date(Helpers.get_attribute_value(el, 'data-concessao')) @expires_on = Helpers.parse_date(Helpers.get_attribute_value(el, 'data-vigencia')) fail ParseError if @granted_on && @expires_on.nil? fail ParseError if @expires_on && @granted_on.nil? end
parse_element_procurador(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 96 def parse_element_procurador(el) @agent = Helpers.get_element_value(el) end
parse_element_sobrestadores(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 104 def parse_element_sobrestadores(el) @previous_applications = el.elements.map { |application| PreviousApplication.parse(application) } end
parse_element_titulares(el)
click to toggle source
# File lib/rpi_marca/publication.rb, line 100 def parse_element_titulares(el) @owners = el.elements.map { |owner| Owner.parse(owner) } end
validate_and_parse_publication(element)
click to toggle source
# File lib/rpi_marca/publication.rb, line 47 def validate_and_parse_publication(element) element = if element.is_a? Nokogiri::XML::Element element elsif element.is_a? String Nokogiri::XML(element).at_xpath('//processo') else fail ParseError, "Input couldn't be recognized as a publication" end fail ParseError if element.name != 'processo' element end