salesforce-orm 1.1.1 → 1.2.0
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 +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
|