Class: SequelTools::ActionsManager

Inherits:
Object
  • Object
show all
Defined in:
lib/sequel_tools/actions/up.rb,
lib/sequel_tools/actions/irb.rb,
lib/sequel_tools/actions/down.rb,
lib/sequel_tools/actions/redo.rb,
lib/sequel_tools/actions/seed.rb,
lib/sequel_tools/actions/reset.rb,
lib/sequel_tools/actions/setup.rb,
lib/sequel_tools/actions/shell.rb,
lib/sequel_tools/actions/status.rb,
lib/sequel_tools/actions/drop_db.rb,
lib/sequel_tools/actions/migrate.rb,
lib/sequel_tools/actions/version.rb,
lib/sequel_tools/actions_manager.rb,
lib/sequel_tools/actions/rollback.rb,
lib/sequel_tools/actions/create_db.rb,
lib/sequel_tools/actions/schema_dump.rb,
lib/sequel_tools/actions/schema_load.rb,
lib/sequel_tools/actions/new_migration.rb,
lib/sequel_tools/actions/shell_postgres.rb,
lib/sequel_tools/actions/postgresql_support.rb,
lib/sequel_tools/actions/schema_dump_postgres.rb

Defined Under Namespace

Classes: Action

Constant Summary collapse

URI_BUILDER =
->(config, dbname = config[:dbname]) do
  c = config
  uri_parts = []
  uri_parts << 'jdbc:' if RUBY_PLATFORM == 'java'
  uri_parts << "#{c[:jdbc_adapter] || c[:dbadapter]}://"
  uri_parts << c[:dbhost]
  uri_parts << ':' << c[:dbport] if c[:dbport]
  uri_parts << '/' << dbname
  if user = c[:username]
    uri_parts << '?user=' << user
    uri_parts << '&password=' << c[:password] if c[:password]
  end
  uri_parts.join('')
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ ActionsManager

Returns a new instance of ActionsManager.



22
23
24
25
# File 'lib/sequel_tools/actions_manager.rb', line 22

def initialize(config)
  @actions = []
  @context = { config: config, uri_builder: URI_BUILDER }
end

Instance Attribute Details

#actionsObject (readonly)

Returns the value of attribute actions.



5
6
7
# File 'lib/sequel_tools/actions_manager.rb', line 5

def actions
  @actions
end

#contextObject (readonly)

Returns the value of attribute context.



5
6
7
# File 'lib/sequel_tools/actions_manager.rb', line 5

def context
  @context
end

Instance Method Details

#export_as_rake_tasks(rake_context) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/sequel_tools/actions_manager.rb', line 31

def export_as_rake_tasks(rake_context)
  actions.each do |action|
    ctx = context
    rake_context.instance_eval do
      desc action.description unless action.description.nil?
      task action.name, action.arg_names do |t, args|
        require_relative 'actions/before_task'
        ctx[:current_action] = action
        Action[:before_task].run args, ctx
        action.run args, ctx
      end
    end
  end
end

#load_allObject



27
28
29
# File 'lib/sequel_tools/actions_manager.rb', line 27

def load_all
  @actions.concat Action.registered
end