sql_query_executor 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 885c973bd56f42cacc7f5a2ec53399c6004aa487
4
- data.tar.gz: a5591b1baddeb58afd77ac9279f82b8eca4f3213
3
+ metadata.gz: 3b41537dd11ea282bce2972c2cb2016fa5de5d43
4
+ data.tar.gz: b260c9d62dc105fb7a9fab1c1a6bacff6d8a50fa
5
5
  SHA512:
6
- metadata.gz: 59120a2dc4c1468f86b4bef599daf7b2601c8e30164cfb427397559656320163a1bc80a0b29c3e6d96f4649047e3e4823c5c49d2b356a2304c322f45484acb3f
7
- data.tar.gz: 32a3793e8c462c62719c37ebf5900ecae59130831f33216c36bc8e4165a5e45439c146c2569181febcac63c7afcce50d5b90ed6ac115a15c631d2d318c34b22a
6
+ metadata.gz: 6dc13927e1330a1a56d7e07d60cf67b24b3ab59aaf9bb83628f50bac83d0902464b044e3dad8a23e1fd07c64844aa8ee681adda085cefb1521cf9812be0ef158
7
+ data.tar.gz: e444ed8beaad6bc844dd4c0a0cbf7022c7a55c0ded9f4d52dca02ca7a93b0e3f9f187824a146b7cfbf12ecb56f65e73ae4e8ebfc2c40615dd50177f2e332899e
@@ -31,7 +31,8 @@ module SqlQueryExecutor
31
31
  end
32
32
 
33
33
  def self.remove_placeholders(query)
34
- query.gsub(Base::QUERY_SPACE, ' ').gsub(Base::STRING_SPACE, ' ').gsub(Base::TEMP_SPACE, ' ')
34
+ new_query = query.gsub(Base::QUERY_SPACE, ' ').gsub(Base::STRING_SPACE, ' ').gsub(Base::TEMP_SPACE, ' ')
35
+ new_query.gsub('"null"', 'null').gsub("'null'", 'null')
35
36
  end
36
37
 
37
38
  def self.clean_query_attribute(query)
@@ -50,6 +51,7 @@ module SqlQueryExecutor
50
51
  def self.interpolate_query(args)
51
52
  args.flatten!
52
53
  return args.first if args.size == 1 && args.first.is_a?(String)
54
+ return interpolate_hash(args) if args[1].is_a?(Hash)
53
55
 
54
56
  query = args.first
55
57
  param = args.delete_at(1)
@@ -61,6 +63,12 @@ module SqlQueryExecutor
61
63
  interpolate_query(args)
62
64
  end
63
65
 
66
+ def self.interpolate_hash(args)
67
+ hash = args[1]
68
+
69
+ args.first.gsub(/:(\S+)/) { |match| convert_param(hash[match.gsub(":", '').to_sym]) }
70
+ end
71
+
64
72
  # Removes all accents and other non default characters
65
73
  def self.sanitize(query)
66
74
  new_query = replace_on_query(query, /(["|'].*?["|'])/, " ", Base::STRING_SPACE)
@@ -1,3 +1,3 @@
1
1
  module SqlQueryExecutor
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
@@ -81,12 +81,19 @@ describe SqlQueryExecutor::Base do
81
81
  end
82
82
 
83
83
  context 'to_sql' do
84
- let(:query) { "name = 'Brazil'" }
85
- let(:selector) { {name: 'Brazil'} }
86
-
87
84
  it 'converts selector' do
85
+ query = "name = 'Brazil'"
86
+ selector = {name: 'Brazil'}
87
+
88
88
  expect(described_class.new([], selector).to_sql).to eq query
89
89
  end
90
+
91
+ it 'removes quotes from null' do
92
+ wrong_query = "id is not 'null'"
93
+ right_query = 'id is not null'
94
+
95
+ expect(described_class.new([], wrong_query).to_sql).to eq right_query
96
+ end
90
97
  end
91
98
  end
92
99
  end
@@ -28,4 +28,5 @@ Gem::Specification.new do |gem|
28
28
  gem.add_development_dependency(%q<rspec>, [">= 2.2.0"])
29
29
  gem.add_development_dependency('rake', [">= 10.0.0"])
30
30
  gem.add_development_dependency('coveralls')
31
+ gem.add_development_dependency('pry')
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_query_executor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caio Torres
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-13 00:00:00.000000000 Z
11
+ date: 2014-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: Gem to run SQL like queries on array of hashes or similar objects
56
70
  email:
57
71
  - efreesen@gmail.com