td-client 0.8.13 → 0.8.14

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,4 +1,10 @@
1
1
 
2
+ == 2012-04-03 version 0.8.14
3
+
4
+ * Added Database#count, #created_at and #updated_at
5
+ * Added Table#created_at and #updated_at
6
+
7
+
2
8
  == 2012-04-03 version 0.8.13
3
9
 
4
10
  * Added Job#hive_result_schema
@@ -43,18 +43,18 @@ class Client
43
43
 
44
44
  # => [Database]
45
45
  def databases
46
- names = @api.list_databases
47
- names.map {|db_name|
48
- Database.new(self, db_name)
46
+ m = @api.list_databases
47
+ m.map {|db_name,(count,created_at,updated_at)|
48
+ Database.new(self, db_name, nil, count, created_at, updated_at)
49
49
  }
50
50
  end
51
51
 
52
52
  # => Database
53
53
  def database(db_name)
54
- names = @api.list_databases
55
- names.each {|n|
56
- if n == db_name
57
- return Database.new(self, db_name)
54
+ m = @api.list_databases
55
+ m.each {|name,(count,created_at,updated_at)|
56
+ if name == db_name
57
+ return Database.new(self, name, nil, count, created_at, updated_at)
58
58
  end
59
59
  }
60
60
  raise NotFoundError, "Database '#{db_name}' does not exist"
@@ -83,9 +83,9 @@ class Client
83
83
  # => [Table]
84
84
  def tables(db_name)
85
85
  m = @api.list_tables(db_name)
86
- m.map {|table_name,(type,schema,count)|
86
+ m.map {|table_name,(type,schema,count,created_at,updated_at)|
87
87
  schema = Schema.new.from_json(schema)
88
- Table.new(self, db_name, table_name, type, schema, count)
88
+ Table.new(self, db_name, table_name, type, schema, count, created_at, updated_at)
89
89
  }
90
90
  end
91
91
 
@@ -140,8 +140,15 @@ class API
140
140
  raise_error("List databases failed", res)
141
141
  end
142
142
  js = checked_json(body, %w[databases])
143
- names = js["databases"].map {|dbinfo| dbinfo['name'] }
144
- return names
143
+ result = {}
144
+ js["databases"].each {|m|
145
+ name = m['name']
146
+ count = m['count']
147
+ created_at = m['created_at']
148
+ updated_at = m['updated_at']
149
+ result[name] = [count, created_at, updated_at]
150
+ }
151
+ return result
145
152
  end
146
153
 
147
154
  # => true
@@ -179,8 +186,10 @@ class API
179
186
  name = m['name']
180
187
  type = (m['type'] || '?').to_sym
181
188
  count = (m['count'] || 0).to_i # TODO?
189
+ created_at = m['created_at']
190
+ updated_at = m['updated_at']
182
191
  schema = JSON.parse(m['schema'] || '[]')
183
- result[name] = [type, schema, count]
192
+ result[name] = [type, schema, count, created_at, updated_at]
184
193
  }
185
194
  return result
186
195
  end
@@ -11,10 +11,13 @@ class Model
11
11
  end
12
12
 
13
13
  class Database < Model
14
- def initialize(client, db_name, tables=nil)
14
+ def initialize(client, db_name, tables=nil, count=nil, created_at=nil, updated_at=nil)
15
15
  super(client)
16
16
  @db_name = db_name
17
17
  @tables = tables
18
+ @count = count
19
+ @created_at = created_at
20
+ @updated_at = updated_at
18
21
  end
19
22
 
20
23
  def name
@@ -46,19 +49,31 @@ class Database < Model
46
49
  @client.query(@db_name, q)
47
50
  end
48
51
 
52
+ attr_reader :count
53
+
54
+ def created_at
55
+ @created_at && !@created_at.empty? ? Time.parse(@created_at) : nil
56
+ end
57
+
58
+ def updated_at
59
+ @updated_at && !@updated_at.empty? ? Time.parse(@updated_at) : nil
60
+ end
61
+
49
62
  def update_tables!
50
63
  @tables = @client.tables(@db_name)
51
64
  end
52
65
  end
53
66
 
54
67
  class Table < Model
55
- def initialize(client, db_name, table_name, type, schema, count)
68
+ def initialize(client, db_name, table_name, type, schema, count, created_at=nil, updated_at=nil)
56
69
  super(client)
57
70
  @db_name = db_name
58
71
  @table_name = table_name
59
72
  @type = type
60
73
  @schema = schema
61
74
  @count = count
75
+ @created_at = created_at
76
+ @updated_at = updated_at
62
77
  end
63
78
 
64
79
  attr_reader :type, :db_name, :table_name, :schema, :count
@@ -66,6 +81,14 @@ class Table < Model
66
81
  alias database_name db_name
67
82
  alias name table_name
68
83
 
84
+ def created_at
85
+ @created_at && !@created_at.empty? ? Time.parse(@created_at) : nil
86
+ end
87
+
88
+ def updated_at
89
+ @updated_at && !@updated_at.empty? ? Time.parse(@updated_at) : nil
90
+ end
91
+
69
92
  def database
70
93
  @client.database(@db_name)
71
94
  end
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
 
3
- VERSION = '0.8.13'
3
+ VERSION = '0.8.14'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.13
4
+ version: 0.8.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-04-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: msgpack
16
- requirement: &70110623163420 !ruby/object:Gem::Requirement
16
+ requirement: &70097319678140 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.4.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70110623163420
24
+ version_requirements: *70097319678140
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70110623162680 !ruby/object:Gem::Requirement
27
+ requirement: &70097319677440 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.4.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70110623162680
35
+ version_requirements: *70097319677440
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70110623162020 !ruby/object:Gem::Requirement
38
+ requirement: &70097319676680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 2.8.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70110623162020
46
+ version_requirements: *70097319676680
47
47
  description:
48
48
  email:
49
49
  executables: []