Sha256: 87380108ad4e045a58ec571d7bdb99b981197ce31e40cad3033189f30a6f4b59

Contents?: true

Size: 872 Bytes

Versions: 33

Compression:

Stored size: 872 Bytes

Contents

module Vp
  module Pears
    class VpTheme < ::Pears::Provider::LocalFile
      class InvalidVpTheme < StandardError; end;

      # Get all
      THEMES = Dir[
        "#{__FILE__}".split('/')
            .slice(0..-4)
            .join('/')
            .+('/themes/*')
      ]

      MAP = Hash[
        THEMES.map do |fil|
          fil.split('/')
              .last
              .delete_suffix('.yml')
        end.zip(THEMES)
      ].with_indifferent_access.freeze

      def initialize(name, on_failure: :raise)
        file = MAP[name&.downcase]
        raise InvalidVpTheme.new(name) unless file.present?

        super(file, on_failure: on_failure)
      rescue InvalidVpTheme => e
        if on_failure == :null
          @data = {}
        else
          raise e
        end
      end
    end

    ::Pears::Provider::Builder.enable_provider VpTheme
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
vp-themes-0.1.21 lib/vp/pears/vp_theme.rb
vp-themes-0.1.20 lib/vp/pears/vp_theme.rb
vp-themes-0.1.19 lib/vp/pears/vp_theme.rb
vp-themes-0.1.18 lib/vp/pears/vp_theme.rb
vp-themes-0.1.17 lib/vp/pears/vp_theme.rb
vp-themes-0.1.16 lib/vp/pears/vp_theme.rb
vp-themes-0.1.15 lib/vp/pears/vp_theme.rb
vp-themes-0.1.14 lib/vp/pears/vp_theme.rb
vp-themes-0.1.13 lib/vp/pears/vp_theme.rb
vp-themes-0.1.12 lib/vp/pears/vp_theme.rb
vp-themes-0.1.11 lib/vp/pears/vp_theme.rb
vp-themes-0.1.10 lib/vp/pears/vp_theme.rb
vp-themes-0.1.6 lib/vp/pears/vp_theme.rb