Sha256: a26cb89cf69d68d08b6c5cfaff07dcb5b55c86955530506bc27c9688204c7156

Contents?: true

Size: 1.49 KB

Versions: 6

Compression:

Stored size: 1.49 KB

Contents

module Vim
  module Flavor
    class FlavorFile
      # repo_name -> flavor
      def flavor_table
        @flavor_table ||= {}
      end

      def default_groups
        @default_groups ||= [:runtime]
      end

      def default_group
        default_groups.last
      end

      def self.load_or_new(flavorfile_path)
        ff = new()
        ff.load(flavorfile_path) if File.exists?(flavorfile_path)
        ff
      end

      def self.load(flavorfile_path)
        ff = new()
        ff.load(flavorfile_path)
        ff
      end

      def load(flavorfile_path)
        instance_eval(
          File.open(flavorfile_path, 'r').read(),
          flavorfile_path
        )
      end

      def flavor(repo_name, version_constraint=nil, group: nil, branch: nil)
        if version_constraint and branch
          throw <<-"END"
Found an invalid declaration on #{repo_name}.
A version constraint '#{version_constraint}' and
a branch '#{branch}' are specified at the same time.
But a branch cannot be used with a version constraint.
          END
        end

        f = Flavor.new()
        f.repo_name = repo_name
        f.version_constraint = VersionConstraint.new(
          branch && "branch: #{branch}" ||
          version_constraint || '>= 0'
        )
        f.group = group || default_group
        flavor_table[f.repo_name] = f
      end

      def group(group, &block)
        default_groups.push(group)
        instance_eval &block
      ensure
        default_groups.pop()
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
vim-flavor-2.2.2 lib/vim-flavor/flavorfile.rb
vim-flavor-2.2.1 lib/vim-flavor/flavorfile.rb
vim-flavor-2.2.0 lib/vim-flavor/flavorfile.rb
vim-flavor-2.1.1 lib/vim-flavor/flavorfile.rb
vim-flavor-2.1.0 lib/vim-flavor/flavorfile.rb
vim-flavor-2.0.0 lib/vim-flavor/flavorfile.rb