td_model 0.0.1 → 0.0.2

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: eb028ec09bbcf54c2bb7de389d0c4a5141cece21
4
- data.tar.gz: 3fbe3f04f385b2ad368834f3db995cd2a82d9b48
3
+ metadata.gz: b463ad1750c71a6e85acc68b4d742be47f881d07
4
+ data.tar.gz: c2dd1ec98d5c7fef668e8008c78efde3c4dacd33
5
5
  SHA512:
6
- metadata.gz: bbdad16069e5c0f0fbd0270cba11c06b750ec71a3e244e56b2ca08cef29e7523688f6b70ff7297aaada2602166d3472244c7571e6a6195b9856a41b40cf9a6ac
7
- data.tar.gz: be13a853a199b3f722874fdbe9b8b8fbe14516cd5bebc6618614102d4d449e4cfa3b7c0a9362638586f8420cf66f176795b8a4a11e306f42426cf37a80158edd
6
+ metadata.gz: b76ea582640c84d5b9dc4fd696ec62c76e36a7ef6f661284a74ad54ccd9ddbb5e978da21595879253f346ab2ab9130b8d71413235aafb79c4e002c4e9d822bfc
7
+ data.tar.gz: 2e77bf021036b082aa1a3f827d75b5466d199b3b7cff61ea7801bfa047ba57419d0255eadad101299b9061db6f6db8cfa6795666a9daf0f0fdadc486d9e80738
data/README.md CHANGED
@@ -45,6 +45,7 @@ end
45
45
  ```
46
46
 
47
47
  * Search
48
+
48
49
  ```ruby
49
50
  # Basic
50
51
  td_user = TdUser.new
data/lib/td_model/base.rb CHANGED
@@ -3,16 +3,13 @@ require "td_model/errors/failed_to_type_validation_of_column_error"
3
3
 
4
4
  module TdModel
5
5
  class Base
6
- @@TD_SQL = ::TdModel::Sql
7
- @@ATTR_TYPES = {}
8
- @@ATTR_DEFAULT_VALUES = {}
9
- @@TABLE_NAME = {}
6
+ include ::TdModel::Sql
10
7
 
11
8
  attr_accessor :table_name, :attr_values, :where_sql, :sql, :select_sql, :select_keys, :order_sql, :limit_sql
12
9
 
13
10
  def initialize(args=nil)
14
- self.class.set_column(:time) unless @@ATTR_TYPES.keys.include?(:time)
15
- @attr_values = @@ATTR_DEFAULT_VALUES.clone
11
+ self.class.set_column(:time) unless self.class.attr_types.keys.include?(:time)
12
+ @attr_values = self.class.attr_default_values.clone
16
13
  @select_keys = []
17
14
  @attr_values.keys.each do |col|
18
15
  proc = Proc.new { @attr_values[col] }
@@ -29,21 +26,40 @@ module TdModel
29
26
  end
30
27
  end
31
28
 
29
+ def self.attr_types
30
+ {}
31
+ end
32
+
33
+ def self.attr_default_values
34
+ {}
35
+ end
36
+
32
37
  def self.set_column(name, type=nil)
33
- @@ATTR_TYPES.store(name, type)
34
- @@ATTR_DEFAULT_VALUES.store(name, self.init_type_value(type))
38
+ attr_types = self.attr_types
39
+ attr_types.store(name, type)
40
+ self.define_singleton_method :attr_types do
41
+ attr_types
42
+ end
43
+
44
+ attr_default_values = self.attr_default_values
45
+ attr_default_values.store(name, self.init_type_value(type))
46
+ self.define_singleton_method :attr_default_values do
47
+ attr_default_values
48
+ end
35
49
  end
36
50
 
37
51
  def self.table_name=(name)
38
- @@TABLE_NAME = name
52
+ self.define_singleton_method :table_name do
53
+ name
54
+ end
39
55
  end
40
56
 
41
57
  def self.table_name
42
- @@TABLE_NAME
58
+ self.to_s.underscore
43
59
  end
44
60
 
45
61
  def table_name
46
- @@TABLE_NAME
62
+ self.class.table_name || self.class.to_s.underscore
47
63
  end
48
64
 
49
65
  def create
@@ -59,7 +75,7 @@ module TdModel
59
75
  end
60
76
 
61
77
  def valid!(args)
62
- @@ATTR_TYPES.each do |key, val|
78
+ self.class.attr_types.each do |key, val|
63
79
  next if val.nil?
64
80
  unless args[key].kind_of?(val)
65
81
  raise ::TdModel::Errors::FailedToTypeValidationOfColumnError
@@ -76,8 +92,8 @@ module TdModel
76
92
  end
77
93
  end
78
94
 
79
- def self.query(sql)
80
- @@TD_SQL.query(sql)
95
+ def self.where(obj)
96
+ self.new.where(obj)
81
97
  end
82
98
 
83
99
  def where(obj)
@@ -104,6 +120,11 @@ module TdModel
104
120
  self
105
121
  end
106
122
 
123
+
124
+ def self.order(col, sort=nil)
125
+ self.new.order(col, sort)
126
+ end
127
+
107
128
  def order(col, sort=nil)
108
129
  if col.instance_of?(Array)
109
130
  col.each do |column|
@@ -124,10 +145,18 @@ module TdModel
124
145
  self
125
146
  end
126
147
 
148
+ def self.reverse_order(col)
149
+ self.new.reverse_order(col)
150
+ end
151
+
127
152
  def reverse_order(col)
128
153
  self.order(col, 'DESC')
129
154
  end
130
155
 
156
+ def self.limit(num=nil)
157
+ self.new.limit(num)
158
+ end
159
+
131
160
  def limit(num=nil)
132
161
  if num.present?
133
162
  @limit_sql = "LIMIT #{num}"
@@ -138,7 +167,7 @@ module TdModel
138
167
  def query_execute
139
168
  if @select_sql.blank?
140
169
  @select_keys = [:time]
141
- @@ATTR_TYPES.keys.each do |key|
170
+ self.class.attr_types.keys.each do |key|
142
171
  if @select_sql.blank?
143
172
  @select_sql = ''
144
173
  @select_sql += "SELECT #{self.table_name}.#{key}"
@@ -149,7 +178,7 @@ module TdModel
149
178
  end
150
179
  end
151
180
  @sql = "#{@select_sql} FROM #{self.table_name} #{@where_sql} #{@order_sql} #{@limit_sql}"
152
- res = @@TD_SQL.query(@sql)
181
+ res = self.query(@sql)
153
182
 
154
183
  if res.blank?
155
184
  result = [self.class.new]
@@ -166,6 +195,10 @@ module TdModel
166
195
  result
167
196
  end
168
197
 
198
+ def self.select(args)
199
+ self.new.select(args)
200
+ end
201
+
169
202
  def select(args)
170
203
  @select_sql = ''
171
204
  @select_keys = []
data/lib/td_model/sql.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  module TdModel
2
2
  module Sql
3
- extend self
4
-
5
- def query(sql)
6
- td_client = TdModel.config.td_client
7
- job = td_client.query(TdModel.config.database_name, sql, nil, nil, nil, type: :presto)
3
+ def self.query(sql)
4
+ td_client = ::TdModel.config.td_client
5
+ job = td_client.query(::TdModel.config.database_name, sql, nil, nil, nil, type: :presto)
8
6
 
9
7
  until job.finished?
10
8
  sleep 2
@@ -1,3 +1,3 @@
1
1
  module TdModel
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - hogino