duck_duck_duck 4.0.0 → 4.1.0

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 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