Module: Enginery

Defined in:
lib/enginery/cli.rb,
lib/enginery/delete.rb,
lib/enginery/enginery.rb,
lib/enginery/migrator.rb,
lib/enginery/registry.rb,
lib/enginery/generator.rb,
lib/enginery/helpers/app.rb,
lib/enginery/helpers/orm.rb,
lib/enginery/configurator.rb,
lib/enginery/helpers/input.rb,
lib/enginery/helpers/generic.rb,
lib/enginery/helpers/validations.rb,
app/migrations/tracking_table/Sequel.rb,
app/migrations/tracking_table/DataMapper.rb,
app/migrations/tracking_table/ActiveRecord.rb

Defined Under Namespace

Modules: Helpers Classes: CLI, Configurator, Delete, Failure, Generator, Migrator, Registry

Constant Summary collapse

ENVIRONMENTS =
[:development, :test, :production].freeze
DEFAULT_TEST_FRAMEWORK =
:Specular
DEFAULT_DB_TYPE =
:sqlite
INDENT =
(' ' * 2).freeze
KNOWN_WEB_SERVERS =
%w[
  WEBrick
  Thin
  Unicorn
  Rainbows
  Puma
  Reel
  Mongrel
  FastCGI
  SCGI
].map(&:to_sym).freeze
TRACKING_TABLE =

using z_ prefix to make sure tracking table shown last when some database management tools used.

:z_enginery_migrator_tracks
TRACKING_TABLE__COLUMNS =
[:migration, :performed_at, :vector].freeze
TRACKING_TABLE__INDEXES =
[:migration].freeze
CONTROLLER_SUFFIX =
'_controller.rb'.freeze
ROUTE_SUFFIX =
'.rb'.freeze
SPEC_SUFFIX =
'_spec.rb'.freeze
MODEL_SUFFIX =
'.rb'.freeze
MIGRATION_SUFFIX =
'.rb'.freeze
HELPER_SUFFIX =
'.rb'.freeze
ADMIN_SUFFIX =

suffix for Rear controllers

'.rb'.freeze
ORM_IDENTITY_METHODS =
{
  ActiveRecord: [:connection, :columns, :reflect_on_all_associations].freeze,
    DataMapper: [:repository, :properties, :relationships].freeze,
        Sequel: [:db_schema, :columns, :dataset].freeze
}.freeze
ORM_MATCHERS =
ORM_ASSOCIATIONS =
[:belongs_to, :has_one, :has_many, :has_and_belongs_to_many].freeze
EXECUTABLE =
File.expand_path('../../../bin/enginery', __FILE__).freeze

Class Method Summary collapse

Class Method Details

.migrator_usageObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/enginery/usage.rb', line 45

def migrator_usage
<<USAGE
Migrator:

enginery m[igration] migration-name m[odel]:Foo c[olumn]:bar     - create bar column of string type
enginery m[igration] migration-name m[odel]:Foo c[olumn]:bar:baz - create bar column of baz type

enginery m[igration] migration-name m[odel]:Foo u[pdate_]c[olumn]:bar:baz - set bar column type to baz

enginery m[igration] migration-name m[odel]:Foo r[ename_]c[olumn]:bar:baz - rename bar column to baz

enginery m[igration]:l[ist]    - list all available migrations

enginery m[igrate]:up|down N   - perform up|down migration with serial number N

enginery m[igrate]:up|down N M - perform up|down migrations with serial numbers N and M

enginery m[igrate]:up|down N-M - perform up|down migrations with serial numbers from N to M
 
USAGE
end

.usageObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/enginery/usage.rb', line 4

def usage
<<USAGE

Enginery version #{EngineryVersion::FULL}

Generator:

enginery g[enerate][:p] Foo  - generates a new application in ./Foo/ folder
enginery g[enerate][:p]      - generates a new application in current folder

enginery g[enerate]:c[ontroller] Foo     - generates Foo controller
enginery g[enerate]:c[ontroller] Foo Bar - generates Foo and Bar controllers

enginery g[enerate]:r[oute] Foo bar      - generates Foo#bar action 
enginery g[enerate]:r[oute] Foo bar baz  - generates Foo#bar and Foo#baz actions

enginery g[enerate]:s[pec] Foo bar - generates a spec for Foo#bar action

enginery g[enerate]:v[iew] Foo bar - generates view file for Foo#bar action

enginery g[enerate]:m[odel] Foo     - generates Foo model
enginery g[enerate]:m[odel] Foo Bar - generates Foo and Bar models

Generator Options:

ORM:
  enginery g o[rm]:[ActiveRecord|ar] - generated project will use ActiveRecord ORM
  enginery g o[rm]:[DataMapper|dm]   - generated project will use DataMapper ORM
  enginery g o[rm]:[Sequel|sq]       - generated project will use Sequel ORM

Engine:
  enginery g[enerate] e[ngine]:Slim              - generated project will use Slim engine
  enginery g[enerate]:c[ontroller] e[ngine]:Haml - generated controller will use Haml engine

  Note: engine name should be provided in full and are case sensitive

#{ migrator_usage }

USAGE
end