class Ellipses::Client::Application
Attributes
config[R]
loader[R]
repository[R]
Public Class Methods
new(loader: nil, repository: nil, **options)
click to toggle source
# File lib/ellipses/client/application.rb, line 8 def initialize(loader: nil, repository: nil, **options) @config = Config.new(**options) @loader = loader || MetaFile.new @repository = repository || Repository.new(@loader, @config) end
Public Instance Methods
compile(file)
click to toggle source
# File lib/ellipses/client/application.rb, line 24 def compile(file) init! repository.register(file).recompile end
compile!(file)
click to toggle source
# File lib/ellipses/client/application.rb, line 29 def compile!(file) compile(file) shutdown end
decompile(file)
click to toggle source
# File lib/ellipses/client/application.rb, line 34 def decompile(file) init! return unless repository.registered?(file) repository[file].decompile repository.unregister(file) end
decompile!(file)
click to toggle source
# File lib/ellipses/client/application.rb, line 42 def decompile!(file) decompile(file) shutdown end
dump()
click to toggle source
# File lib/ellipses/client/application.rb, line 57 def dump repository.dump end
init(directory)
click to toggle source
# File lib/ellipses/client/application.rb, line 14 def init(directory) @loader = MetaFile.create(directory) end
shutdown()
click to toggle source
# File lib/ellipses/client/application.rb, line 18 def shutdown Support::UI.warn 'Nothing changed' unless repository.save loader.write(dump) and Support::UI.info('Updated lock file') end
update()
click to toggle source
# File lib/ellipses/client/application.rb, line 47 def update init! repository.each_source(&:recompile) shutdown end
validate!(*)
click to toggle source
# File lib/ellipses/client/application.rb, line 53 def validate!(*) raise NotImplementedError end
Private Instance Methods
init!()
click to toggle source
# File lib/ellipses/client/application.rb, line 63 def init! raise Error, 'Must be initialized' unless loader.loaded? repository.load(loader) end