Class: Pubid::Core::Renderer::Base
- Inherits:
-
Object
- Object
- Pubid::Core::Renderer::Base
- Defined in:
- lib/pubid/core/renderer/base.rb
Direct Known Subclasses
Constant Summary collapse
- LANGUAGES =
{ "ru" => "R", "fr" => "F", "en" => "E", "ar" => "A", }.freeze
Instance Attribute Summary collapse
-
#params ⇒ Object
Returns the value of attribute params.
Instance Method Summary collapse
-
#initialize(params) ⇒ Base
constructor
A new instance of Base.
- #prerender_params(params, opts) ⇒ Object
-
#render(with_date: true, with_language_code: :iso) ⇒ Object
render from hash keys.
- #render_amendments(amendments, _opts, _params) ⇒ Object
- #render_base(params, prefix = "") ⇒ Object
- #render_copublisher(copublisher, _opts, _params) ⇒ Object
- #render_corrigendums(corrigendums, _opts, _params) ⇒ Object
- #render_identifier(params) ⇒ Object
- #render_language(language, opts, _params) ⇒ Object
- #render_part(part, opts, _params) ⇒ Object
- #render_year(year, opts, _params) ⇒ Object
Constructor Details
#initialize(params) ⇒ Base
Returns a new instance of Base.
12 13 14 |
# File 'lib/pubid/core/renderer/base.rb', line 12 def initialize(params) @params = params end |
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
3 4 5 |
# File 'lib/pubid/core/renderer/base.rb', line 3 def params @params end |
Instance Method Details
#prerender_params(params, opts) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/pubid/core/renderer/base.rb', line 16 def prerender_params(params, opts) params.map do |key, value| next unless value if respond_to?("render_#{key}") [key, send("render_#{key}", value, opts, params)] else [key, value] end end.compact.to_h end |
#render(with_date: true, with_language_code: :iso) ⇒ Object
render from hash keys
28 29 30 31 32 33 34 35 |
# File 'lib/pubid/core/renderer/base.rb', line 28 def render(with_date: true, with_language_code: :iso) params = prerender_params(@params, { with_date: with_date, with_language_code: with_language_code }) # render empty string when the key is not exist params.default = "" render_identifier(params) end |
#render_amendments(amendments, _opts, _params) ⇒ Object
56 57 58 |
# File 'lib/pubid/core/renderer/base.rb', line 56 def render_amendments(amendments, _opts, _params) amendments.sort.map(&:render_pubid).join("+") end |
#render_base(params, prefix = "") ⇒ Object
37 38 39 |
# File 'lib/pubid/core/renderer/base.rb', line 37 def render_base(params, prefix = "") "%{publisher}%{copublisher}#{prefix} %{number}" % params end |
#render_copublisher(copublisher, _opts, _params) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/pubid/core/renderer/base.rb', line 45 def render_copublisher(copublisher, _opts, _params) # ([email protected]_a?(Array) && [@copublisher]) || @copublisher if copublisher.is_a?(Array) copublisher.map(&:to_s).sort.map do |copublisher| "/#{copublisher.gsub('-', '/')}" end.join else "/#{copublisher}" end end |
#render_corrigendums(corrigendums, _opts, _params) ⇒ Object
60 61 62 |
# File 'lib/pubid/core/renderer/base.rb', line 60 def render_corrigendums(corrigendums, _opts, _params) corrigendums.sort.map(&:render_pubid).join("+") end |
#render_identifier(params) ⇒ Object
41 42 43 |
# File 'lib/pubid/core/renderer/base.rb', line 41 def render_identifier(params) render_base(params) end |
#render_language(language, opts, _params) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/pubid/core/renderer/base.rb', line 73 def render_language(language, opts, _params) if opts[:with_language_code] == :single "(#{LANGUAGES[language]})" else "(#{language})" end end |
#render_part(part, opts, _params) ⇒ Object
65 66 67 |
# File 'lib/pubid/core/renderer/base.rb', line 65 def render_part(part, opts, _params) "-#{part}" end |
#render_year(year, opts, _params) ⇒ Object
69 70 71 |
# File 'lib/pubid/core/renderer/base.rb', line 69 def render_year(year, opts, _params) opts[:with_date] && ":#{year}" || "" end |