sugarcrm_emp 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/.document +5 -0
  2. data/.gitignore +29 -0
  3. data/Gemfile +14 -0
  4. data/LICENSE +20 -0
  5. data/README.rdoc +275 -0
  6. data/Rakefile +44 -0
  7. data/VERSION +1 -0
  8. data/WATCHLIST.rdoc +7 -0
  9. data/bin/sugarcrm +26 -0
  10. data/lib/rails/generators/sugarcrm/config/config_generator.rb +22 -0
  11. data/lib/rails/generators/sugarcrm/config/templates/initializer.rb +4 -0
  12. data/lib/rails/generators/sugarcrm/config/templates/sugarcrm.yml +19 -0
  13. data/lib/sugarcrm/associations/association.rb +170 -0
  14. data/lib/sugarcrm/associations/association_cache.rb +36 -0
  15. data/lib/sugarcrm/associations/association_collection.rb +141 -0
  16. data/lib/sugarcrm/associations/association_methods.rb +91 -0
  17. data/lib/sugarcrm/associations/associations.rb +61 -0
  18. data/lib/sugarcrm/associations.rb +5 -0
  19. data/lib/sugarcrm/attributes/attribute_methods.rb +203 -0
  20. data/lib/sugarcrm/attributes/attribute_serializers.rb +55 -0
  21. data/lib/sugarcrm/attributes/attribute_typecast.rb +44 -0
  22. data/lib/sugarcrm/attributes/attribute_validations.rb +62 -0
  23. data/lib/sugarcrm/attributes.rb +4 -0
  24. data/lib/sugarcrm/base.rb +355 -0
  25. data/lib/sugarcrm/config/sugarcrm.yaml +10 -0
  26. data/lib/sugarcrm/connection/api/get_available_modules.rb +22 -0
  27. data/lib/sugarcrm/connection/api/get_document_revision.rb +14 -0
  28. data/lib/sugarcrm/connection/api/get_entries.rb +23 -0
  29. data/lib/sugarcrm/connection/api/get_entries_count.rb +20 -0
  30. data/lib/sugarcrm/connection/api/get_entry.rb +23 -0
  31. data/lib/sugarcrm/connection/api/get_entry_list.rb +31 -0
  32. data/lib/sugarcrm/connection/api/get_module_fields.rb +15 -0
  33. data/lib/sugarcrm/connection/api/get_note_attachment.rb +14 -0
  34. data/lib/sugarcrm/connection/api/get_relationships.rb +30 -0
  35. data/lib/sugarcrm/connection/api/get_report_entries.rb +17 -0
  36. data/lib/sugarcrm/connection/api/get_server_info.rb +7 -0
  37. data/lib/sugarcrm/connection/api/get_user_id.rb +13 -0
  38. data/lib/sugarcrm/connection/api/get_user_team_id.rb +14 -0
  39. data/lib/sugarcrm/connection/api/login.rb +18 -0
  40. data/lib/sugarcrm/connection/api/logout.rb +15 -0
  41. data/lib/sugarcrm/connection/api/seamless_login.rb +13 -0
  42. data/lib/sugarcrm/connection/api/search_by_module.rb +25 -0
  43. data/lib/sugarcrm/connection/api/set_campaign_merge.rb +15 -0
  44. data/lib/sugarcrm/connection/api/set_document_revision.rb +35 -0
  45. data/lib/sugarcrm/connection/api/set_entries.rb +15 -0
  46. data/lib/sugarcrm/connection/api/set_entry.rb +15 -0
  47. data/lib/sugarcrm/connection/api/set_note_attachment.rb +25 -0
  48. data/lib/sugarcrm/connection/api/set_relationship.rb +27 -0
  49. data/lib/sugarcrm/connection/api/set_relationships.rb +22 -0
  50. data/lib/sugarcrm/connection/connection.rb +201 -0
  51. data/lib/sugarcrm/connection/helper.rb +50 -0
  52. data/lib/sugarcrm/connection/request.rb +61 -0
  53. data/lib/sugarcrm/connection/response.rb +91 -0
  54. data/lib/sugarcrm/connection.rb +5 -0
  55. data/lib/sugarcrm/connection_pool.rb +163 -0
  56. data/lib/sugarcrm/exceptions.rb +23 -0
  57. data/lib/sugarcrm/extensions/README.txt +23 -0
  58. data/lib/sugarcrm/finders/dynamic_finder_match.rb +41 -0
  59. data/lib/sugarcrm/finders/finder_methods.rb +243 -0
  60. data/lib/sugarcrm/finders.rb +2 -0
  61. data/lib/sugarcrm/module.rb +174 -0
  62. data/lib/sugarcrm/module_methods.rb +91 -0
  63. data/lib/sugarcrm/session.rb +218 -0
  64. data/lib/sugarcrm.rb +22 -0
  65. data/sugarcrm.gemspec +178 -0
  66. data/test/config_test.yaml +15 -0
  67. data/test/connection/test_get_available_modules.rb +9 -0
  68. data/test/connection/test_get_entries.rb +15 -0
  69. data/test/connection/test_get_entry.rb +22 -0
  70. data/test/connection/test_get_entry_list.rb +23 -0
  71. data/test/connection/test_get_module_fields.rb +11 -0
  72. data/test/connection/test_get_relationships.rb +12 -0
  73. data/test/connection/test_get_server_info.rb +9 -0
  74. data/test/connection/test_get_user_id.rb +9 -0
  75. data/test/connection/test_get_user_team_id.rb +9 -0
  76. data/test/connection/test_login.rb +9 -0
  77. data/test/connection/test_logout.rb +9 -0
  78. data/test/connection/test_set_document_revision.rb +28 -0
  79. data/test/connection/test_set_entry.rb +15 -0
  80. data/test/connection/test_set_note_attachment.rb +16 -0
  81. data/test/connection/test_set_relationship.rb +18 -0
  82. data/test/extensions_test/patch.rb +9 -0
  83. data/test/helper.rb +17 -0
  84. data/test/test_association_collection.rb +11 -0
  85. data/test/test_associations.rb +156 -0
  86. data/test/test_connection.rb +13 -0
  87. data/test/test_connection_pool.rb +40 -0
  88. data/test/test_finders.rb +201 -0
  89. data/test/test_module.rb +51 -0
  90. data/test/test_request.rb +35 -0
  91. data/test/test_response.rb +26 -0
  92. data/test/test_session.rb +136 -0
  93. data/test/test_sugarcrm.rb +213 -0
  94. metadata +266 -0
