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