Module: Pubid::Ieee::Identifier

Extended by:
Core::Identifier
Defined in:
lib/pubid/ieee/identifier.rb,
lib/pubid/ieee/identifier/base.rb

Defined Under Namespace

Classes: Base

Class Method Summary collapse

Class Method Details

.convert_parser_parameters(type_status: nil, parameters: nil, organizations: { publisher: "IEEE" }, **args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/pubid/ieee/identifier.rb', line 10

def convert_parser_parameters(type_status: nil, parameters: nil,
                                   organizations: { publisher: "IEEE" }, **args)
  res = [organizations, type_status, parameters].inject({}) do |result, data|
    result.merge(
      case data
      when Hash
        data.transform_values do |v|
          (v.is_a?(Array) && v.first.is_a?(Hash) && merge_parameters(v)) || v
        end
      when Array
        merge_parameters(data)
      else
        {}
      end
    )
  end
  res.merge(args)
end

.has_stage?(stage) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/pubid/ieee/identifier.rb', line 45

def has_stage?(stage)
  Pubid::Iso::Identifier.has_stage?(stage)
end

.merge_parameters(params) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/pubid/ieee/identifier.rb', line 29

def merge_parameters(params)
  return params unless params.is_a?(Array)

  result = {}
  params.each do |item|
    item.each do |key, value|
      if result.key?(key)
        result[key] = result[key].is_a?(Array) ? result[key] << value : [result[key], value]
      else
        result[key] = value
      end
    end
  end
  result
end

.parse(*args) ⇒ Object



6
7
8
# File 'lib/pubid/ieee/identifier.rb', line 6

def parse(*args)
  Base.parse(*args)
end