taps 0.2.7 → 0.2.8

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.
@@ -1,4 +1,4 @@
1
1
  ---
2
+ :patch: 8
2
3
  :major: 0
3
4
  :minor: 2
4
- :patch: 7
@@ -74,27 +74,32 @@ class ClientSession
74
74
  end
75
75
 
76
76
  def cmd_send_indexes
77
- puts "Sending schema indexes to remote taps server #{safe_remote_url} from local database #{safe_database_url}"
77
+ puts "Sending indexes"
78
78
 
79
79
  index_data = `#{File.dirname(__FILE__)}/../../bin/schema indexes #{database_url}`
80
80
  session_resource['indexes'].post(index_data, :taps_version => Taps.version)
81
81
  end
82
82
 
83
83
  def cmd_send_schema
84
- puts "Sending schema to remote taps server #{safe_remote_url} from local database #{safe_database_url}"
84
+ puts "Sending schema"
85
85
 
86
86
  schema_data = `#{File.dirname(__FILE__)}/../../bin/schema dump #{database_url}`
87
87
  session_resource['schema'].post(schema_data, :taps_version => Taps.version)
88
88
  end
89
89
 
90
90
  def cmd_send_reset_sequences
91
- puts "Resetting db sequences in remote taps server at #{safe_remote_url}"
91
+ puts "Resetting sequences"
92
92
 
93
93
  session_resource["reset_sequences"].post('', :taps_version => Taps.version)
94
94
  end
95
95
 
96
96
  def cmd_send_data
97
- puts "Sending schema and data from local database #{safe_database_url} to remote taps server at #{safe_remote_url}"
97
+ puts "Sending data"
98
+
99
+ tables_with_counts, record_count = fetch_tables_info
100
+
101
+ puts "#{tables_with_counts.size} tables, #{format_number(record_count)} records"
102
+
98
103
 
99
104
  db.tables.each do |table_name|
100
105
  table = db[table_name]
@@ -135,6 +140,17 @@ class ClientSession
135
140
  end
136
141
  end
137
142
 
143
+ def fetch_tables_info
144
+ record_count = 0
145
+ tables = db.tables
146
+ tables_with_counts = tables.inject({}) do |accum, table|
147
+ accum[table] = db[table].count
148
+ record_count += accum[table]
149
+ end
150
+
151
+ [ tables_with_counts, record_count ]
152
+ end
153
+
138
154
  def cmd_receive
139
155
  verify_server
140
156
  cmd_receive_schema
@@ -144,9 +160,9 @@ class ClientSession
144
160
  end
145
161
 
146
162
  def cmd_receive_data
147
- puts "Receiving data from remote taps server #{safe_remote_url} into local database #{safe_database_url}"
163
+ puts "Receiving data"
148
164
 
149
- tables_with_counts, record_count = fetch_tables_info
165
+ tables_with_counts, record_count = fetch_remote_tables_info
150
166
 
151
167
  puts "#{tables_with_counts.size} tables, #{format_number(record_count)} records"
152
168
 
@@ -194,7 +210,7 @@ class ClientSession
194
210
  [chunksize, rows]
195
211
  end
196
212
 
197
- def fetch_tables_info
213
+ def fetch_remote_tables_info
198
214
  retries = 0
199
215
  max_retries = 1
200
216
  begin
@@ -211,7 +227,7 @@ class ClientSession
211
227
  end
212
228
 
213
229
  def cmd_receive_schema
214
- puts "Receiving schema from remote taps server #{safe_remote_url} into local database #{safe_database_url}"
230
+ puts "Receiving schema"
215
231
 
216
232
  schema_data = session_resource['schema'].get(:taps_version => Taps.version)
217
233
  output = Taps::Utils.load_schema(database_url, schema_data)
@@ -219,7 +235,7 @@ class ClientSession
219
235
  end
220
236
 
221
237
  def cmd_receive_indexes
222
- puts "Receiving schema indexes from remote taps server #{safe_remote_url} into local database #{safe_database_url}"
238
+ puts "Receiving indexes"
223
239
 
224
240
  index_data = session_resource['indexes'].get(:taps_version => Taps.version)
225
241
 
@@ -228,7 +244,7 @@ class ClientSession
228
244
  end
229
245
 
230
246
  def cmd_reset_sequences
231
- puts "Resetting db sequences in #{safe_database_url}"
247
+ puts "Resetting sequences"
232
248
 
