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