@@ -0,0 +1,136 @@
1
+ require 'helper'
2
+
3
+ CONFIG_TEST_PATH = File.join(File.dirname(__FILE__), 'config_test.yaml')
4
+
5
+ # contents of config_test.yaml
6
+ CONFIG_CONTENTS = {
7
+ :config => {
8
+ :base_url => 'http://127.0.0.1/sugarcrm',
9
+ :username => 'admin',
10
+ :password => 'letmein'
11
+ }
12
+ }
13
+ CONFIG_CONTENTS.freeze
14
+
15
+ class TestSession < ActiveSupport::TestCase
16
+ context "The SugarCRM::Session class" do
17
+ should "raise SugarCRM::MissingCredentials if at least one of url/username/password is missing" do
18
+ assert_raise(SugarCRM::MissingCredentials){ SugarCRM.connect('http://127.0.0.1/sugarcrm', nil, nil) }
19
+ end
20
+
21
+ should "assign namespaces in a way that prevents collisions" do
22
+ begin
23
+ # Namespae0 already assigned (linked to the current connection)
24
+ One = SugarCRM::Session.from_file(CONFIG_PATH)
25
+ Two = SugarCRM::Session.from_file(CONFIG_PATH)
26
+ One.disconnect!
27
+ Three = SugarCRM::Session.from_file(CONFIG_PATH)
28
+ assert_not_equal Two, Three # namespaces must be different
29
+ ensure
30
+ Two.disconnect!
31
+ Three.disconnect!
32
+ end
33
+ end
34
+
35
+ should "parse config parameters from a file" do
36
+ assert_equal CONFIG_CONTENTS, SugarCRM::Session.parse_config_file(CONFIG_TEST_PATH)
37
+ end
38
+
39
+ should "create a session from a config file" do
40
+ assert_difference('SugarCRM.namespaces.size') do
41
+ SugarCRM::Session.from_file(CONFIG_PATH)
42
+ end
43
+
44
+ SugarCRM.const_get(SugarCRM.namespaces.last).disconnect
45
+ end
46
+ end
47
+
48
+ context "A SugarCRM::Session instance" do
49
+ should "load monkey patch extensions" do
50
+ SugarCRM.extensions_folder = File.join(File.dirname(__FILE__), 'extensions_test')
51
+ assert SugarCRM::Contact.is_extended?
52
+ assert SugarCRM::Contact.is_extended?
53
+ end
54
+
55
+ should "implement reload!" do
56
+ assert_nothing_raised do
57
+ SugarCRM.reload!
58
+ end
59
+ end
60
+
61
+ should "load config file" do
62
+ SugarCRM.load_config CONFIG_TEST_PATH, :reconnect => false
63
+ CONFIG_CONTENTS[:config].each{|k,v| assert_equal v, SugarCRM.config[k]}
64
+ SugarCRM.load_config CONFIG_PATH
65
+ end
66
+
67
+ should "be able to disconnect, and log in to Sugar automatically if credentials are present in config file" do
68
+ assert_nothing_raised{ SugarCRM.current_user }
69
+ assert SugarCRM.sessions.size == 1
70
+
71
+ SugarCRM.disconnect!
72
+ assert SugarCRM.sessions.size == 0
73
+
74
+ assert_raise(SugarCRM::NoActiveSession){ SugarCRM.current_user }
75
+
76
+ SugarCRM::Session.from_file(CONFIG_PATH)
77
+
78
+ assert_nothing_raised{ SugarCRM.current_user }
79
+ assert SugarCRM.sessions.size == 1
80
+ end
81
+
82
+ should "update the login credentials on connection" do
83
+ config = YAML.load_file(CONFIG_PATH) # was loaded in helper.rb
84
+ ["base_url", "username", "password"].each{|k|
85
+ assert_equal config["config"][k], SugarCRM.config[k.to_sym]
86
+ }
87
+ end
88
+
89
+ should "return the server version" do
90
+ assert_equal String, SugarCRM.sugar_version.class
91
+ end
92
+ end
93
+
94
+ context "The SugarCRM module" do
95
+ should "show the only the namespaces currently in use with SugarCRM.namespaces" do
96
+ assert_equal 1, SugarCRM.namespaces.size
97
+
98
+ begin
99
+ assert_difference('SugarCRM.namespaces.size') do
100
+ OneA = SugarCRM::Session.from_file(CONFIG_PATH)
101
+ end
102
+ ensure
103
+ assert_difference('SugarCRM.namespaces.size', -1) do
104
+ OneA.disconnect!
105
+ end
106
+ end
107
+ end
108
+
109
+ should "add a used namespace on each new connection" do
110
+ begin
111
+ assert_difference('SugarCRM.used_namespaces.size') do
112
+ OneB = SugarCRM::Session.from_file(CONFIG_PATH)
113
+ end
114
+ ensure
115
+ # connection (and namespace) is reused => no used namespace should be added
116
+ assert_no_difference('SugarCRM.used_namespaces.size') do
117
+ OneB.reconnect!
118
+ end
119
+ end
120
+
121
+ assert_no_difference('SugarCRM.used_namespaces.size') do
122
+ OneB.disconnect!
123
+ end
124
+ end
125
+
126
+ should "not allow access to methods on SugarCRM if there are multiple active connections" do
127
+ begin
128
+ OneC = SugarCRM::Session.from_file(CONFIG_PATH)
129
+
130
+ assert_raise(SugarCRM::MultipleSessions){ SugarCRM.current_user }
131
+ ensure
132
+ OneC.disconnect!
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,213 @@
1
+ require 'helper'
2
+
3
+ class TestSugarCRM < ActiveSupport::TestCase
4
+ context "A class inheriting SugarCRM::Base" do
5
+ should "ignore 'id' attibute when creating an instance" do
6
+ first_account = SugarCRM::Account.first
7
+ new_account = nil
8
+ assert_difference('SugarCRM::Account.count') do
9
+ new_account = SugarCRM::Account.create(first_account.attributes)
10
+ end
11
+ assert first_account.id != new_account.id
12
+ end
13
+
14
+ should "implement self.count" do
15
+ nb_accounts = SugarCRM::Account.count
16
+ assert nb_accounts > 0, "There should be some Accounts"
17
+ nb_inc_accounts = nil
18
+ assert_nothing_raised do
19
+ nb_inc_accounts = SugarCRM::Account.count(:conditions => {:name => "LIKE '%Inc'"})
20
+ end
21
+ nb_inc_accounts_size = SugarCRM::Account.all(:conditions => {:name => "LIKE '%Inc'"}).size
22
+ assert nb_inc_accounts > 0
23
+ assert nb_inc_accounts < nb_accounts
24
+ assert_equal nb_inc_accounts_size, nb_inc_accounts
25
+ end
26
+
27
+ should "raise InvalidAttribute if self.count is called with a custom attribute" do
28
+ assert_raise SugarCRM::InvalidAttribute do
29
+ SugarCRM::Account.count(:conditions => {:custom_attribute_c => "value"})
30
+ end
31
+ end
32
+ end
33
+
34
+ context "A SugarCRM::Base instance" do
35
+
36
+ should "return the module name" do
37
+ assert_equal "Users", SugarCRM::User._module.name
38
+ end
39
+
40
+ should "return the module fields" do
41
+ assert_kind_of Hash, SugarCRM::Account._module.fields
42
+ end
43
+
44
+ should "respond to self#methods" do
45
+ assert_instance_of Array, SugarCRM::User.new.methods
46
+ end
47
+
48
+ should "respond to self.connection" do
49
+ assert_respond_to SugarCRM::User, :connection
50
+ assert_instance_of SugarCRM::Connection, SugarCRM::User.connection
51
+ end
52
+
53
+ should "respond to self.connection.logged_in?" do
54
+ assert_respond_to SugarCRM::User.connection, :logged_in?
55
+ end
56
+
57
+ should "respond to self.current_user" do
58
+ assert_instance_of SugarCRM::User, SugarCRM.current_user
59
+ end
60
+
61
+ should "respond to self.attributes_from_modules_fields" do
62
+ assert_kind_of Hash, SugarCRM::User.attributes_from_module
63
+ end
64
+
65
+ should "return an instance of itself when #new" do
66
+ assert_instance_of SugarCRM::User, SugarCRM::User.new
67
+ end
68
+
69
+ should "define instance level attributes when #new" do
70
+ u = SugarCRM::User.new
71
+ assert SugarCRM::User.attribute_methods_generated
72
+ end
73
+
74
+ should "not save a record that is missing required attributes" do
75
+ u = SugarCRM::User.new
76
+ u.last_name = "Test"
77
+ assert !u.save
78
+ assert_raise SugarCRM::InvalidRecord do
79
+ u.save!
80
+ end
81
+ end
82
+
83
+ should "create, modify, and delete a record" do
84
+ u = SugarCRM::User.new
85
+ assert u.email1?
86
+ u.email1 = "abc@abc.com"
87
+ u.first_name = "Test"
88
+ u.last_name = "User"
89
+ u.system_generated_password = false
90
+ u.user_name = "test_user"
91
+ u.status = "Active"
92
+ assert_equal "Test", u.modified_attributes[:first_name][:new]
93
+ assert u.save!
94
+ assert !u.new?
95
+ m = SugarCRM::User.find_by_first_name_and_last_name("Test", "User")
96
+ assert m.user_name != "admin"
97
+ m.title = "Test User"
98
+ assert m.save!
99
+ assert m.delete
100
+ assert m.destroyed?
101
+ end
102
+
103
+ should "respond to destroy" do
104
+ a = SugarCRM::Account.first
105
+ assert a.respond_to? :destroy
106
+ end
107
+
108
+ should "support saving of records with special characters in them" do
109
+ a = SugarCRM::Account.new
110
+ a.name = "COHEN, WEISS & SIMON LLP"
111
+ assert a.save!
112
+ assert a.delete
113
+ end
114
+
115
+ should "implement Base#reload!" do
116
+ a = SugarCRM::User.find("seed_will_id")
117
+ b = SugarCRM::User.find("seed_will_id")
118
+ assert_not_equal 'admin', a.user_name # make sure we don't mess up admin user
119
+ # Save the original value, so we can set it back.
120
+ orig_last_name = a.last_name.dup
121
+ diff_last_name = a.last_name + 'crm'
122
+ b.last_name = diff_last_name
123
+ b.save!
124
+ # Compare the two user objects
125
+ assert_not_equal b.last_name, a.last_name
126
+ a.reload!
127
+ assert_equal a.last_name, b.last_name
128
+ # Set the name back to what it was before
129
+ b.last_name = orig_last_name
130
+ b.save!
131
+ end
132
+
133
+ should "implement Base#update_attribute" do
134
+ a = SugarCRM::Account.first
135
+ orig_name = a.name
136
+ assert a.update_attribute('name', orig_name + 'test')
137
+ assert_not_equal orig_name, a.name
138
+ assert a.update_attribute('name', orig_name) # revert changes
139
+ end
140
+
141
+ should "implement Base#update_attribute!" do
142
+ a = SugarCRM::Account.first
143
+ orig_name = a.name
144
+ assert_nothing_raised do
145
+ a.update_attribute!('name', orig_name + 'test')
146
+ end
147
+ assert_not_equal orig_name, a.name
148
+ assert a.update_attribute('name', orig_name) # revert changes
149
+ end
150
+
151
+ should "implement Base#update_attributes" do
152
+ a = SugarCRM::Account.first
153
+ orig_name = a.name
154
+ orig_street = a.billing_address_street
155
+ assert a.update_attributes(:name => orig_name + 'test', :billing_address_street => orig_street + 'test')
156
+ assert_not_equal orig_name, a.name
157
+ assert_not_equal orig_street, a.billing_address_street
158
+ assert a.update_attributes(:name => orig_name, :billing_address_street => orig_street) # revert changes
159
+ end
160
+
161
+ should "implement Base#update_attributes!" do
162
+ a = SugarCRM::Account.first
163
+ orig_name = a.name
164
+ orig_street = a.billing_address_street
165
+ assert_nothing_raised do
166
+ a.update_attributes!(:name => orig_name + 'test', :billing_address_street => orig_street + 'test')
167
+ end
168
+ assert_not_equal orig_name, a.name
169
+ assert_not_equal orig_street, a.billing_address_street
170
+ assert a.update_attributes(:name => orig_name, :billing_address_street => orig_street) # revert changes
171
+ end
172
+
173
+ should "implement Base#persisted?" do
174
+ a = SugarCRM::Account.new(:name => 'temp')
175
+ assert ! a.persisted?
176
+ a.save!
177
+ assert a.persisted?
178
+ a.delete
179
+ assert ! a.persisted?
180
+ end
181
+
182
+ should "respond to #pretty_print" do
183
+ assert_respond_to SugarCRM::User.new, :pretty_print
184
+ end
185
+
186
+ should "return an instance's URL" do
187
+ user = SugarCRM::User.first
188
+ assert_equal "#{SugarCRM.session.config[:base_url]}/index.php?module=Users&action=DetailView&record=#{user.id}", user.url
189
+ end
190
+
191
+ should "respond to #blank?" do
192
+ assert !SugarCRM::User.first.blank?
193
+ end
194
+
195
+ should "bypass validation when #save(:validate => false)" do
196
+ u = SugarCRM::User.new
197
+ u.last_name = "doe"
198
+ assert u.save(:validate => false)
199
+ assert u.delete
200
+ end
201
+ end
202
+
203
+ # TODO: Fix this test so it creates the Note properly before asserting.
204
+ context "A SugarCRM::Note instance" do
205
+ should "return the correct parent record with the `parent` method" do
206
+ note = SugarCRM::Note.first
207
+ parent = note.parent
208
+ assert_equal note.parent_id, parent.id
209
+ assert_equal note.parent_type.singularize, parent.class.to_s.split('::').last
210
+ end
211
+ end
212
+
213
+ end
metadata ADDED
@@ -0,0 +1,266 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sugarcrm_emp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Carl Hicks
9
+ - David Sulc
10
+ - Dimitar Kostov
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2011-12-13 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: activesupport
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.10
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: 2.3.10
32
+ - !ruby/object:Gem::Dependency
33
+ name: i18n
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: json
50
+ requirement: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ - !ruby/object:Gem::Dependency
65
+ name: shoulda
66
+ requirement: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ type: :development
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: bundler
82
+ requirement: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 1.0.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 1.0.0
96
+ - !ruby/object:Gem::Dependency
97
+ name: jeweler
98
+ requirement: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 1.5.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: 1.5.2
112
+ description:
113
+ email: dimitar@emerchantpay.com
114
+ executables:
115
+ - sugarcrm
116
+ extensions: []
117
+ extra_rdoc_files:
118
+ - LICENSE
119
+ - README.rdoc
120
+ files:
121
+ - .document
122
+ - .gitignore
123
+ - Gemfile
124
+ - LICENSE
125
+ - README.rdoc
126
+ - Rakefile
127
+ - VERSION
128
+ - WATCHLIST.rdoc
129
+ - bin/sugarcrm
130
+ - lib/rails/generators/sugarcrm/config/config_generator.rb
131
+ - lib/rails/generators/sugarcrm/config/templates/initializer.rb
132
+ - lib/rails/generators/sugarcrm/config/templates/sugarcrm.yml
133
+ - lib/sugarcrm.rb
134
+ - lib/sugarcrm/associations.rb
135
+ - lib/sugarcrm/associations/association.rb
136
+ - lib/sugarcrm/associations/association_cache.rb
137
+ - lib/sugarcrm/associations/association_collection.rb
138
+ - lib/sugarcrm/associations/association_methods.rb
139
+ - lib/sugarcrm/associations/associations.rb
140
+ - lib/sugarcrm/attributes.rb
141
+ - lib/sugarcrm/attributes/attribute_methods.rb
142
+ - lib/sugarcrm/attributes/attribute_serializers.rb
143
+ - lib/sugarcrm/attributes/attribute_typecast.rb
144
+ - lib/sugarcrm/attributes/attribute_validations.rb
145
+ - lib/sugarcrm/base.rb
146
+ - lib/sugarcrm/config/sugarcrm.yaml
147
+ - lib/sugarcrm/connection.rb
148
+ - lib/sugarcrm/connection/api/get_available_modules.rb
149
+ - lib/sugarcrm/connection/api/get_document_revision.rb
150
+ - lib/sugarcrm/connection/api/get_entries.rb
151
+ - lib/sugarcrm/connection/api/get_entries_count.rb
152
+ - lib/sugarcrm/connection/api/get_entry.rb
153
+ - lib/sugarcrm/connection/api/get_entry_list.rb
154
+ - lib/sugarcrm/connection/api/get_module_fields.rb
155
+ - lib/sugarcrm/connection/api/get_note_attachment.rb
156
+ - lib/sugarcrm/connection/api/get_relationships.rb
157
+ - lib/sugarcrm/connection/api/get_report_entries.rb
158
+ - lib/sugarcrm/connection/api/get_server_info.rb
159
+ - lib/sugarcrm/connection/api/get_user_id.rb
160
+ - lib/sugarcrm/connection/api/get_user_team_id.rb
161
+ - lib/sugarcrm/connection/api/login.rb
162
+ - lib/sugarcrm/connection/api/logout.rb
163
+ - lib/sugarcrm/connection/api/seamless_login.rb
164
+ - lib/sugarcrm/connection/api/search_by_module.rb
165
+ - lib/sugarcrm/connection/api/set_campaign_merge.rb
166
+ - lib/sugarcrm/connection/api/set_document_revision.rb
167
+ - lib/sugarcrm/connection/api/set_entries.rb
168
+ - lib/sugarcrm/connection/api/set_entry.rb
169
+ - lib/sugarcrm/connection/api/set_note_attachment.rb
170
+ - lib/sugarcrm/connection/api/set_relationship.rb
171
+ - lib/sugarcrm/connection/api/set_relationships.rb
172
+ - lib/sugarcrm/connection/connection.rb
173
+ - lib/sugarcrm/connection/helper.rb
174
+ - lib/sugarcrm/connection/request.rb
175
+ - lib/sugarcrm/connection/response.rb
176
+ - lib/sugarcrm/connection_pool.rb
177
+ - lib/sugarcrm/exceptions.rb
178
+ - lib/sugarcrm/extensions/README.txt
179
+ - lib/sugarcrm/finders.rb
180
+ - lib/sugarcrm/finders/dynamic_finder_match.rb
181
+ - lib/sugarcrm/finders/finder_methods.rb
182
+ - lib/sugarcrm/module.rb
183
+ - lib/sugarcrm/module_methods.rb
184
+ - lib/sugarcrm/session.rb
185
+ - sugarcrm.gemspec
186
+ - test/config_test.yaml
187
+ - test/connection/test_get_available_modules.rb
188
+ - test/connection/test_get_entries.rb
189
+ - test/connection/test_get_entry.rb
190
+ - test/connection/test_get_entry_list.rb
191
+ - test/connection/test_get_module_fields.rb
192
+ - test/connection/test_get_relationships.rb
193
+ - test/connection/test_get_server_info.rb
194
+ - test/connection/test_get_user_id.rb
195
+ - test/connection/test_get_user_team_id.rb
196
+ - test/connection/test_login.rb
197
+ - test/connection/test_logout.rb
198
+ - test/connection/test_set_document_revision.rb
199
+ - test/connection/test_set_entry.rb
200
+ - test/connection/test_set_note_attachment.rb
201
+ - test/connection/test_set_relationship.rb
202
+ - test/extensions_test/patch.rb
203
+ - test/helper.rb
204
+ - test/test_association_collection.rb
205
+ - test/test_associations.rb
206
+ - test/test_connection.rb
207
+ - test/test_connection_pool.rb
208
+ - test/test_finders.rb
209
+ - test/test_module.rb
210
+ - test/test_request.rb
211
+ - test/test_response.rb
212
+ - test/test_session.rb
213
+ - test/test_sugarcrm.rb
214
+ homepage: http://github.com/eMerchantPay/sugarcrm
215
+ licenses: []
216
+ post_install_message:
217
+ rdoc_options: []
218
+ require_paths:
219
+ - lib
220
+ required_ruby_version: !ruby/object:Gem::Requirement
221
+ none: false
222
+ requirements:
223
+ - - ! '>='
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ required_rubygems_version: !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ! '>='
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ requirements: []
233
+ rubyforge_project:
234
+ rubygems_version: 1.8.23
235
+ signing_key:
236
+ specification_version: 3
237
+ summary: A less clunky way to interact with SugarCRM via REST.
238
+ test_files:
239
+ - test/config_test.yaml
240
+ - test/connection/test_get_available_modules.rb
241
+ - test/connection/test_get_entries.rb
242
+ - test/connection/test_get_entry.rb
243
+ - test/connection/test_get_entry_list.rb
244
+ - test/connection/test_get_module_fields.rb
245
+ - test/connection/test_get_relationships.rb
246
+ - test/connection/test_get_server_info.rb
247
+ - test/connection/test_get_user_id.rb
248
+ - test/connection/test_get_user_team_id.rb
249
+ - test/connection/test_login.rb
250
+ - test/connection/test_logout.rb
251
+ - test/connection/test_set_document_revision.rb
252
+ - test/connection/test_set_entry.rb
253
+ - test/connection/test_set_note_attachment.rb
254
+ - test/connection/test_set_relationship.rb
255
+ - test/extensions_test/patch.rb
256
+ - test/helper.rb
257
+ - test/test_association_collection.rb
258
+ - test/test_associations.rb
259
+ - test/test_connection.rb
260
+ - test/test_connection_pool.rb
261
+ - test/test_finders.rb
262
+ - test/test_module.rb
263
+ - test/test_request.rb
264
+ - test/test_response.rb
265
+ - test/test_session.rb
266
+ - test/test_sugarcrm.rb