Sha256: 95449f0ba47547149f44e6fac7e9da9096ada235fe04f0faf365c48a6099b699
Contents?: true
Size: 1.08 KB
Versions: 2
Compression:
Stored size: 1.08 KB
Contents
require 'jshintrb' module ZendeskAppsSupport module Validations module Translations TRANSLATIONS_PATH = %r{^translations/(.*)\.json$} VALID_LOCALE = /^[a-z]{2}(-\w{2,3})?$/ class << self def call(package) package.files.inject([]) do |errors, file| if path_match = TRANSLATIONS_PATH.match(file.relative_path) errors << locale_error(file, path_match[1]) << json_error(file) end errors end.compact end private def locale_error(file, locale) return nil if VALID_LOCALE =~ locale ValidationError.new('translation.invalid_locale', :file => file.relative_path) end def json_error(file) json = MultiJson.load(file.read) return nil if json.kind_of?(Hash) ValidationError.new('translation.not_json_object', :file => file.relative_path) rescue MultiJson::DecodeError => e ValidationError.new('translation.not_json', :file => file.relative_path, :errors => e) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
zendesk_apps_support-1.7.0 | lib/zendesk_apps_support/validations/translations.rb |
zendesk_apps_support-1.6.0 | lib/zendesk_apps_support/validations/translations.rb |