Sha256: 0895704ebb641b39e6cfea0c2b3c0c6b1411b416f548f1f23e6a408948ea270d

Contents?: true

Size: 1.56 KB

Versions: 8

Compression:

Stored size: 1.56 KB

Contents

require 'valise/utils'
require 'valise/search-root'
require 'valise/item'

module Valise
  class Set
    class StemmedDefiner
      include Unpath
      def initialize(path, set)
        @segments = make_pathname(path)
        @target = set
      end

      def rw(name)
        @target.add_search_root(
          StemDecorator.new(@segments, SearchRoot.new(name)))
      end

      def ro(name)
        @target.add_search_root(
          StemDecorator.new(@segments, ReadOnlySearchRoot.new(name)))
      end
    end

    class Definer
      include Unpath
      def initialize(set)
        @target = set
      end

      def rw(name, path = nil)
        @target.add_search_root(SearchRoot.new(name))
      end

      def ro(name, path = nil)
        @target.add_search_root(ReadOnlySearchRoot.new(name))
      end

      def stemmed(path, &block)
        definer = StemmedDefiner.new(path, @target)
        definer.instance_eval(&block) unless block.nil?
        return definer
      end

      def handle(path, serialization, merge_diff = nil)
        @target.add_handler(make_pathname(path),
                            serialization,
                            merge_diff)
      end

      def serialize(path, serialization, options = nil)
        @target.add_serialization_handler(path, serialization, options)
      end

      def merge(path, merge_diff, options = nil)
        @target.add_merge_diff_handler(path, merge_diff, options)
      end

      def defaults(name=nil, &block)
        loc = DefinedDefaults.define(&block)
        @target.add_search_root(loc)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
valise-1.2.1 lib/valise/set/definer.rb
valise-1.2.0 lib/valise/set/definer.rb
valise-1.1.4 lib/valise/set/definer.rb
valise-1.1.3 lib/valise/set/definer.rb
valise-1.1.2 lib/valise/set/definer.rb
valise-1.1.1 lib/valise/set/definer.rb
valise-1.1.0 lib/valise/set/definer.rb
valise-1.0.0 lib/valise/set/definer.rb