module Decidim::DecidimAwesome::SystemChecker
Public Class Methods
each(&block)
click to toggle source
# File lib/decidim/decidim_awesome/system_checker.rb, line 27 def each(&block) to_h.each(&block) end
each_file() { |"#{spec.gem_dir}#{file}", signatures| ... }
click to toggle source
# File lib/decidim/decidim_awesome/system_checker.rb, line 31 def each_file each do |_, props| props.files.each do |file, signatures| yield "#{props.spec.gem_dir}#{file}", signatures end end end
overrides()
click to toggle source
List of files overriden by this plugin overriden files has to match MD5 calculation to be sure is the same as the expected
# File lib/decidim/decidim_awesome/system_checker.rb, line 9 def overrides return @overrides if @overrides # rubocop:disable Rails/DynamicFindBy checksums = YAML.load_file("#{__dir__}/checksums.yml") @overrides = checksums.map do |package, files| props = { spec: ::Gem::Specification.find_by_name(package), files: files.transform_values(&:values) } [package, to_struct(props)] end # rubocop:enable Rails/DynamicFindBy @overrides = to_struct(@overrides.to_h) end
valid?(spec, file)
click to toggle source
# File lib/decidim/decidim_awesome/system_checker.rb, line 39 def valid?(spec, file) find_signatures("#{spec.gem_dir}#{file}").detect { |s| md5("#{spec.gem_dir}#{file}") == s } end
Private Class Methods
find_signatures(file)
click to toggle source
# File lib/decidim/decidim_awesome/system_checker.rb, line 45 def find_signatures(file) to_h.each do |_, props| props.files.each do |f, signatures| return signatures if file == "#{props.spec.gem_dir}#{f}" end end end
md5(file)
click to toggle source
# File lib/decidim/decidim_awesome/system_checker.rb, line 53 def md5(file) Digest::MD5.hexdigest(File.read(file)) end
to_struct(obj)
click to toggle source
# File lib/decidim/decidim_awesome/system_checker.rb, line 57 def to_struct(obj) OpenStruct.new obj end