Sha256: c33daa9920484cc68b55f81e6aea0479d72e3dff81525d5244d594818f0928e8
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true require "pathname" module ThemeCheck class ThemeFile attr_reader :version, :storage def initialize(relative_path, storage) @relative_path = relative_path @storage = storage @source = nil @version = nil @eol = "\n" end def path @storage.path(@relative_path) end def relative_path @relative_pathname ||= Pathname.new(@relative_path) end def name relative_path.sub_ext('').to_s end # For the corrector to work properly, we should have a # simple mental model of the internal representation of eol # characters (Windows uses \r\n, Linux uses \n). # # Parser::Source::Buffer strips the \r from the source file, so if # you are autocorrecting the file you might lose that info and # cause a git diff. It also makes the node.start_index/end_index # calculation break. That's not cool. # # So in here we track whether the source file has \r\n in it and # we'll make sure that the file we write has the same eol as the # source file. def source return @source if @source if @storage.versioned? @source, @version = @storage.read_version(@relative_path) else @source = @storage.read(@relative_path) end @eol = @source.include?("\r\n") ? "\r\n" : "\n" @source = @source.gsub("\r\n", "\n") end def json? false end def liquid? false end def ==(other) other.is_a?(self.class) && relative_path == other.relative_path end alias_method :eql?, :== end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
theme-check-1.9.2 | lib/theme_check/theme_file.rb |
theme-check-1.9.1 | lib/theme_check/theme_file.rb |
theme-check-1.9.0 | lib/theme_check/theme_file.rb |