Class: QiitaMatome::Display::Displayer
- Inherits:
-
Object
- Object
- QiitaMatome::Display::Displayer
- Defined in:
- lib/display/displayer.rb
Overview
QiitaMatome::Display::Displayer
Instance Attribute Summary collapse
-
#articles ⇒ Object
readonly
Returns the value of attribute articles.
-
#display_columns ⇒ Object
readonly
Returns the value of attribute display_columns.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
Instance Method Summary collapse
- #display_article(no, article) ⇒ Object
- #display_articles ⇒ Object
- #display_title ⇒ Object
-
#initialize(title, articles, display_columns = [:no, :title, :created_at, :stock_count]) ⇒ Displayer
constructor
A new instance of Displayer.
- #matome_updated ⇒ Object
- #table_header ⇒ Object
Constructor Details
#initialize(title, articles, display_columns = [:no, :title, :created_at, :stock_count]) ⇒ Displayer
Returns a new instance of Displayer.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/display/displayer.rb', line 13 def initialize(title, articles, display_columns = [:no, :title, :created_at, :stock_count]) Validators::ArticlesValidator.validate(articles) Validators::ArticleValidator.validate(articles) display_columns_list = Array(display_columns) Validators::DisplayColumnsValidator.validate(display_columns_list) symbolized_display_columns = display_columns_list.map(&:to_sym) @title = title @articles = articles @display_columns = symbolized_display_columns end |
Instance Attribute Details
#articles ⇒ Object (readonly)
Returns the value of attribute articles.
11 12 13 |
# File 'lib/display/displayer.rb', line 11 def articles @articles end |
#display_columns ⇒ Object (readonly)
Returns the value of attribute display_columns.
11 12 13 |
# File 'lib/display/displayer.rb', line 11 def display_columns @display_columns end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
11 12 13 |
# File 'lib/display/displayer.rb', line 11 def title @title end |
Instance Method Details
#display_article(no, article) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/display/displayer.rb', line 39 def display_article(no, article) disp = @display_columns.each_with_object([]) do |item, memo| memo << case item when :no then no when :title then article.title_link when :created_at then article.created_at_ymdhms when :updated_at then article.updated_at_ymdhms when :stock_count then article.stock_count end end "|#{disp.join('|')}|" end |
#display_articles ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/display/displayer.rb', line 52 def display_articles display = [] @articles.each.with_index(1) do |article, no| display << display_article(no, article) end display.join("\n") + "\n" end |
#display_title ⇒ Object
25 26 27 |
# File 'lib/display/displayer.rb', line 25 def display_title "# #{@title}" end |
#matome_updated ⇒ Object
35 36 37 |
# File 'lib/display/displayer.rb', line 35 def matome_updated "更新日: #{DateTime.now.strftime('%Y/%m/%d %H:%M:%S')}" end |
#table_header ⇒ Object
29 30 31 32 33 |
# File 'lib/display/displayer.rb', line 29 def table_header title_header = table_title_header title_align = table_align "#{title_header}\n#{title_align}\n" end |