233
249
  output = `#{File.dirname(__FILE__)}/../../bin/schema reset_db_sequences #{database_url}`
234
250
  puts output if output
@@ -127,7 +127,7 @@ class ProgressBar
127
127
  data = [0, 0, 0, 0].pack("SSSS")
128
128
  if @out.ioctl(tiocgwinsz, data) >= 0 then
129
129
  rows, cols, xpixels, ypixels = data.unpack("SSSS")
130
- if cols >= 0 then cols else default_width end
130
+ if cols > 0 then cols else default_width end
131
131
  else
132
132
  default_width
133
133
  end
@@ -27,7 +27,9 @@ module Schema
27
27
 
28
28
  def sqlite_config(url)
29
29
  m = %r{(sqlite3?)://(.+)}.match(url)
30
- { 'adapter' => 'sqlite3', 'database' => m[2] }
30
+ database = m[2]
31
+ database, q = database.split('?')
32
+ { 'adapter' => 'sqlite3', 'database' => database }
31
33
  end
32
34
 
33
35
  def connection(database_url)
@@ -49,7 +49,7 @@ describe Taps::ClientSession do
49
49
  @progressbar.stubs(:inc)
50
50
  @progressbar.stubs(:finish)
51
51
  @mytable = mock('mytable')
52
- @client.expects(:fetch_tables_info).returns([ { :mytable => 2 }, 2 ])
52
+ @client.expects(:fetch_remote_tables_info).returns([ { :mytable => 2 }, 2 ])
53
53
  @client.stubs(:db).returns(mock('db'))
54
54
  @client.db.stubs(:[]).with(:mytable).returns(@mytable)
55
55
  @client.expects(:fetch_table_rows).with(:mytable, 1000, 0).returns([ 1000, { :header => [:x, :y], :data => [[1, 2], [3, 4]] } ])
@@ -59,11 +59,11 @@ describe Taps::ClientSession do
59
59
  lambda { @client.cmd_receive_data }.should.not.raise
60
60
  end
61
61
 
62
- it "fetches tables info from taps server" do
62
+ it "fetches remote tables info from taps server" do
63
63
  @marshal_data = Marshal.dump({ :mytable => 2 })
64
64
  @client.session_resource.stubs(:[]).with('tables').returns(mock('tables'))
65
65
  @client.session_resource['tables'].stubs(:get).with(:taps_version => Taps.version).returns(@marshal_data)
66
- @client.fetch_tables_info.should == [ { :mytable => 2 }, 2 ]
66
+ @client.fetch_remote_tables_info.should == [ { :mytable => 2 }, 2 ]
67
67
  end
68
68
 
69
69
  it "fetches table rows given a chunksize and offset from taps server" do
@@ -25,6 +25,7 @@ describe Taps::Schema do
25
25
  it "translates sqlite database path" do
26
26
  Taps::Schema.create_config("sqlite://pathtodb/mydb")['database'].should == 'pathtodb/mydb'
27
27
  Taps::Schema.create_config("sqlite:///pathtodb/mydb")['database'].should == '/pathtodb/mydb'
28
+ Taps::Schema.create_config("sqlite:///pathtodb/mydb?encoding=utf8")['database'].should == '/pathtodb/mydb'
28
29
  end
29
30
 
30
31
  it "connects activerecord to the database" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Chimal, Jr.
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-03-04 00:00:00 -08:00
13
+ date: 2009-03-16 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -89,16 +89,16 @@ files:
89
89
  - spec/client_session_spec.rb
90
90
  - spec/schema_spec.rb
91
91
  - lib/taps/db_session.rb
92
- - lib/taps/client_session.rb
93
92
  - lib/taps/progress_bar.rb
93
+ - lib/taps/server.rb
94
94
  - lib/taps/cli.rb
95
95
  - lib/taps/adapter_hacks.rb
96
96
  - lib/taps/adapter_hacks/invalid_text_limit.rb
97
97
  - lib/taps/adapter_hacks/non_rails_schema_dump.rb
98
- - lib/taps/server.rb
99
98
  - lib/taps/schema.rb
100
- - lib/taps/config.rb
99
+ - lib/taps/client_session.rb
101
100
  - lib/taps/utils.rb
101
+ - lib/taps/config.rb
102
102
  - README.rdoc
103
103
  - LICENSE
104
104
  - VERSION.yml