class XCAssetsCop::LinterRule

Attributes

config[R]
paths[R]

Public Class Methods

ensure_all_keys_are_allowed(obj) click to toggle source
# File lib/xcassetscop/linter_rule.rb, line 25
def self.ensure_all_keys_are_allowed(obj)
  diff = obj.keys.map(&:to_sym) - %i[paths config]
  raise StandardError, "Unexpected key#{'s' if diff.size > 1}: #{diff.map { |s| "'#{s}'" }.join(', ')}" if diff.size.positive?
end
ensure_no_missing_keys(obj) click to toggle source
# File lib/xcassetscop/linter_rule.rb, line 17
def self.ensure_no_missing_keys(obj)
  obj_sym = obj.keys.map(&:to_sym)
  missing_keys = []
  missing_keys << :paths unless obj_sym.include? :paths
  missing_keys << :config unless obj_sym.include? :config
  raise StandardError, "Missing key#{'s' if missing_keys.size > 1}: #{missing_keys.map { |s| "'#{s}'" }.join(', ')}" if missing_keys.size.positive?
end
new(obj) click to toggle source
# File lib/xcassetscop/linter_rule.rb, line 9
def initialize(obj)
  LinterRule.ensure_no_missing_keys obj
  LinterRule.ensure_all_keys_are_allowed obj
  expanded_paths = obj.sdig(:paths).map { |path| File.expand_path(path) }
  @paths = Dir.glob(expanded_paths)
  @config = ConfigOptions.new obj.sdig(:config)
end