sugarcrm 0.6.2 → 0.7.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.
Files changed (59) hide show
  1. data/README.rdoc +13 -8
  2. data/Rakefile +1 -1
  3. data/VERSION +1 -1
  4. data/lib/sugarcrm.rb +7 -139
  5. data/lib/sugarcrm/association_methods.rb +45 -0
  6. data/lib/sugarcrm/attribute_methods.rb +65 -0
  7. data/lib/sugarcrm/base.rb +85 -0
  8. data/lib/sugarcrm/connection.rb +126 -103
  9. data/lib/sugarcrm/{api → connection/api}/get_available_modules.rb +6 -1
  10. data/lib/sugarcrm/{api → connection/api}/get_document_revision.rb +2 -1
  11. data/lib/sugarcrm/{api → connection/api}/get_entries.rb +5 -6
  12. data/lib/sugarcrm/{api → connection/api}/get_entries_count.rb +3 -5
  13. data/lib/sugarcrm/{api → connection/api}/get_entry.rb +6 -6
  14. data/lib/sugarcrm/{api → connection/api}/get_entry_list.rb +6 -6
  15. data/lib/sugarcrm/{api → connection/api}/get_module_fields.rb +2 -1
  16. data/lib/sugarcrm/{api → connection/api}/get_note_attachment.rb +1 -1
  17. data/lib/sugarcrm/connection/api/get_relationships.rb +34 -0
  18. data/lib/sugarcrm/{api → connection/api}/get_report_entries.rb +1 -1
  19. data/lib/sugarcrm/{api → connection/api}/get_server_info.rb +1 -1
  20. data/lib/sugarcrm/{api → connection/api}/get_user_id.rb +2 -2
  21. data/lib/sugarcrm/{api → connection/api}/get_user_team_id.rb +2 -2
  22. data/lib/sugarcrm/{api → connection/api}/login.rb +1 -1
  23. data/lib/sugarcrm/{api → connection/api}/logout.rb +1 -1
  24. data/lib/sugarcrm/{api → connection/api}/seamless_login.rb +1 -1
  25. data/lib/sugarcrm/{api → connection/api}/search_by_module.rb +1 -1
  26. data/lib/sugarcrm/{api → connection/api}/set_campaign_merge.rb +1 -1
  27. data/lib/sugarcrm/{api → connection/api}/set_document_revision.rb +1 -1
  28. data/lib/sugarcrm/{api → connection/api}/set_entries.rb +1 -1
  29. data/lib/sugarcrm/{api → connection/api}/set_entry.rb +1 -1
  30. data/lib/sugarcrm/{api → connection/api}/set_note_attachment.rb +0 -0
  31. data/lib/sugarcrm/{api → connection/api}/set_relationship.rb +1 -1
  32. data/lib/sugarcrm/{api → connection/api}/set_relationships.rb +1 -1
  33. data/lib/sugarcrm/connection/helper.rb +10 -0
  34. data/lib/sugarcrm/exceptions.rb +6 -0
  35. data/lib/sugarcrm/module.rb +105 -6
  36. data/lib/sugarcrm/module_methods.rb +18 -0
  37. data/lib/sugarcrm/request.rb +13 -3
  38. data/lib/sugarcrm/response.rb +75 -25
  39. data/test/connection/test_get_available_modules.rb +12 -0
  40. data/test/connection/test_get_entries.rb +21 -0
  41. data/test/connection/test_get_entry.rb +20 -0
  42. data/test/connection/test_get_entry_list.rb +28 -0
  43. data/test/connection/test_get_module_fields.rb +14 -0
  44. data/test/connection/test_get_relationships.rb +15 -0
  45. data/test/connection/test_get_server_info.rb +12 -0
  46. data/test/connection/test_get_user_id.rb +12 -0
  47. data/test/connection/test_get_user_team_id.rb +12 -0
  48. data/test/connection/test_login.rb +12 -0
  49. data/test/connection/test_logout.rb +12 -0
  50. data/test/helper.rb +4 -1
  51. data/test/test_connection.rb +12 -48
  52. data/test/test_module.rb +14 -0
  53. data/test/test_response.rb +5 -14
  54. data/test/test_sugarcrm.rb +16 -14
  55. metadata +60 -34
  56. data/lib/sugarcrm/api/get_relationship.rb +0 -25
  57. data/lib/sugarcrm/core_ext/attribute.rb +0 -67
  58. data/lib/sugarcrm/core_ext/remove_method.rb +0 -6
  59. data/lib/sugarcrm/core_ext/singleton_class.rb +0 -13
