Class: Ellipses::Client::Source
- Inherits:
-
Object
- Object
- Ellipses::Client::Source
- Defined in:
- lib/ellipses/client/source.rb
Instance Attribute Summary collapse
-
#series ⇒ Object
readonly
Returns the value of attribute series.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
Class Method Summary collapse
Instance Method Summary collapse
- #compile ⇒ Object
- #decompile ⇒ Object
-
#initialize(lines, series, server) ⇒ Source
constructor
A new instance of Source.
- #lines ⇒ Object
- #recompile ⇒ Object
Constructor Details
#initialize(lines, series, server) ⇒ Source
Returns a new instance of Source.
10 11 12 13 14 |
# File 'lib/ellipses/client/source.rb', line 10 def initialize(lines, series, server) @lines = lines @series = series || [] @server = server end |
Instance Attribute Details
#series ⇒ Object (readonly)
Returns the value of attribute series.
8 9 10 |
# File 'lib/ellipses/client/source.rb', line 8 def series @series end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
8 9 10 |
# File 'lib/ellipses/client/source.rb', line 8 def server @server end |
Class Method Details
.from_file(file, paths, series = nil) ⇒ Object
63 64 65 66 |
# File 'lib/ellipses/client/source.rb', line 63 def from_file(file, paths, series = nil) lines = File.readlines(Support.file!(file, error: Error)).lazy new lines, series, Server::Application.new(paths) end |
Instance Method Details
#compile ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/ellipses/client/source.rb', line 28 def compile new_lines = Lines[] lines.each do |line| new_lines.append(*(Parser.match?(line) ? execute_and_record(line) : line)) end @lines = new_lines end |
#decompile ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/ellipses/client/source.rb', line 20 def decompile return if series.empty? while (lock = series.shift) lines.substitute_uniq_like_chunk!(lock.insertion, lock.directive) end end |
#lines ⇒ Object
16 17 18 |
# File 'lib/ellipses/client/source.rb', line 16 def lines @lines.is_a?(Lines) ? @lines : (@lines = Lines.new @lines.to_a) end |
#recompile ⇒ Object
38 39 40 41 |
# File 'lib/ellipses/client/source.rb', line 38 def recompile decompile compile end |