Module: Terjira::ProjectPresenter
- Included in:
- BaseCLI
- Defined in:
- lib/terjira/presenters/project_presenter.rb
Instance Method Summary collapse
- #redner_project_detail(project) ⇒ Object
- #render_components_and_versions(project) ⇒ Object
- #render_projects_summary(projects) ⇒ Object
Instance Method Details
#redner_project_detail(project) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/terjira/presenters/project_presenter.rb', line 34 def redner_project_detail(project) head = nil rows = [] rows << (pastel.blue.bold(project.key) + ' ' + project.name) if project.respond_to?(:description) rows << '' rows << pastel.bold('Description') rows << (project.description.strip.empty? ? 'None' : project.description) end rows << '' rows << pastel.bold('Lead') rows << username(project.lead) rows << '' rows << render_components_and_versions(project) table = TTY::Table.new head, rows.map { |row| [row] } result = table.render(:unicode, padding: [0, 1, 0, 1], multiline: true) render(result) end |
#render_components_and_versions(project) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/terjira/presenters/project_presenter.rb', line 55 def render_components_and_versions(project) componets = project.components.map(&:name) componets = componets.size.zero? ? 'Empty' : componets.join("\n") versions = project.versions.reject(&:released).map(&:name) versions = versions.size.zero? ? 'Empty' : versions.join("\n") header = [pastel.bold('Components'), pastel.bold('Unreleased versions')] row = [[componets, versions]] table = TTY::Table.new(header, row) table.render(padding: [0, 1, 0, 0], multiline: true) end |
#render_projects_summary(projects) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/terjira/presenters/project_presenter.rb', line 8 def render_projects_summary(projects) return render('Nothing.') if projects.blank? head = %w(KEY NAME TYPE).map do |v| { value: v, alignment: :center } end rows = projects.map do |project| [project.key, project.name, project.try(:projectTypeKey)] end table = TTY::Table.new head, rows pastel = Pastel.new result = table.render(:unicode, padding: [0, 1, 0, 1]) do |renderer| renderer.filter = proc do |val, ri, ci| if ri.zero? || ci.zero? pastel.bold(val) else val end end end render(result) end |