Sha256: 20107271073c4350f5b41176a693343039c8b0f4c909f546a6f3e78d8bb4a3b3

Contents?: true

Size: 1.02 KB

Versions: 22

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

require_relative '../env'
require_relative '../models/color_theme'
require_relative '../support/color_themable'

module Dsu
  module Views
    class BaseListView
      include Support::ColorThemable

      attr_reader :presenter

      def initialize(presenter:, options: {})
        @presenter = presenter
        @options = options&.dup || {}
        @color_theme = Models::ColorTheme.find(theme_name: theme_name)
      end

      def render
        yield
      rescue StandardError => e
        puts apply_theme(e.message, theme_color: color_theme.error)
        puts apply_theme(e.backtrace_locations.join("\n"), theme_color: color_theme.error) if Dsu.env.local?
      end

      private

      attr_reader :color_theme, :options

      def theme_name
        @theme_name ||= options.fetch(:theme_name, Models::Configuration.new.theme_name)
      end

      def formatted_index(index:)
        apply_theme("#{format('%02s', index + 1)}. ",
          theme_color: color_theme.index)
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
dsu-3.0.5 lib/dsu/views/base_list_view.rb
dsu-3.0.4 lib/dsu/views/base_list_view.rb
dsu-3.0.3 lib/dsu/views/base_list_view.rb
dsu-3.0.1 lib/dsu/views/base_list_view.rb
dsu-3.0.0 lib/dsu/views/base_list_view.rb
dsu-3.0.0.beta.3 lib/dsu/views/base_list_view.rb
dsu-3.0.0.beta.2 lib/dsu/views/base_list_view.rb
dsu-3.0.0.beta.1 lib/dsu/views/base_list_view.rb
dsu-3.0.0.beta.0 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.12 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.11 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.10 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.9 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.8 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.7 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.6 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.5 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.4 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.3 lib/dsu/views/base_list_view.rb
dsu-3.0.0.alpha.2 lib/dsu/views/base_list_view.rb