mdlsql 0.0.5 → 0.0.6

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: d81ad485397fd79dab4de4988239053c78fbe1e7
4
- data.tar.gz: a57bf5bd17b329fdab82feef4b375f936ae141c8
3
+ metadata.gz: 0a0895818d0c26cdcb9e3e89907bb6a119c55d8f
4
+ data.tar.gz: f26faadfec22312b7fd95c238f41c8f6e928a92b
5
5
  SHA512:
6
- metadata.gz: de378dd70963af23811c945b7f86059f71cd330e5d921670c1539250039bc36d4ef8800cd26074ef17f60dac813b4662369acf493e9b795d740d0aea567cb844
7
- data.tar.gz: 9dc63e28e7b8003f2b9e667e2c4d63163a9919a3e7e2abe62db6672432aee9bf51eec7c121b91188b069c10f8ab0117bc6afe39ff4fef962e9a51ce902a83400
6
+ metadata.gz: 751a8f54247f8971ab648fd7a0a4c0496a27b229b1e97034a52671e1aac467a392ed4dd8a4b7ad28a3e89fb9a61aa534fe0cf7346edda03c6b20de149ca41954
7
+ data.tar.gz: 53bf47dc92a2302cbc1114cecba585ed803a6047e8a76e39d60a9d6db540330ecaf7e0411f0f255519ecfadd6b3a1263c6e3134b5c39f566ff1a0ddfb26aa1d7
data/lib/mdlsql/join.rb CHANGED
@@ -28,7 +28,7 @@ module MdlSql
28
28
  def initialize opts={}
29
29
  @cond1 = opts[:cond1]
30
30
  @cond2 = opts[:cond2]
31
- @table = Table.new opts[:table], opts[:as]
31
+ @table = Table.new opts[:table]
32
32
  @type = opts[:type]
33
33
 
34
34
  opts[:op].to_sym if opts[:op].is_a? String
@@ -38,7 +38,7 @@ class MysqlBuilder < QueryBuilder
38
38
  # Columns (with alias)
39
39
  if cols
40
40
  cols.each do |key,value|
41
- query << " #{value} AS #{key}" << ','
41
+ query << " #{key} AS #{value}" << ','
42
42
  end
43
43
  query.chop!
44
44
  else
@@ -179,8 +179,6 @@ class MysqlBuilder < QueryBuilder
179
179
  query << " #{wh.cond1} #{wh.op} #{wh.cond2}"
180
180
  first = false
181
181
  end
182
- else
183
- raise 'No WHERE condition in update.'
184
182
  end
185
183
 
186
184
  return query
@@ -131,9 +131,14 @@ module MdlSql
131
131
  # table_alias = table_alias if table_alias.is_a? String
132
132
 
133
133
  @tables ||= Array.new
134
- tables.each do |table_alias,table|
135
- @tables.push Table.new table, table_alias
134
+ if tables.is_a? Hash
135
+ tables.each do |table, table_alias|
136
+ @tables.push Table.new table, table_alias
137
+ end
138
+ elsif tables.is_a? Symbol
139
+ @tables.push Table.new tables, tables
136
140
  end
141
+
137
142
 
138
143
  # @table = table
139
144
  # @table_alias = table_alias unless table_alias.nil?
@@ -225,41 +230,54 @@ module MdlSql
225
230
  # Exacution command
226
231
  # @todo return true/false when inserting/updating
227
232
  # @todo config for different db
228
- def execute
233
+ def execute opts={}
229
234
  if @@host.nil? || @@username.nil? || @@password.nil? || @@db.nil?
230
235
  raise 'MdlSql has not been correctly configured, please use config() to set host, username, password and db.'
231
236
  end
232
- client = Mysql2::Client.new(
233
- :host => @host,
234
- :username => @@username,
235
- :password => @@password,
236
- :database => @@db,
237
- :symbolize_keys => true
238
- )
239
-
240
- query = String.new
237
+ unless $client
238
+ $client = Mysql2::Client.new(
239
+ :host => @host,
240
+ :username => @@username,
241
+ :password => @@password,
242
+ :database => @@db,
243
+ :symbolize_keys => true
244
+ )
245
+ end
241
246
 
242
- @@socket ||= :mysql
247
+ if opts[:query]
248
+ query = opts[:query]
249
+ else
250
+ query = String.new
243
251
 
244
- case @@socket
245
- when :mysql
246
- sock = MysqlBuilder
247
- end
252
+ @@socket ||= :mysql
248
253
 
249
- query = sock.send("#{@method}",
250
- {:tables => @tables,
251
- :where => @where,
252
- :cols => @cols,
253
- :values => @values,
254
- :join => @join}
255
- )
254
+ case @@socket
255
+ when :mysql
256
+ sock = MysqlBuilder
257
+ end
258
+
259
+ query = sock.send("#{@method}",
260
+ {:tables => @tables,
261
+ :where => @where,
262
+ :cols => @cols,
263
+ :values => @values,
264
+ :join => @join}
265
+ )
266
+ end
256
267
 
257
- puts query if @@debug
268
+ puts "Query: \n#{query}" if @@debug
258
269
 
259
- @result = client.query query
270
+ @result = $client.query query
260
271
  return @result
261
272
 
262
273
  end
274
+
275
+ # Just execute a query.
276
+ # Compromises compatibility.
277
+
278
+ def query str
279
+ execute :query => str
280
+ end
263
281
  end
264
282
  end
265
283
 
data/lib/mdlsql/table.rb CHANGED
@@ -19,7 +19,25 @@ module MdlSql
19
19
  class Table
20
20
  attr_accessor :name, :as
21
21
  def initialize name, as=nil
22
- name = name.to_sym if name.is_a? String
22
+
23
+ if name.is_a? String
24
+ name = name.to_sym
25
+ elsif name.is_a? Hash
26
+ name = name.flatten
27
+
28
+ if name[1].is_a? String
29
+ as = name[1].to_sym
30
+ else
31
+ as = name[1]
32
+ end
33
+
34
+ if name[0].is_a? String
35
+ name = name[0].to_sym
36
+ else
37
+ name = name[0]
38
+ end
39
+ end
40
+
23
41
  as = as.to_sym if as.is_a? String
24
42
 
25
43
  @name = name
@@ -1,3 +1,3 @@
1
1
  module MdlSql
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/mdlsql.rb CHANGED
@@ -44,7 +44,7 @@ module MdlSql
44
44
 
45
45
  def insert
46
46
  query = SqlQuery.new.insert()
47
- return query
47
+ return query
48
48
  end
49
49
 
50
50
  def update(table=nil)
@@ -52,6 +52,10 @@ module MdlSql
52
52
  return query
53
53
  end
54
54
 
55
+ def query str
56
+ return SqlQuery.new.query(str)
57
+ end
58
+
55
59
  # Calls SqlQuery.config to configurate futures queries.
56
60
  # @todo Allow many simultaneous configurations. For the moment being, use different config files.
57
61
  # @option values [Symbol]
@@ -59,5 +63,5 @@ module MdlSql
59
63
  SqlQuery.config(values)
60
64
  end
61
65
 
62
- module_function :config, :select, :insert, :update
66
+ module_function :config, :select, :insert, :update, :query
63
67
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdlsql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-11 00:00:00.000000000 Z
11
+ date: 2013-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mysql2
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.0.3
102
+ rubygems_version: 2.0.7
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: A modular query builder to enable a high database compatibility, usage easiness