Sha256: 9335e7feff1a4247eba35766dab14d20d795505f99dc1208fba656997281732e

Contents?: true

Size: 1.29 KB

Versions: 5

Compression:

Stored size: 1.29 KB

Contents

module Cardio
  module Mod
    class Loader
      class SetPatternLoader < Loader
        @module_type = :set_pattern

        def load_strategy_class load_strategy
          case load_strategy
          when :tmp_files
            LoadStrategy::PatternTmpFiles
          else # :eval
            LoadStrategy::Eval
          end
        end

        class Template < ModuleTemplate
          def to_const
            return Object if simple_load?

            Card::Set.const_get_or_set(@pattern.camelize) do
              Class.new(Card::Set::Pattern::Base)
            end
          end

          # correct line number for error messages
          def offset
            -5
          end

          private

          def auto_comment
            %(# Set Pattern: #{@pattern.camelize}\n#)
          end

          def module_chain
            "class Card::Set::#{@pattern.camelize} < Card::Set::Pattern::Base"
          end

          def preamble_bits
            [module_comment,
             module_chain,
             "cattr_accessor :options",
             "class << self"]
          end

          def postamble
            <<-RUBY
              end
              register "#{@pattern}".underscore.to_sym, (options || {})
            end
            RUBY
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
card-1.101.7 lib/cardio/mod/loader/set_pattern_loader.rb
card-1.101.6 lib/cardio/mod/loader/set_pattern_loader.rb
card-1.101.5 lib/cardio/mod/loader/set_pattern_loader.rb
card-1.101.4 lib/cardio/mod/loader/set_pattern_loader.rb
card-1.101.3 lib/cardio/mod/loader/set_pattern_loader.rb