Sha256: 886fb1665587e352d9d7869860e4a97f9b5c03fca1ed76fcc38abbb4b1541691

Contents?: true

Size: 567 Bytes

Versions: 4

Compression:

Stored size: 567 Bytes

Contents

module Troy
  class Meta
    extend Forwardable
    def_delegators :data, :[], :fetch, :key?

    REGEX = /^---\n(.*?)\n---\n+/m

    attr_reader :file

    def initialize(file)
      @file = file
    end

    def content
      @content ||= raw.gsub(REGEX, "")
    end

    def data
      @data ||= (raw =~ REGEX ? YAML.load(raw[REGEX, 1]) : {})
    end

    def method_missing(name, *args, &block)
      self[name]
    end

    def respond_to_missing?(method, include_private = false)
      true
    end

    def raw
      @raw ||= File.read(file)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
troy-0.0.4 lib/troy/meta.rb
troy-0.0.3 lib/troy/meta.rb
troy-0.0.2 lib/troy/meta.rb
troy-0.0.1 lib/troy/meta.rb