Sha256: 81531fa5306ffec9d5f12e3888e2c47d2d4057173cfbff888b4b82ad2a378c74

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

require 'plist'
require 'playground_book_lint/abstract_linter'

module PlaygroundBookLint
  MANIFEST_FILE_NAME = 'Manifest.plist'

  class ManifestLinter < AbstractLinter

    #TODO: Should load manifest file in initialize instead of lazily.

    def lint
      fail_lint "No Manifest file in #{Dir.pwd}" unless manifest_file_exists?
      fail_lint "Manifest file missing Name in #{Dir.pwd}" unless has_name?
    end

    def manifest_file_exists?
      return File.exists? MANIFEST_FILE_NAME
    end

    def manifest_plist_contents
      return @manifest_plist_contents unless @manifest_plist_contents.nil?
      require 'plist'
      @manifest_plist_contents = Plist::parse_xml(MANIFEST_FILE_NAME)
      return @manifest_plist_contents
    end

    def has_name?
      value_defined_in_manifest?('Name')
    end

    def value_defined_in_manifest?(key)
      return false if manifest_plist_contents.nil?
      return false if manifest_plist_contents[key].nil?
      return false if manifest_plist_contents[key].empty?
      return true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
playground-book-lint-0.0.1 lib/playground_book_lint/manifest_linter.rb