salesforce-orm 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/salesforce-orm/awesome_print.rb +20 -0
- data/lib/salesforce-orm/base.rb +17 -3
- data/lib/salesforce-orm/object_base.rb +8 -0
- data/lib/salesforce-orm/sql_to_soql.rb +7 -13
- data/lib/salesforce-orm/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eb419aebf2a6276cbc5ad7d63b682801b8c266f
|
4
|
+
data.tar.gz: a7a8b85a244d6ebdd9b7ece1eceb0589cdb2900e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cb29f0422b63d345733f975508121cffbfbc63db140772216941451c2669cccb19b480bd9b400656cc8c384c875918ef439c52b4cfc5b0035cdbaaeb4149a72
|
7
|
+
data.tar.gz: 0a441080b12414e381aa2f8cf6bd2c1e91c21f49bd6f467177615a5d551de1d55eb155e6cc77d6d0db5ad7af2e598384d7e00690b2c548d6f317dd8e0b62fe8f
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
module SalesforceOrm
|
2
|
+
module AwesomePrint
|
3
|
+
def self.included(base)
|
4
|
+
base.send :alias_method, :cast_without_salesforce_orm_base, :cast
|
5
|
+
base.send :alias_method, :cast, :cast_with_salesforce_orm_base
|
6
|
+
end
|
7
|
+
|
8
|
+
def cast_with_salesforce_orm_base(object, type)
|
9
|
+
cast = cast_without_salesforce_orm_base(object, type)
|
10
|
+
if (defined?(Base)) && (object.is_a?(Base))
|
11
|
+
cast = :array
|
12
|
+
end
|
13
|
+
cast
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
if defined?(::AwesomePrint::Formatter)
|
18
|
+
::AwesomePrint::Formatter.send(:include, AwesomePrint)
|
19
|
+
end
|
20
|
+
end
|
data/lib/salesforce-orm/base.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'forwardable'
|
2
|
+
require 'time'
|
2
3
|
require_relative 'sql_to_soql'
|
3
4
|
|
4
5
|
module SalesforceOrm
|
@@ -7,7 +8,13 @@ module SalesforceOrm
|
|
7
8
|
include Enumerable, SqlToSoql
|
8
9
|
extend Forwardable
|
9
10
|
|
10
|
-
def_delegators :make_query, *([
|
11
|
+
def_delegators :make_query, *([
|
12
|
+
:each,
|
13
|
+
:empty?,
|
14
|
+
:size,
|
15
|
+
:map,
|
16
|
+
:inspect
|
17
|
+
] + Enumerable.instance_methods)
|
11
18
|
|
12
19
|
attr_reader :builder, :client, :klass
|
13
20
|
|
@@ -69,6 +76,7 @@ module SalesforceOrm
|
|
69
76
|
|
70
77
|
# Handling select differently because we select all the fields by default
|
71
78
|
def select(*args)
|
79
|
+
@results = nil
|
72
80
|
except(:select)
|
73
81
|
@builder = builder.select(*args)
|
74
82
|
self
|
@@ -85,6 +93,7 @@ module SalesforceOrm
|
|
85
93
|
:reorder
|
86
94
|
].each do |method_name|
|
87
95
|
define_method(method_name) do |*args|
|
96
|
+
@results = nil
|
88
97
|
@builder = builder.send(method_name, *args)
|
89
98
|
self
|
90
99
|
end
|
@@ -107,7 +116,8 @@ module SalesforceOrm
|
|
107
116
|
end
|
108
117
|
|
109
118
|
def make_query
|
110
|
-
|
119
|
+
return @results if @results
|
120
|
+
@results = begin
|
111
121
|
soql = to_soql
|
112
122
|
client.query(to_soql).find_all.map do |object|
|
113
123
|
build(object)
|
@@ -169,7 +179,11 @@ module SalesforceOrm
|
|
169
179
|
value.to_i
|
170
180
|
when :date_time
|
171
181
|
return nil if value.blank?
|
172
|
-
Time.zone.
|
182
|
+
if Time.respond_to?(:zone) && Time.zone
|
183
|
+
Time.zone.parse(value)
|
184
|
+
else
|
185
|
+
Time.parse(value)
|
186
|
+
end
|
173
187
|
when :array
|
174
188
|
return [] if value.blank?
|
175
189
|
value.split(';')
|
@@ -4,19 +4,13 @@ module SalesforceOrm
|
|
4
4
|
keyword =~ /^(AVG|COUNT|COUNT|COUNT_DISTINCT|MIN|MAX|SUM)\(/i
|
5
5
|
end
|
6
6
|
|
7
|
-
def convert_aliased_fields(sql_str
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
elsif keyword =~ spcial_char_regex
|
15
|
-
convert_aliased_fields(keyword, spcial_char_regex, keyword.gsub(spcial_char_regex).first)
|
16
|
-
else
|
17
|
-
klass.field_map[keyword.to_sym] || keyword
|
18
|
-
end
|
19
|
-
end.join(join_by)
|
7
|
+
def convert_aliased_fields(sql_str)
|
8
|
+
result = sql_str.clone
|
9
|
+
klass.field_map.keys.each do |k|
|
10
|
+
regex = Regexp.new("([\(\)=<>!,%'\s\t]+)#{k.to_s}([\(\)=<>!,%'\s\t]+|$)")
|
11
|
+
result.gsub!(regex, "\\1#{klass.field_map[k].to_s}\\2")
|
12
|
+
end
|
13
|
+
result.gsub!(/\s+/, ' ')
|
20
14
|
end
|
21
15
|
|
22
16
|
def boolean_data_type_conversion(sql)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: salesforce-orm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vishal Vijay
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- Rakefile
|
129
129
|
- build.sh
|
130
130
|
- lib/salesforce-orm.rb
|
131
|
+
- lib/salesforce-orm/awesome_print.rb
|
131
132
|
- lib/salesforce-orm/base.rb
|
132
133
|
- lib/salesforce-orm/configuration.rb
|
133
134
|
- lib/salesforce-orm/error.rb
|