class Smooth::Application

Attributes

options[R]

Public Class Methods

new(options = {}, &block) click to toggle source
# File lib/smooth/application.rb, line 8
def initialize(options = {}, &block)
  @options = options
  instance_eval(&block) if block_given?

  config do
    self.root = options[:root]
  end

  boot unless options[:defer]
end

Public Instance Methods

api() click to toggle source
# File lib/smooth/application.rb, line 32
def api
  @api ||= Smooth(options[:api] || :default)
end
boot() click to toggle source
# File lib/smooth/application.rb, line 58
def boot
  @boot ||= begin
              Smooth.active_record.establish_connection
              load_models
              Smooth.eager_load_from_app_folders
            end
end
command(*args) click to toggle source
# File lib/smooth/application.rb, line 48
def command(*args)
  smooth.send(:run_command, *args)
end
config(&block) click to toggle source
# File lib/smooth/application.rb, line 19
def config(&block)
  Smooth.config(&block)
end
console() click to toggle source
# File lib/smooth/application.rb, line 23
def console
  require 'pry'
  Pry.start(self, {})
end
load_models() click to toggle source
# File lib/smooth/application.rb, line 52
def load_models
  Dir[config.models_path.join('**/*.rb')].each do |f|
    require config.models_path.join(f)
  end
end
query(*args) click to toggle source
# File lib/smooth/application.rb, line 44
def query(*args)
  smooth.send(:query, *args)
end
resource(*args, &_block) click to toggle source
# File lib/smooth/application.rb, line 40
def resource(*args, &_block)
  api.send(:resource, *args)
end
smooth() click to toggle source
# File lib/smooth/application.rb, line 36
def smooth
  @smooth ||= api.as(system_user)
end
system_user() click to toggle source
# File lib/smooth/application.rb, line 28
def system_user
  @system_user ||= User.new(email: 'system@smooth.io', role: 'system')
end