@@ -1,25 +1,17 @@
1
1
  require 'helper'
2
- require "test/unit"
3
- require "pp"
4
2
 
5
- class TestSugarcrm < Test::Unit::TestCase
6
- context "A SugarCRM::Module instance" do
3
+ class TestSugarCRM < Test::Unit::TestCase
4
+ context "A SugarCRM::Base instance" do
7
5
 
8
6
  should "return the module name" do
9
- assert_equal "Users", SugarCRM::User.module_name
7
+ assert_equal "Users", SugarCRM::User._module.name
10
8
  end
11
9
 
12
10
  should "respond to self.connection" do
13
11
  assert_respond_to SugarCRM::User, :connection
14
12
  assert_instance_of SugarCRM::Connection, SugarCRM::User.connection
15
13
  end
16
-
17
- should "respond to self.register_module_fields" do
18
- assert_respond_to SugarCRM::User, :register_module_fields
19
- SugarCRM::User.register_module_fields
20
- assert SugarCRM::User.module_fields.length > 0
21
- end
22
-
14
+
23
15
  should "respond to self.connection.logged_in?" do
24
16
  assert SugarCRM::User.connection.logged_in?
25
17
  end
@@ -33,16 +25,26 @@ class TestSugarcrm < Test::Unit::TestCase
33
25
  assert SugarCRM::User.attribute_methods_generated
34
26
  end
35
27
 
36
- should "respond to attributes derived from module_fields" do
28
+ should "respond to attributes derived from #_module.fields" do
37
29
  u = SugarCRM::User.new
38
30
  u.last_name = "Test"
39
31
  assert_equal "Test", u.last_name
40
32
  end
41
33
 
42
34
  should "return an an instance of itself when sent #find(id)" do
35
+ assert_instance_of SugarCRM::User, SugarCRM::User.find(1)
36
+ end
37
+
38
+ should "receive a response containing all fields when sent #get_entry" do
43
39
  u = SugarCRM::User.find(1)
44
- assert_instance_of SugarCRM::User, u
40
+ assert_equal u.user_name, "admin"
41
+ end
42
+
43
+ should "return an email address when sent #email_addresses" do
44
+ u = SugarCRM::User.find("seed_sarah_id")
45
+ assert_equal "sarah@example.com", u.email_addresses.first.email_address
45
46
  end
47
+
46
48
  end
47
49
 
48
50
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sugarcrm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 6
8
+ - 7
9
9
  - 2
10
- version: 0.6.2
10
+ version: 0.7.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Carl Hicks
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-09 00:00:00 -07:00
18
+ date: 2010-11-13 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -54,11 +54,11 @@ dependencies:
54
54
  requirements:
55
55
  - - ">="
56
56
  - !ruby/object:Gem::Version
57
- hash: 5
57
+ hash: 7
58
58
  segments:
59
- - 2
60
59
  - 3
61
- version: "2.3"
60
+ - 0
61
+ version: "3.0"
62
62
  type: :runtime
63
63
  version_requirements: *id003
64
64
  description: |-
@@ -81,40 +81,54 @@ files:
81
81
  - Rakefile
82
82
  - VERSION
83
83
  - lib/sugarcrm.rb
84
- - lib/sugarcrm/api/get_available_modules.rb
85
- - lib/sugarcrm/api/get_document_revision.rb
86
- - lib/sugarcrm/api/get_entries.rb
87
- - lib/sugarcrm/api/get_entries_count.rb
88
- - lib/sugarcrm/api/get_entry.rb
89
- - lib/sugarcrm/api/get_entry_list.rb
90
- - lib/sugarcrm/api/get_module_fields.rb
91
- - lib/sugarcrm/api/get_note_attachment.rb
92
- - lib/sugarcrm/api/get_relationship.rb
93
- - lib/sugarcrm/api/get_report_entries.rb
94
- - lib/sugarcrm/api/get_server_info.rb
95
- - lib/sugarcrm/api/get_user_id.rb
96
- - lib/sugarcrm/api/get_user_team_id.rb
97
- - lib/sugarcrm/api/login.rb
98
- - lib/sugarcrm/api/logout.rb
99
- - lib/sugarcrm/api/seamless_login.rb
100
- - lib/sugarcrm/api/search_by_module.rb
101
- - lib/sugarcrm/api/set_campaign_merge.rb
102
- - lib/sugarcrm/api/set_document_revision.rb
103
- - lib/sugarcrm/api/set_entries.rb
104
- - lib/sugarcrm/api/set_entry.rb
105
- - lib/sugarcrm/api/set_note_attachment.rb
106
- - lib/sugarcrm/api/set_relationship.rb
107
- - lib/sugarcrm/api/set_relationships.rb
84
+ - lib/sugarcrm/association_methods.rb
85
+ - lib/sugarcrm/attribute_methods.rb
86
+ - lib/sugarcrm/base.rb
108
87
  - lib/sugarcrm/connection.rb
