ns_connector 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/Gemfile +13 -0
  2. data/Gemfile.lock +80 -0
  3. data/Guardfile +9 -0
  4. data/HACKING +31 -0
  5. data/LICENSE.txt +7 -0
  6. data/README.rdoc +191 -0
  7. data/Rakefile +45 -0
  8. data/VERSION +1 -0
  9. data/lib/ns_connector.rb +4 -0
  10. data/lib/ns_connector/attaching.rb +42 -0
  11. data/lib/ns_connector/chunked_searching.rb +111 -0
  12. data/lib/ns_connector/config.rb +66 -0
  13. data/lib/ns_connector/errors.rb +79 -0
  14. data/lib/ns_connector/field_store.rb +19 -0
  15. data/lib/ns_connector/hash.rb +11 -0
  16. data/lib/ns_connector/resource.rb +288 -0
  17. data/lib/ns_connector/resources.rb +3 -0
  18. data/lib/ns_connector/resources/contact.rb +279 -0
  19. data/lib/ns_connector/resources/customer.rb +355 -0
  20. data/lib/ns_connector/resources/invoice.rb +466 -0
  21. data/lib/ns_connector/restlet.rb +137 -0
  22. data/lib/ns_connector/sublist.rb +21 -0
  23. data/lib/ns_connector/sublist_item.rb +25 -0
  24. data/misc/failed_sublist_saving_patch +547 -0
  25. data/scripts/run_restlet +25 -0
  26. data/scripts/test_shell +21 -0
  27. data/spec/attaching_spec.rb +48 -0
  28. data/spec/chunked_searching_spec.rb +75 -0
  29. data/spec/config_spec.rb +43 -0
  30. data/spec/resource_spec.rb +340 -0
  31. data/spec/resources/contact_spec.rb +8 -0
  32. data/spec/resources/customer_spec.rb +8 -0
  33. data/spec/resources/invoice_spec.rb +20 -0
  34. data/spec/restlet_spec.rb +135 -0
  35. data/spec/spec_helper.rb +16 -0
  36. data/spec/sublist_item_spec.rb +25 -0
  37. data/spec/sublist_spec.rb +45 -0
  38. data/spec/support/mock_data.rb +10 -0
  39. data/support/read_only_test +63 -0
  40. data/support/restlet.js +384 -0
  41. data/support/super_dangerous_write_test +85 -0
  42. metadata +221 -0
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env ruby
2
+ # XXX XXX XXX XXX XXX XXX XXX Warning! XXX XXX XXX XXX XXX XXX XXX XXX XXX
3
+ #
4
+ # This *will* write to NetSuite, and delete things. If there is a bug here, we
5
+ # will probably leave things behind, accidentaly delete important production
6
+ # data and generally break shit.
7
+ #
8
+ # So, in summary, don't run this anywhere you mind losing data.
9
+ #
10
+ # XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
11
+
12
+ $: << File.join(
13
+ File.dirname(__FILE__),
14
+ '..', 'lib'
15
+ )
16
+
17
+ require 'ns_connector'
18
+ require 'rspec/autorun'
19
+
20
+ unless ARGV.size == 1 then
21
+ warn "Usage: #{$0} <config as ruby code>"
22
+ warn "Warning! This script will probably destroy production data, "\
23
+ "it is only intended for testing"
24
+ end
25
+
26
+ # We shift the argument off here, or it gets passed to the RSpec runner
27
+ NSConnector::Config.set_config!(eval(ARGV.shift))
28
+
29
+ def customer_id
30
+ NSConnector::Config[:valid_customer_id]
31
+ end
32
+
33
+ def delete_id id
34
+ NSConnector::Restlet.execute!(
35
+ :action => 'delete',
36
+ :type_id => 'contact',
37
+ :fields => ['id'],
38
+ :data => {
39
+ :id => id
40
+ }
41
+ )
42
+ end
43
+
44
+ describe 'create' do
45
+ it 'returns the saved record' do
46
+ resource = NSConnector::Restlet.execute!(
47
+ :action => 'create',
48
+ :type_id => 'contact',
49
+ :fields => ['id', 'firstname'],
50
+ :data => {
51
+ :firstname => '__test__'
52
+ }
53
+ )
54
+
55
+ # Cleanup
56
+ at_exit do
57
+ warn "Cleaning up contact id: #{resource['id']}"
58
+ delete_id(resource['id'])
59
+ end
60
+
61
+ expect(resource).to be_a(Hash)
62
+ expect(resource['id']).to be_a(String)
63
+ expect(resource['id']).to_not be_empty
64
+ expect(resource['firstname']).to eql('__test__')
65
+ end
66
+ end
67
+
68
+ describe 'update' do
69
+ it 'returns the updated record' do
70
+ resource = NSConnector::Restlet.execute!(
71
+ :action => 'update',
72
+ :type_id => 'contact',
73
+ :fields => ['id', 'firstname'],
74
+ :data => {
75
+ :id => customer_id,
76
+ :firstname => 'Testguy'
77
+ }
78
+ )
79
+
80
+ expect(resource).to be_a(Hash)
81
+ expect(resource['id']).to be_a(String)
82
+ expect(resource['id']).to_not be_empty
83
+ expect(resource['firstname']).to eql('Testguy')
84
+ end
85
+ end
metadata ADDED
@@ -0,0 +1,221 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ns_connector
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Christian Marie <pingu@anchor.com.au>
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-06-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: webmock
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: jeweler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: bundler
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rdoc
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: pry-debugger
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: guard-rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description: This library provides an interface to NetSuite via'RESTlets'. This appears
143
+ to be a quicker and more reliableway of interfacing with NetSuite records than the
144
+ SOAP API.
145
+ email:
146
+ executables: []
147
+ extensions: []
148
+ extra_rdoc_files:
149
+ - LICENSE.txt
150
+ - README.rdoc
151
+ files:
152
+ - Gemfile
153
+ - Gemfile.lock
154
+ - Guardfile
155
+ - HACKING
156
+ - LICENSE.txt
157
+ - README.rdoc
158
+ - Rakefile
159
+ - VERSION
160
+ - lib/ns_connector.rb
161
+ - lib/ns_connector/attaching.rb
162
+ - lib/ns_connector/chunked_searching.rb
163
+ - lib/ns_connector/config.rb
164
+ - lib/ns_connector/errors.rb
165
+ - lib/ns_connector/field_store.rb
166
+ - lib/ns_connector/hash.rb
167
+ - lib/ns_connector/resource.rb
168
+ - lib/ns_connector/resources.rb
169
+ - lib/ns_connector/resources/contact.rb
170
+ - lib/ns_connector/resources/customer.rb
171
+ - lib/ns_connector/resources/invoice.rb
172
+ - lib/ns_connector/restlet.rb
173
+ - lib/ns_connector/sublist.rb
174
+ - lib/ns_connector/sublist_item.rb
175
+ - misc/failed_sublist_saving_patch
176
+ - scripts/run_restlet
177
+ - scripts/test_shell
178
+ - spec/attaching_spec.rb
179
+ - spec/chunked_searching_spec.rb
180
+ - spec/config_spec.rb
181
+ - spec/resource_spec.rb
182
+ - spec/resources/contact_spec.rb
183
+ - spec/resources/customer_spec.rb
184
+ - spec/resources/invoice_spec.rb
185
+ - spec/restlet_spec.rb
186
+ - spec/spec_helper.rb
187
+ - spec/sublist_item_spec.rb
188
+ - spec/sublist_spec.rb
189
+ - spec/support/mock_data.rb
190
+ - support/read_only_test
191
+ - support/restlet.js
192
+ - support/super_dangerous_write_test
193
+ homepage: ''
194
+ licenses:
195
+ - MIT
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ segments:
207
+ - 0
208
+ hash: 2425652984816094111
209
+ required_rubygems_version: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ requirements: []
216
+ rubyforge_project:
217
+ rubygems_version: 1.8.23
218
+ signing_key:
219
+ specification_version: 3
220
+ summary: An interface to NetSuite records via RESTlets.
221
+ test_files: []