Class: Shields::Badge::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/shields/badge/base.rb

Constant Summary collapse

HTTP_METHOD =
:get
BASE_URL =
{
  "svg" => "https://img.shields.io",
  "png" => "https://raster.shields.io",
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path_parameters: {}, query_parameters: {}, image_type: "svg", **options) ⇒ Base

Returns a new instance of Base.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/shields/badge/base.rb', line 33

def initialize(path_parameters: {}, query_parameters: {}, image_type: "svg", **options)
  if path_parameters.nil? || path_parameters.empty?
    path_parameters = extract_top_level_options(options, self.class::PathDto)
  end
  if query_parameters.nil? || query_parameters.empty?
    query_parameters = extract_top_level_options(options, self.class::QueryDto)
  end
  self.path_parameters = self.class::PathDto.new(**path_parameters)
  self.query_parameters = self.class::QueryDto.new(**query_parameters)
  self.image_type = image_type
  self.anchor_href = options.fetch(:anchor_href, nil)
  self.anchor_params = options.fetch(:anchor_params, {})
  self.label = options.fetch(:label, nil)
end

Instance Attribute Details

#anchor_hrefObject

Returns the value of attribute anchor_href.



26
27
28
# File 'lib/shields/badge/base.rb', line 26

def anchor_href
  @anchor_href
end

#anchor_paramsObject

Returns the value of attribute anchor_params.



26
27
28
# File 'lib/shields/badge/base.rb', line 26

def anchor_params
  @anchor_params
end

#image_typeObject

Returns the value of attribute image_type.



26
27
28
# File 'lib/shields/badge/base.rb', line 26

def image_type
  @image_type
end

#labelObject

Returns the value of attribute label.



26
27
28
# File 'lib/shields/badge/base.rb', line 26

def label
  @label
end

#path_parametersObject

Returns the value of attribute path_parameters.



26
27
28
# File 'lib/shields/badge/base.rb', line 26

def path_parameters
  @path_parameters
end

#query_parametersObject

Returns the value of attribute query_parameters.



26
27
28
# File 'lib/shields/badge/base.rb', line 26

def query_parameters
  @query_parameters
end

Class Method Details

.anchor_href_urlObject



21
22
23
# File 'lib/shields/badge/base.rb', line 21

def anchor_href_url
  raise Errors::NotImplemented, "Subclasses must implement #anchor_href_url"
end

.img_src_urlObject



17
18
19
# File 'lib/shields/badge/base.rb', line 17

def img_src_url
  raise Errors::NotImplemented, "Subclasses must implement #img_src_url"
end

.label_textObject



13
14
15
# File 'lib/shields/badge/base.rb', line 13

def label_text
  raise Errors::NotImplemented, "Subclasses must implement #label_text"
end

Instance Method Details

#format(formatter) ⇒ Object



48
49
50
51
52
53
# File 'lib/shields/badge/base.rb', line 48

def format(formatter)
  args = formatter.signature.each_with_object({}) { |key, memo| memo[key] = send(key) }
  formatter.call(
    **args,
  )
end