sql_query_executor 0.3.4 → 0.3.5

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: 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