class Prism::Relocation::Repository
一个仓库是字段和一组条目的配置集合,它知道如何重新解析源并重新实现这些值。
属性
已在此仓库中保存的条目。
已在此仓库中配置的字段。
与此仓库关联的源。它将是 SourceFilepath
(最常见的用例)或 SourceString
。
公共类方法
源
# File lib/prism/relocation.rb, line 369 def initialize(source) @source = source @fields = {} @entries = Hash.new { |hash, node_id| hash[node_id] = {} } end
使用给定的源初始化新的仓库。
公共实例方法
源
# File lib/prism/relocation.rb, line 415 def character_columns field(:character_columns, CharacterColumnsField.new) end
为此仓库配置字符列字段并返回 self。
源
# File lib/prism/relocation.rb, line 398 def character_offsets field(:character_offsets, CharacterOffsetsField.new) end
为此仓库配置字符偏移字段并返回 self。
源
# File lib/prism/relocation.rb, line 421 def code_unit_columns(encoding) field(:code_unit_columns, CodeUnitColumnsField.new(self, encoding)) end
为此仓库配置特定编码的代码单元列字段并返回 self。
源
# File lib/prism/relocation.rb, line 404 def code_unit_offsets(encoding) field(:code_unit_offsets, CodeUnitOffsetsField.new(self, encoding)) end
为此仓库配置特定编码的代码单元偏移字段并返回 self。
源
# File lib/prism/relocation.rb, line 376 def code_units_cache(encoding) source.code_units_cache(encoding) end
从源为给定的编码创建代码单元缓存。
源
# File lib/prism/relocation.rb, line 409 def columns field(:columns, ColumnsField.new) end
为此仓库配置列字段并返回 self。
源
# File lib/prism/relocation.rb, line 439 def comments leading_comments.trailing_comments end
为此仓库配置前导和尾随注释字段,并返回 self。
源
# File lib/prism/relocation.rb, line 381 def filepath raise ConfigurationError, "Can only specify filepath for a filepath source" unless source.is_a?(SourceFilepath) field(:filepath, FilepathField.new(source.value)) end
为此仓库配置文件路径字段并返回 self。
源
# File lib/prism/relocation.rb, line 427 def leading_comments field(:leading_comments, LeadingCommentsField.new) end
为此仓库配置前导注释字段并返回 self。
源
# File lib/prism/relocation.rb, line 387 def lines field(:lines, LinesField.new) end
为此仓库配置行字段并返回 self。
源
# File lib/prism/relocation.rb, line 392 def offsets field(:offsets, OffsetsField.new) end
为此仓库配置偏移字段并返回 self。
源
# File lib/prism/relocation.rb, line 433 def trailing_comments field(:trailing_comments, TrailingCommentsField.new) end
为此仓库配置尾随注释字段并返回 self。
私有实例方法
源
# File lib/prism/relocation.rb, line 487 def field(name, value) raise ConfigurationError, "Cannot specify multiple #{name} fields" if @fields.key?(name) @fields[name] = value self end
将给定的字段附加到仓库,并返回仓库,以便这些调用可以链式调用。