Sha256: 1dbfd33110946ee30cc807c2ed56bd30db5d95d01d96b720fecf53be5fd4a723

Contents?: true

Size: 623 Bytes

Versions: 30

Compression:

Stored size: 623 Bytes

Contents

require 'json'
require 'pre-commit/checks/plugin'

module PreCommit
  module Checks
    class Json < Plugin
      def call(staged_files)
        staged_files = staged_files.grep(/\.json$/)
        return if staged_files.empty?

        errors = staged_files.map {|file| load_file(file)}.compact

        errors.join("\n") + "\n" unless errors.empty?
      end

      def load_file(file)
        File.open(file) {|io| JSON.load(io)}
        nil
      rescue JSON::ParserError => e
        "#{e.message} parsing #{file}"
      end

      def self.description
        'Runs json to detect errors.'
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
pre-commit-0.40.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.39.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.38.1 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.38.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.37.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.36.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.35.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.34.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.33.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.32.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.31.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.30.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.29.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.28.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.27.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.26.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.25.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.24.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.23.0 lib/plugins/pre_commit/checks/json.rb
pre-commit-0.22.1 lib/plugins/pre_commit/checks/json.rb