netsuite 0.0.33 → 0.0.34

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.
@@ -62,6 +62,13 @@ module NetSuite
62
62
  @response_hash ||= @response.to_hash[:add_response][:write_response]
63
63
  end
64
64
 
65
+ module Support
66
+ def add
67
+ response = NetSuite::Actions::Add.call(self)
68
+ response.success?
69
+ end
70
+ end
71
+
65
72
  end
66
73
  end
67
74
  end
@@ -62,6 +62,17 @@ module NetSuite
62
62
  @response_body ||= response_hash[:base_ref]
63
63
  end
64
64
 
65
+ module Support
66
+ def delete(options = {})
67
+ response = if options.empty?
68
+ NetSuite::Actions::Delete.call(self)
69
+ else
70
+ NetSuite::Actions::Delete.call(self, options)
71
+ end
72
+ response.success?
73
+ end
74
+ end
75
+
65
76
  end
66
77
  end
67
78
  end
@@ -58,6 +58,17 @@ module NetSuite
58
58
  @response_hash = @response[:get_response][:read_response]
59
59
  end
60
60
 
61
+ module Support
62
+ def get(options = {})
63
+ response = NetSuite::Actions::Get.call(self, options)
64
+ if response.success?
65
+ new(response.body)
66
+ else
67
+ raise RecordNotFound, "#{self} with OPTIONS=#{options.inspect} could not be found"
68
+ end
69
+ end
70
+ end
71
+
61
72
  end
62
73
  end
63
74
  end
@@ -51,6 +51,17 @@ module NetSuite
51
51
  @response_body ||= response_hash[:record]
52
52
  end
53
53
 
54
+ module Support
55
+ def initialize(object)
56
+ response = NetSuite::Actions::Initialize.call(self, object)
57
+ if response.success?
58
+ new(response.body)
59
+ else
60
+ raise InitializationError, "#{self}.initialize with #{object} failed."
61
+ end
62
+ end
63
+ end
64
+
54
65
  end
55
66
  end
56
67
  end
@@ -62,6 +62,15 @@ module NetSuite
62
62
  @response_hash ||= @response.to_hash[:update_response][:write_response]
63
63
  end
64
64
 
65
+ module Support
66
+ def update(options = {})
67
+ options.merge!(:internal_id => internal_id) if respond_to?(:internal_id) && internal_id
68
+ options.merge!(:external_id => external_id) if respond_to?(:external_id) && external_id
69
+ response = NetSuite::Actions::Update.call(self.class, options)
70
+ response.success?
71
+ end
72
+ end
73
+
65
74
  end
66
75
  end
67
76
  end
@@ -9,7 +9,7 @@ module NetSuite
9
9
 
10
10
  actions :get, :initialize, :add, :delete
11
11
 
12
- fields :address, :balance, :cc_approved, :cc_expire_date, :cc_name, :cc_number, :cc_street, :cc_zip_code, :charge_it,
12
+ fields :address, :cc_approved, :cc_expire_date, :cc_name, :cc_number, :cc_street, :cc_zip_code, :charge_it,
13
13
  :created_date, :currency_name, :debit_card_issue_no, :exchange_rate, :last_modified_date, :memo, :pn_ref_num, :status,
14
14
  :to_be_printed, :tran_date, :tran_id, :valid_from
15
15
 
@@ -17,7 +17,7 @@ module NetSuite
17
17
  field :apply_list, CustomerRefundApplyList
18
18
  field :deposit_list, CustomerRefundDepositList
19
19
 
20
- read_only_fields :total
20
+ read_only_fields :balance, :total
21
21
 
22
22
  record_refs :account, :ar_acct, :credit_card, :credit_card_processor, :custom_form, :customer, :department, :klass,
23
23
  :location, :payment_method, :posting_period, :subsidiary, :void_journal
@@ -9,95 +9,30 @@ module NetSuite
9
9
  module ClassMethods
10
10
 
11
11
  def actions(*args)
12
- instance_module = Module.new
13
- class_module = Module.new
14
12
  args.each do |action|
15
- define_action(instance_module, class_module, action)
13
+ action(action)
16
14
  end
17
- self.send(:include, instance_module)
18
- self.send(:extend, class_module)
19
15
  end