109
- - lib/sugarcrm/core_ext/attribute.rb
110
- - lib/sugarcrm/core_ext/remove_method.rb
111
- - lib/sugarcrm/core_ext/singleton_class.rb
88
+ - lib/sugarcrm/connection/api/get_available_modules.rb
89
+ - lib/sugarcrm/connection/api/get_document_revision.rb
90
+ - lib/sugarcrm/connection/api/get_entries.rb
91
+ - lib/sugarcrm/connection/api/get_entries_count.rb
92
+ - lib/sugarcrm/connection/api/get_entry.rb
93
+ - lib/sugarcrm/connection/api/get_entry_list.rb
94
+ - lib/sugarcrm/connection/api/get_module_fields.rb
95
+ - lib/sugarcrm/connection/api/get_note_attachment.rb
96
+ - lib/sugarcrm/connection/api/get_relationships.rb
97
+ - lib/sugarcrm/connection/api/get_report_entries.rb
98
+ - lib/sugarcrm/connection/api/get_server_info.rb
99
+ - lib/sugarcrm/connection/api/get_user_id.rb
100
+ - lib/sugarcrm/connection/api/get_user_team_id.rb
101
+ - lib/sugarcrm/connection/api/login.rb
102
+ - lib/sugarcrm/connection/api/logout.rb
103
+ - lib/sugarcrm/connection/api/seamless_login.rb
104
+ - lib/sugarcrm/connection/api/search_by_module.rb
105
+ - lib/sugarcrm/connection/api/set_campaign_merge.rb
106
+ - lib/sugarcrm/connection/api/set_document_revision.rb
107
+ - lib/sugarcrm/connection/api/set_entries.rb
108
+ - lib/sugarcrm/connection/api/set_entry.rb
109
+ - lib/sugarcrm/connection/api/set_note_attachment.rb
110
+ - lib/sugarcrm/connection/api/set_relationship.rb
111
+ - lib/sugarcrm/connection/api/set_relationships.rb
112
+ - lib/sugarcrm/connection/helper.rb
112
113
  - lib/sugarcrm/exceptions.rb
113
114
  - lib/sugarcrm/module.rb
115
+ - lib/sugarcrm/module_methods.rb
114
116
  - lib/sugarcrm/request.rb
115
117
  - lib/sugarcrm/response.rb
118
+ - test/connection/test_get_available_modules.rb
119
+ - test/connection/test_get_entries.rb
120
+ - test/connection/test_get_entry.rb
121
+ - test/connection/test_get_entry_list.rb
122
+ - test/connection/test_get_module_fields.rb
123
+ - test/connection/test_get_relationships.rb
124
+ - test/connection/test_get_server_info.rb
125
+ - test/connection/test_get_user_id.rb
126
+ - test/connection/test_get_user_team_id.rb
127
+ - test/connection/test_login.rb
128
+ - test/connection/test_logout.rb
116
129
  - test/helper.rb
117
130
  - test/test_connection.rb
131
+ - test/test_module.rb
118
132
  - test/test_response.rb
119
133
  - test/test_sugarcrm.rb
120
134
  has_rdoc: true
@@ -152,7 +166,19 @@ signing_key:
152
166
  specification_version: 3
153
167
  summary: Ruby based REST client for SugarCRM
154
168
  test_files:
