Sha256: 6a71cfac495a609b2e88aa28dc23a91b692dc242314857449ec01a5b4c9a4f7c

Contents?: true

Size: 943 Bytes

Versions: 3

Compression:

Stored size: 943 Bytes

Contents

module Cardio
  class Mod
    # Shared code for the three different load strategies: Eval, TmpFiles and BindingMagic
    class LoadStrategy
      class << self
        attr_accessor :tmp_files, :current

        def class_for_set strategy
          case strategy
          when :tmp_files     then SetTmpFiles
          when :binding_magic then SetBindingMagic
          else                     Eval
          end
        end

        def class_for_set_pattern strategy
          return PatternTmpFiles if strategy == :tmp_files

          Eval
        end

        def tmp_files?
          Cardio.config.load_strategy == :tmp_files
        end
      end

      attr_reader :loader
      delegate :template_class, :each_file, :mod_dirs, :parts_from_path, to: :loader

      def initialize loader
        LoadStrategy.current = self.class
        @loader = loader
      end

      def clean_comments?
        false
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
card-1.103.2 lib/cardio/mod/load_strategy.rb
card-1.103.1 lib/cardio/mod/load_strategy.rb
card-1.103.0 lib/cardio/mod/load_strategy.rb