sugarcrm 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +13 -0
- data/Rakefile +24 -30
- data/VERSION +1 -1
- data/lib/sugarcrm/base.rb +1 -1
- data/lib/sugarcrm/connection/connection.rb +1 -1
- data/test/connection/test_get_server_info.rb +1 -1
- data/test/connection/test_login.rb +1 -1
- data/test/connection/test_logout.rb +2 -2
- metadata +70 -16
data/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
gem "activesupport", ">= 3.0.0", :require => "active_support"
|
4
|
+
gem "i18n"
|
5
|
+
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
gem "shoulda", ">= 0"
|
10
|
+
gem "bundler", "~> 1.0.0"
|
11
|
+
gem "jeweler", "~> 1.5.2"
|
12
|
+
gem "rcov", ">= 0"
|
13
|
+
end
|
data/Rakefile
CHANGED
@@ -1,23 +1,25 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
2
10
|
require 'rake'
|
3
11
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
gem.add_development_dependency "shoulda", ">= 0"
|
14
|
-
gem.add_dependency "activesupport", ">= 3.0"
|
15
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
+
gem.name = "sugarcrm"
|
16
|
+
gem.summary = %Q{Ruby based REST client for SugarCRM}
|
17
|
+
gem.description = %Q{A less clunky way to interact with SugarCRM via REST. Instead of SugarCRM.connection.get_entry("Users", "1") you could use SugarCRM::User.find(1). There is support for collections a la SugarCRM::User.find(1).email_addresses, or SugarCRM::Contact.first.meetings << new_meeting. ActiveRecord style finders are in place, with limited support for conditions and joins.}
|
18
|
+
gem.email = "carl.hicks@gmail.com"
|
19
|
+
gem.homepage = "http://github.com/chicks/sugarcrm"
|
20
|
+
gem.authors = ["Carl Hicks"]
|
20
21
|
end
|
22
|
+
Jeweler::RubygemsDotOrgTasks.new
|
21
23
|
|
22
24
|
require 'rake/testtask'
|
23
25
|
Rake::TestTask.new(:test) do |test|
|
@@ -26,21 +28,13 @@ Rake::TestTask.new(:test) do |test|
|
|
26
28
|
test.verbose = true
|
27
29
|
end
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
test.verbose = true
|
35
|
-
end
|
36
|
-
rescue LoadError
|
37
|
-
task :rcov do
|
38
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
39
|
-
end
|
31
|
+
require 'rcov/rcovtask'
|
32
|
+
Rcov::RcovTask.new do |test|
|
33
|
+
test.libs << 'test'
|
34
|
+
test.pattern = 'test/**/test_*.rb'
|
35
|
+
test.verbose = true
|
40
36
|
end
|
41
37
|
|
42
|
-
task :test => :check_dependencies
|
43
|
-
|
44
38
|
task :default => :test
|
45
39
|
|
46
40
|
require 'rake/rdoctask'
|
@@ -51,4 +45,4 @@ Rake::RDocTask.new do |rdoc|
|
|
51
45
|
rdoc.title = "sugarcrm #{version}"
|
52
46
|
rdoc.rdoc_files.include('README*')
|
53
47
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
54
|
-
end
|
48
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.2
|
data/lib/sugarcrm/base.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module SugarCRM; class Base
|
2
2
|
|
3
3
|
# Unset all of the instance methods we don't need.
|
4
|
-
instance_methods.each { |m| undef_method m unless m =~ /(^__|^send$|^object_id$|^define_method$|^class$|^nil.$|^methods$|^instance_of.$|^respond_to
|
4
|
+
instance_methods.each { |m| undef_method m unless m =~ /(^__|^send$|^object_id$|^define_method$|^class$|^nil.$|^methods$|^instance_of.$|^respond_to)/ }
|
5
5
|
|
6
6
|
# This holds our connection
|
7
7
|
cattr_accessor :connection, :instance_writer => false
|
@@ -122,7 +122,7 @@ module SugarCRM; class Connection
|
|
122
122
|
# Some methods are dumb and don't return a JSON Response
|
123
123
|
return @response.body if RESPONSE_IS_NOT_JSON.include? @request.method
|
124
124
|
# Push it through the old meat grinder.
|
125
|
-
response_json = JSON.
|
125
|
+
response_json = ActiveSupport::JSON.decode(@response.body)
|
126
126
|
# Empty result. Is this wise?
|
127
127
|
return false if response_json["result_count"] == 0
|
128
128
|
# Filter debugging on REALLY BIG responses
|
@@ -6,7 +6,7 @@ class TestGetServerInfo < Test::Unit::TestCase
|
|
6
6
|
SugarCRM::Connection.new(URL, USER, PASS, {:register_modules => false})
|
7
7
|
end
|
8
8
|
should "get server info" do
|
9
|
-
|
9
|
+
assert_instance_of String, SugarCRM.connection.get_server_info["version"]
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -6,7 +6,7 @@ class TestLogin < Test::Unit::TestCase
|
|
6
6
|
SugarCRM::Connection.new(URL, USER, PASS, {:register_modules => false})
|
7
7
|
end
|
8
8
|
should "login and set session id" do
|
9
|
-
|
9
|
+
assert (SugarCRM.connection.session.class == String)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
class
|
3
|
+
class TestLogout < Test::Unit::TestCase
|
4
4
|
context "A SugarCRM.connection" do
|
5
5
|
setup do
|
6
6
|
SugarCRM::Connection.new(URL, USER, PASS, {:register_modules => false})
|
7
7
|
end
|
8
8
|
should "logout and not be able to login with the old session id" do
|
9
|
-
assert
|
9
|
+
assert (SugarCRM.connection.logout.class == Hash)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugarcrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 57
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
8
|
+
- 2
|
9
|
+
version: 0.9.2
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Carl Hicks
|
@@ -19,35 +18,90 @@ date: 2011-01-04 00:00:00 -08:00
|
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
23
|
-
prerelease: false
|
21
|
+
name: activesupport
|
24
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
27
|
segments:
|
28
|
+
- 3
|
31
29
|
- 0
|
32
|
-
|
33
|
-
|
30
|
+
- 0
|
31
|
+
version: 3.0.0
|
32
|
+
type: :runtime
|
33
|
+
prerelease: false
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
37
|
-
prerelease: false
|
36
|
+
name: i18n
|
38
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
38
|
none: false
|
40
39
|
requirements:
|
41
40
|
- - ">="
|
42
41
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 7
|
44
42
|
segments:
|
45
|
-
- 3
|
46
43
|
- 0
|
47
|
-
version: "
|
44
|
+
version: "0"
|
48
45
|
type: :runtime
|
46
|
+
prerelease: false
|
49
47
|
version_requirements: *id002
|
50
|
-
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: shoulda
|
50
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
version: "0"
|
58
|
+
type: :development
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: *id003
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: bundler
|
63
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
segments:
|
69
|
+
- 1
|
70
|
+
- 0
|
71
|
+
- 0
|
72
|
+
version: 1.0.0
|
73
|
+
type: :development
|
74
|
+
prerelease: false
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: jeweler
|
78
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 1
|
85
|
+
- 5
|
86
|
+
- 2
|
87
|
+
version: 1.5.2
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rcov
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
segments:
|
99
|
+
- 0
|
100
|
+
version: "0"
|
101
|
+
type: :development
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: *id006
|
104
|
+
description: A less clunky way to interact with SugarCRM via REST. Instead of SugarCRM.connection.get_entry("Users", "1") you could use SugarCRM::User.find(1). There is support for collections a la SugarCRM::User.find(1).email_addresses, or SugarCRM::Contact.first.meetings << new_meeting. ActiveRecord style finders are in place, with limited support for conditions and joins.
|
51
105
|
email: carl.hicks@gmail.com
|
52
106
|
executables: []
|
53
107
|
|
@@ -58,6 +112,7 @@ extra_rdoc_files:
|
|
58
112
|
- README.rdoc
|
59
113
|
files:
|
60
114
|
- .document
|
115
|
+
- Gemfile
|
61
116
|
- LICENSE
|
62
117
|
- README.rdoc
|
63
118
|
- Rakefile
|
@@ -138,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
138
193
|
requirements:
|
139
194
|
- - ">="
|
140
195
|
- !ruby/object:Gem::Version
|
141
|
-
hash:
|
196
|
+
hash: 2866682332345860933
|
142
197
|
segments:
|
143
198
|
- 0
|
144
199
|
version: "0"
|
@@ -147,7 +202,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
202
|
requirements:
|
148
203
|
- - ">="
|
149
204
|
- !ruby/object:Gem::Version
|
150
|
-
hash: 3
|
151
205
|
segments:
|
152
206
|
- 0
|
153
207
|
version: "0"
|