netsuite_rails 0.2.1 → 0.2.2
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.
@@ -3,11 +3,11 @@
|
|
3
3
|
NetSuite.configure do
|
4
4
|
reset!
|
5
5
|
|
6
|
-
email ENV['NETSUITE_EMAIL']
|
7
|
-
password ENV['NETSUITE_PASSWORD']
|
8
|
-
account ENV['NETSUITE_ACCOUNT']
|
9
|
-
role ENV['NETSUITE_ROLE']
|
10
|
-
api_version ENV['NETSUITE_API']
|
6
|
+
email ENV['NETSUITE_EMAIL'] if ENV['NETSUITE_EMAIL'].present?
|
7
|
+
password ENV['NETSUITE_PASSWORD'] if ENV['NETSUITE_PASSWORD'].present?
|
8
|
+
account ENV['NETSUITE_ACCOUNT'] if ENV['NETSUITE_ACCOUNT'].present?
|
9
|
+
role ENV['NETSUITE_ROLE'] if ENV['NETSUITE_ROLE'].present?
|
10
|
+
api_version ENV['NETSUITE_API'] if ENV['NETSUITE_API'].present?
|
11
11
|
sandbox (ENV['NETSUITE_PRODUCTION'].blank? || ENV['NETSUITE_PRODUCTION'] != 'true')
|
12
12
|
|
13
13
|
read_timeout 100000
|
@@ -130,7 +130,8 @@ module NetSuiteRails
|
|
130
130
|
@netsuite_pulled ||= false
|
131
131
|
end
|
132
132
|
|
133
|
-
def netsuite_pull
|
133
|
+
def netsuite_pull(opts = {})
|
134
|
+
# TODO need to support the opts hash
|
134
135
|
netsuite_extract_from_record(netsuite_pull_record)
|
135
136
|
end
|
136
137
|
|
@@ -149,6 +150,7 @@ module NetSuiteRails
|
|
149
150
|
NetSuiteRails::RecordSync::PushManager.push(self, opts)
|
150
151
|
end
|
151
152
|
|
153
|
+
# TODO move this login into separate service object
|
152
154
|
def netsuite_extract_from_record(netsuite_record)
|
153
155
|
@netsuite_pulling = true
|
154
156
|
|
@@ -83,7 +83,7 @@ module NetSuiteRails
|
|
83
83
|
# You can force sync mode in different envoirnments with the global configuration variables
|
84
84
|
|
85
85
|
if sync_options[:mode] == :sync || NetSuiteRails::Configuration.netsuite_sync_mode == :sync
|
86
|
-
local.send(action)
|
86
|
+
local.send(action, action_options)
|
87
87
|
else
|
88
88
|
action_options[:modified_fields] = NetSuiteRails::RecordSync::PushManager.modified_local_fields(local).keys
|
89
89
|
|
data/netsuite_rails.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "netsuite_rails"
|
7
|
-
s.version = "0.2.
|
7
|
+
s.version = "0.2.2"
|
8
8
|
s.authors = ["Michael Bianco"]
|
9
9
|
s.email = ["mike@cliffsidemedia.com"]
|
10
10
|
s.summary = %q{Write Rails applications that integrate with NetSuite}
|
@@ -8,55 +8,71 @@ describe NetSuiteRails::SyncTrigger do
|
|
8
8
|
allow(NetSuiteRails::RecordSync::PushManager).to receive(:push_update)
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
context 'push' do
|
12
|
+
it "should push new record when saved" do
|
13
|
+
s = StandardRecord.new
|
14
|
+
s.phone = Faker::PhoneNumber.phone_number
|
15
|
+
s.save!
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
expect(NetSuiteRails::RecordSync::PushManager).to have_received(:push_add)
|
18
|
+
expect(NetSuiteRails::RecordSync::PushManager).to_not have_received(:push_update)
|
19
|
+
end
|
19
20
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
it "should not push update on a pull record" do
|
22
|
+
s = StandardRecord.new netsuite_id: 123
|
23
|
+
allow(s).to receive(:netsuite_pull)
|
24
|
+
s.save!
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
expect(s).to have_received(:netsuite_pull)
|
27
|
+
expect(NetSuiteRails::RecordSync::PushManager).to_not have_received(:push_add)
|
28
|
+
expect(NetSuiteRails::RecordSync::PushManager).to_not have_received(:push_update)
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
it "should push an update on an existing record" do
|
32
|
+
s = StandardRecord.new netsuite_id: 123
|
33
|
+
allow(s).to receive(:netsuite_pull)
|
34
|
+
s.save!
|
34
35
|
|
35
|
-
|
36
|
-
|
36
|
+
s.phone = Faker::PhoneNumber.phone_number
|
37
|
+
s.save!
|
37
38
|
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
expect(NetSuiteRails::RecordSync::PushManager).to_not have_received(:push_add)
|
40
|
+
expect(NetSuiteRails::RecordSync::PushManager).to have_received(:push_update)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should push the modified attributes to the model" do
|
44
|
+
s = StandardRecord.new netsuite_id: 123
|
45
|
+
allow(s).to receive(:netsuite_pull)
|
46
|
+
s.save!
|
41
47
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
s.save!
|
48
|
+
# delayed_job isn't included in this gem; hack it into the current record instance
|
49
|
+
s.instance_eval { def delay; self; end }
|
50
|
+
allow(s).to receive(:delay).and_return(s)
|
46
51
|
|
47
|
-
|
48
|
-
s.instance_eval { def delay; self; end }
|
49
|
-
allow(s).to receive(:delay).and_return(s)
|
52
|
+
NetSuiteRails::Configuration.netsuite_sync_mode :async
|
50
53
|
|
51
|
-
|
54
|
+
s.phone = Faker::PhoneNumber.phone_number
|
55
|
+
s.save!
|
56
|
+
|
57
|
+
NetSuiteRails::Configuration.netsuite_sync_mode :sync
|
58
|
+
|
59
|
+
expect(s).to have_received(:delay)
|
60
|
+
expect(NetSuiteRails::RecordSync::PushManager).to have_received(:push_update).with(anything, anything, {:modified_fields=>{:phone=> :phone}})
|
61
|
+
end
|
62
|
+
end
|
52
63
|
|
53
|
-
|
54
|
-
|
64
|
+
context 'pull' do
|
65
|
+
it 'should pull down a new record with a NS ID set on save' do
|
66
|
+
s = StandardRecord.new netsuite_id: 123
|
67
|
+
allow(s).to receive(:netsuite_pull_record).and_return(NetSuite::Records::Customer.new(phone: '1231231234'))
|
68
|
+
allow(s).to receive(:netsuite_extract_from_record)
|
55
69
|
|
56
|
-
|
70
|
+
s.save!
|
57
71
|
|
58
|
-
|
59
|
-
|
72
|
+
expect(NetSuiteRails::RecordSync::PushManager).to_not have_received(:push_add)
|
73
|
+
expect(NetSuiteRails::RecordSync::PushManager).to_not have_received(:push_update)
|
74
|
+
expect(s).to have_received(:netsuite_extract_from_record)
|
75
|
+
end
|
60
76
|
end
|
61
77
|
|
62
78
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netsuite_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-01-
|
12
|
+
date: 2015-01-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: netsuite
|