duck_duck_duck 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb33bc9a033282d066dd12a980c0a41ecfcfeca5
4
- data.tar.gz: 95a6f37f30a099bafcf45db109d14a06d7b91a5e
3
+ metadata.gz: 730c26a37602ac9968f9c396bbe1132693a91c08
4
+ data.tar.gz: a45ea124b26a4844a9c95aa8c0e6b6f3080a47cb
5
5
  SHA512:
6
- metadata.gz: eeedc977caa49085b38ef18f7d40a07ae2024e526187d40cbe64b033facc7b9c2d7ca0393355fc8020e30de3b30cb3258f20774e4da0af5e170637a1e7b37063
7
- data.tar.gz: 05893d31a983d6130e8aacdb311ae88a603ad14a42550532520242f479ca9ca4e2c8ed4758105cf7f61822ecf331d50cdb39bbb10f6ce8cc8762145cbf795d6f
6
+ metadata.gz: 1da85bc4c920e2e480ec32fb08ae6bf4eaeb6b62a872a292c2ec765d37b82cd3746b4426ee8ce7a43519e019ca7eecd7e9db9c6d04f1ee73793a704b459f8d69
7
+ data.tar.gz: f4eca66662ca2d2c577058b5490b74bf556b6a363686cc5742dde7f22ba5a7cbc441d7d02914412518d759d2209db948c87bfffc3c4cefae80e1aaa3db350012
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.0.0
1
+ 4.1.0
@@ -8,6 +8,10 @@ class Duck_Duck_Duck
8
8
 
9
9
  class << self
10
10
 
11
+ def stdout *args
12
+ args.each { |a| print "#{a}\n" }
13
+ end
14
+
11
15
  def dev_only
12
16
  fail "Not allowed on a dev machine." if ENV['IS_DEV']
13
17
  end
@@ -50,7 +54,7 @@ class Duck_Duck_Duck
50
54
  eval <<-EOF, nil, __FILE__, __LINE__ + 1
51
55
  def #{meth} name = nil
52
56
  migrate_schema
53
- puts "=== #{meth}: \#{name}"
57
+ stdout "=== #{meth}: \#{name}"
54
58
  new(name).#{meth}
55
59
  end
56
60
  EOF
@@ -77,6 +81,10 @@ class Duck_Duck_Duck
77
81
  .sort
78
82
  end
79
83
 
84
+ def stdout *args
85
+ Duck_Duck_Duck.stdout *args
86
+ end
87
+
80
88
  def file_to_ver str
81
89
  File.basename(str)[/\A\d{1,}/].to_i
82
90
  end
@@ -93,6 +101,11 @@ class Duck_Duck_Duck
93
101
  ).all.first
94
102
 
95
103
  if !rec
104
+ dir_name = "#{name}/migrates"
105
+ dir = `find . -iregex ".+/#{dir_name}"`.strip.split("\n")
106
+ if dir.empty?
107
+ fail "Directory #{dir_name} does not exist."
108
+ end
96
109
  rec = DB.fetch(
97
110
  "INSERT INTO #{SCHEMA_TABLE} (name, version) VALUES (upper(:name), :version) RETURNING *",
98
111
  :name=>name, :version=>0
@@ -106,7 +119,7 @@ class Duck_Duck_Duck
106
119
  rec = init_model_in_schema
107
120
 
108
121
  if rec[:version] < 0
109
- puts "#{name} has an invalid version: #{rec[:version]}\n"
122
+ stdout "#{name} has an invalid version: #{rec[:version]}\n"
110
123
  exit 1
111
124
  end
112
125
 
@@ -122,11 +135,11 @@ class Duck_Duck_Duck
122
135
  sql = pair[1]
123
136
  DB << sql
124
137
  DB[" UPDATE #{SCHEMA_TABLE.inspect} SET version = ? WHERE name = upper( ? ); ", ver, name].update
125
- puts "#{name} schema is now : #{ver}"
138
+ stdout "#{name} schema is now : #{ver}"
126
139
  }
127
140
 
128
141
  if files.empty?
129
- puts "#{name} is already the latest: #{rec[:version]}"
142
+ stdout "#{name} is already the latest: #{rec[:version]}"
130
143
  end
131
144
  end # === def up
132
145
 
@@ -134,12 +147,12 @@ class Duck_Duck_Duck
134
147
  rec = init_model_in_schema
135
148
 
136
149
  if rec[:version] == 0
137
- puts "#{name} is already the latest: #{rec[:version]}\n"
150
+ stdout "#{name} is already the latest: #{rec[:version]}\n"
138
151
  exit 0
139
152
  end
140
153
 
141
154
  if rec[:version] < 0
142
- puts "#{name} is at invalid version: #{rec[:version]}\n"
155
+ stdout "#{name} is at invalid version: #{rec[:version]}\n"
143
156
  exit 1
144
157
  end
145
158
 
@@ -150,7 +163,7 @@ class Duck_Duck_Duck
150
163
  }.compact
151
164
 
152
165
  if files.empty?
153
- puts "#{name} is already the latest: #{rec[:version]}\n"
166
+ stdout "#{name} is already the latest: #{rec[:version]}\n"
154
167
  end
155
168
 
156
169
  new_ver = nil
@@ -161,7 +174,7 @@ class Duck_Duck_Duck
161
174
  sql = pair[1]
162
175
  DB << sql
163
176
  DB[" UPDATE #{SCHEMA_TABLE} SET version = ? WHERE name = upper( ? )", ver, name].update
164
- puts "#{name} schema is now : #{ver}"
177
+ stdout "#{name} schema is now : #{ver}"
165
178
  }
166
179
 
167
180
  end # === def down
@@ -183,10 +196,10 @@ class Duck_Duck_Duck
183
196
 
184
197
  new_file = "#{name}/migrates/#{next_ver}-#{[action, sub_action].compact.join('-')}.sql"
185
198
  File.open(new_file, 'a') do |f|
186
- f.puts "\n\n\n\n-- DOWN\n\n\n\n"
199
+ f.print "\n\n\n\n-- DOWN\n\n\n\n"
187
200
  end
188
201
 
189
- puts new_file
202
+ stdout new_file
190
203
  end # === def create
191
204
 
192
205
 
@@ -124,6 +124,13 @@ describe 'up model' do
124
124
  first[:version].should == versions('0010_model').last
125
125
  end # === it
126
126
 
127
+ it "fails if folder of model does not exist" do
128
+ name = "folder_123"
129
+ should.raise {
130
+ Exit_0("duck_duck_duck up #{name}")
131
+ }.message.should =~ /#{name}\/migrates does not exist/i
132
+ end # === it
133
+
127
134
  end # === describe up model
128
135
 
129
136
  describe 'down model' do
@@ -161,6 +168,13 @@ describe 'down model' do
161
168
  should == 0
162
169
  end
163
170
 
171
+ it "fails if folder of model does not exist" do
172
+ name = "folder_321"
173
+ should.raise {
174
+ Exit_0("duck_duck_duck down #{name}")
175
+ }.message.should =~ /#{name}\/migrates does not exist/i
176
+ end # === it
177
+
164
178
  end # === describe down model
165
179
 
166
180
  describe '-- UP/-- DOWN model' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duck_duck_duck
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - da99