169
+ - test/connection/test_get_available_modules.rb
170
+ - test/connection/test_get_entries.rb
171
+ - test/connection/test_get_entry.rb
172
+ - test/connection/test_get_entry_list.rb
173
+ - test/connection/test_get_module_fields.rb
174
+ - test/connection/test_get_relationships.rb
175
+ - test/connection/test_get_server_info.rb
176
+ - test/connection/test_get_user_id.rb
177
+ - test/connection/test_get_user_team_id.rb
178
+ - test/connection/test_login.rb
179
+ - test/connection/test_logout.rb
155
180
  - test/helper.rb
156
181
  - test/test_connection.rb
182
+ - test/test_module.rb
157
183
  - test/test_response.rb
158
184
  - test/test_sugarcrm.rb
@@ -1,25 +0,0 @@
1
- module SugarCRM; class Connection
2
- # Retrieves a collection of beans that are related
3
- # to the specified bean and, optionally, returns
4
- # relationship data
5
- def get_relationship(module_name, id, related_to, options={})
6
- login! unless logged_in?
7
- json = <<-EOF
8
- {
9
- \"session\": \"#{@session}\"\,
10
- \"module_name\": \"#{module_name}\"\,
11
- \"module_ids\": \"#{id}\"\,
12
- \"link_field_name\": \"#{related_to.downcase}\"\,
13
- \"related_module_query\": \"#{options[:related_module_query]}\"\,
14
- \"related_fields\": #{options[:related_fields].to_json}\,
15
- \"related_module_link_name_to_fields_array\": #{options[:related_link_fields].to_json}\,
16
- \"deleted\": #{options[:deleted]}
17
- }
18
- EOF
19
- json.gsub!(/^\s{6}/,'')
20
- get(:get_relationship, json)
21
- end
22
-
23
- alias :get_relationships :get_relationship
24
-
25
- end; end
@@ -1,67 +0,0 @@
1
- #require 'singleton_class'
2
- #require 'remove_method'
3
-
4
- class Class
5
- # Declare a class-level attribute whose value is inheritable and
6
- # overwritable by subclasses:
7
- #
8
- # class Base
9
- # class_attribute :setting
10
- # end
11
- #
12
- # class Subclass < Base
13
- # end
14
- #
15
- # Base.setting = true
16
- # Subclass.setting # => true
17
- # Subclass.setting = false
18
- # Subclass.setting # => false
19
- # Base.setting # => true
20
- #
21
- # This matches normal Ruby method inheritance: think of writing an attribute
22
- # on a subclass as overriding the reader method.
23
- #
24
- # For convenience, a query method is defined as well:
25
- #
26
- # Subclass.setting? # => false
27
- #
28
- # Instances may overwrite the class value in the same way:
29
- #
30
- # Base.setting = true
31
- # object = Base.new
32
- # object.setting # => true
33
- # object.setting = false
34
- # object.setting # => false
35
- # Base.setting # => true
36
- #
37
- # To opt out of the instance writer method, pass :instance_writer => false.
38
- #
39
- # object.setting = false # => NoMethodError
40
- def class_attribute(*attrs)
41
- instance_writer = !attrs.last.is_a?(Hash) || attrs.pop[:instance_writer]
42
-
43
- attrs.each do |name|
44
- class_eval <<-RUBY, __FILE__, __LINE__ + 1
45
- def self.#{name}() nil end
46
- def self.#{name}?() !!#{name} end
47
-
48
- def self.#{name}=(val)
49
- singleton_class.class_eval do
50
- remove_possible_method(:#{name})
51
- define_method(:#{name}) { val }
52
- end
53
- end
54
-
55
- def #{name}
56
- defined?(@#{name}) ? @#{name} : singleton_class.#{name}
57
- end
58
-
59
- def #{name}?
60
- !!#{name}
61
- end
62
- RUBY
63
-
64
- attr_writer name if instance_writer
65
- end
66
- end
67
- end
@@ -1,6 +0,0 @@
1
- class Module
2
- def remove_possible_method(method)
3
- remove_method(method)
4
- rescue NameError
5
- end
6
- end
@@ -1,13 +0,0 @@
1
- module Kernel
2
- # Returns the object's singleton class.
3
- def singleton_class
4
- class << self
5
- self
6
- end
7
- end unless respond_to?(:singleton_class) # exists in 1.9.2
8
-
9
- # class_eval on an object acts like singleton_class.class_eval.
10
- def class_eval(*args, &block)
11
- singleton_class.class_eval(*args, &block)
12
- end
13
- end