hekenga 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/exe/hekenga +18 -0
- data/lib/hekenga/scaffold.rb +62 -0
- data/lib/hekenga/version.rb +1 -1
- data/lib/hekenga.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cf17b971c05bcd12752ba2fee74a7ff91822bb3
|
4
|
+
data.tar.gz: c1bf8483ec9c90af9b9928e8824145947a5a77c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb3af1f89fa0245d6342cd75ddd819da3503091f36356d4d6d38ddc27bb54c25e5f31184f2f57c164cbd23fc7e0f7ef32338f36aa5c8a67c65fb332383ad0b6d
|
7
|
+
data.tar.gz: 5feb76a672d70b79fdfc09f44c8770a048de7ce84a928a6476971f74d8cf31258e5473e48426cfb6f5c99381f64f843d943675951e6b0287ecc5b81a86acb37b
|
data/exe/hekenga
CHANGED
@@ -8,6 +8,7 @@ end
|
|
8
8
|
|
9
9
|
require "hekenga"
|
10
10
|
require "thor"
|
11
|
+
require "pathname"
|
11
12
|
|
12
13
|
class HekengaCLI < Thor
|
13
14
|
desc "status", "Show which migrations have run and their status."
|
@@ -110,6 +111,23 @@ class HekengaCLI < Thor
|
|
110
111
|
puts "Done!"
|
111
112
|
end
|
112
113
|
|
114
|
+
desc "generate <description> --edit", "Generate a migration scaffold (and optionally edit in your editor)."
|
115
|
+
option :edit
|
116
|
+
def generate(*description)
|
117
|
+
description = description.join(" ")
|
118
|
+
scaffold = Hekenga::Scaffold.new(description)
|
119
|
+
scaffold.write!
|
120
|
+
puts "Done! You can find your migration in:"
|
121
|
+
path = Pathname.new(scaffold.to_path).relative_path_from(Pathname.new(Dir.pwd)).to_s
|
122
|
+
puts path
|
123
|
+
if options[:edit]
|
124
|
+
if !ENV["EDITOR"]
|
125
|
+
puts "You need to set EDITOR in your ENV to use this feature."
|
126
|
+
exit(0)
|
127
|
+
end
|
128
|
+
exec "$EDITOR #{path}"
|
129
|
+
end
|
130
|
+
end
|
113
131
|
private
|
114
132
|
|
115
133
|
def todo(op)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'hekenga/migration'
|
2
|
+
module Hekenga
|
3
|
+
class Scaffold
|
4
|
+
def initialize(description)
|
5
|
+
@migration = Hekenga::Migration.new.tap do |migration|
|
6
|
+
migration.description = description
|
7
|
+
migration.stamp = Time.now
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def write!
|
12
|
+
if File.exist?(to_path)
|
13
|
+
raise "That migration already exists!"
|
14
|
+
end
|
15
|
+
File.open(to_path, "w") {|f| f.puts self }
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_path
|
19
|
+
@path ||= File.join(Hekenga.config.abs_dir, @migration.to_key+".rb")
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_s
|
23
|
+
<<-EOF.strip_heredoc
|
24
|
+
Hekenga.migration do
|
25
|
+
## Required
|
26
|
+
description #{@migration.description.inspect}
|
27
|
+
created #{@migration.timestamp.sub("T", " ").inspect}
|
28
|
+
|
29
|
+
## Optional
|
30
|
+
# batch_size 10
|
31
|
+
|
32
|
+
## Simple tasks
|
33
|
+
# task "task description" do
|
34
|
+
# up do
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
|
38
|
+
## Per document tasks
|
39
|
+
# per_document "task description" do
|
40
|
+
# ## Required
|
41
|
+
# scope MyModel.all
|
42
|
+
#
|
43
|
+
# ## Optional config
|
44
|
+
# # parallel!
|
45
|
+
# # timeless!
|
46
|
+
# # skip_prepare!
|
47
|
+
# # when_invalid :prompt # :prompt, :cancel, :stop, :continue
|
48
|
+
# #
|
49
|
+
# # setup do
|
50
|
+
# # end
|
51
|
+
# # filter do
|
52
|
+
# # end
|
53
|
+
#
|
54
|
+
# up do |doc|
|
55
|
+
# end
|
56
|
+
# end
|
57
|
+
end
|
58
|
+
EOF
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
data/lib/hekenga/version.rb
CHANGED
data/lib/hekenga.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hekenga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tapio Saarinen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -175,6 +175,7 @@ files:
|
|
175
175
|
- lib/hekenga/master_process.rb
|
176
176
|
- lib/hekenga/migration.rb
|
177
177
|
- lib/hekenga/parallel_job.rb
|
178
|
+
- lib/hekenga/scaffold.rb
|
178
179
|
- lib/hekenga/simple_task.rb
|
179
180
|
- lib/hekenga/version.rb
|
180
181
|
- lib/hekenga/virtual_method.rb
|