20
16
 
21
- def define_action(instance_module, class_module, action)
22
- case action
17
+ def action(name)
18
+ case name
23
19
  when :get
24
- define_get(class_module)
20
+ self.extend(NetSuite::Actions::Get::Support)
25
21
  when :add
26
- define_add(instance_module)
27
- when :initialize
28
- define_initialize(class_module)
22
+ self.send(:include, NetSuite::Actions::Add::Support)
29
23
  when :delete
30
- define_delete(instance_module)
24
+ self.send(:include, NetSuite::Actions::Delete::Support)
31
25
  when :update
32
- define_update(instance_module)
33
- else
34
- raise "Unknown action: #{action.inspect}"
35
- end
36
- end
37
-
38
- def define_get(class_module)
39
- class_module.module_eval do
40
- define_method :get do |*args|
41
- options, *ignored = *args
42
- response = NetSuite::Actions::Get.call(self, options)
43
- if response.success?
44
- new(response.body)
45
- else
46
- raise RecordNotFound, "#{self} with OPTIONS=#{options.inspect} could not be found"
47
- end
48
- end
49
- end
50
- end
51
-
52
- def define_add(instance_module)
53
- instance_module.module_eval do
54
- define_method :add do
55
- response = NetSuite::Actions::Add.call(self)
56
- response.success?
57
- end
58
- end
59
- end
60
-
61
- def define_initialize(class_module)
62
- (class << self; self; end).instance_eval do
63
- define_method :initialize do |*args|
64
- super(*args)
65
- end
66
- end
67
-
68
- class_module.module_eval do
69
- define_method :initialize do |object|
70
- response = NetSuite::Actions::Initialize.call(self, object)
71
- if response.success?
72
- new(response.body)
73
- else
74
- raise InitializationError, "#{self}.initialize with #{object} failed."
26
+ self.send(:include, NetSuite::Actions::Update::Support)
27
+ when :initialize
28
+ (class << self; self; end).instance_eval do # We have to do this because Class has a private
29
+ define_method :initialize do |*args| # #initialize method that this method will override.
30
+ super(*args)
75
31
  end
76
32
  end
77
- end
78
- end
79
-
80
- def define_delete(instance_module)
81
- instance_module.module_eval do
82
- define_method :delete do |*options|
83
- response = if options.empty?
84
- NetSuite::Actions::Delete.call(self)
85
- else
86
- NetSuite::Actions::Delete.call(self, *options)
87
- end
88
- response.success?
89
- end
90
- end
91
- end
92
-
93
- def define_update(instance_module)
94
- instance_module.module_eval do
95
- define_method :update do |options|
96
- options.merge!(:internal_id => internal_id) if respond_to?(:internal_id) && internal_id
97
- options.merge!(:external_id => external_id) if respond_to?(:external_id) && external_id
98
- response = NetSuite::Actions::Update.call(self.class, options)
99
- response.success?
100
- end
33
+ self.extend(NetSuite::Actions::Initialize::Support)
34
+ else
35
+ raise "Unknown action: #{name.inspect}"
101
36
  end
102
37
  end
103
38
 
@@ -1,3 +1,3 @@
1
1
  module Netsuite
2
- VERSION = '0.0.33'
2
+ VERSION = '0.0.34'
3
3
  end
@@ -177,13 +177,13 @@ describe NetSuite::Records::CustomerRefund do
177
177
 
178
178
  describe '#to_record' do
179
179
  before do
180
- refund.memo = 'This is a memo'
181
- refund.balance = 100
180
+ refund.memo = 'This is a memo'
181
+ refund.cc_zip_code = '10101'
182
182
  end
183
183
  it 'can represent itself as a SOAP record' do
184
184
  record = {
185
- 'tranCust:memo' => 'This is a memo',
186
- 'tranCust:balance' => 100
185
+ 'tranCust:memo' => 'This is a memo',
186
+ 'tranCust:ccZipCode' => '10101'
187
187
  }
188
188
  refund.to_record.should eql(record)
189
189
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netsuite
3
3
  version: !ruby/object:Gem::Version
4
- hash: 93
4
+ hash: 91
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 33
10
- version: 0.0.33
9
+ - 34
10
+ version: 0.0.34
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Moran