liquidplanner 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/liquidplanner.rb +1 -0
- data/lib/liquidplanner/base.rb +2 -2
- data/lib/liquidplanner/liquidplanner_resource.rb +1 -1
- data/lib/liquidplanner/resources/activity.rb +10 -0
- data/lib/liquidplanner/resources/timesheet_entry.rb +6 -0
- data/lib/liquidplanner/resources/workspace.rb +12 -0
- data/test/liquidplanner_resource_test.rb +7 -7
- data/test/workspace_test.rb +22 -14
- metadata +51 -32
data/lib/liquidplanner.rb
CHANGED
@@ -33,6 +33,7 @@ require "liquidplanner/resources/package"
|
|
33
33
|
require "liquidplanner/resources/folder"
|
34
34
|
require "liquidplanner/resources/project"
|
35
35
|
require "liquidplanner/resources/client"
|
36
|
+
require "liquidplanner/resources/timesheet_entry"
|
36
37
|
|
37
38
|
require "liquidplanner/resources/luggage"
|
38
39
|
require "liquidplanner/resources/note"
|
data/lib/liquidplanner/base.rb
CHANGED
@@ -18,11 +18,11 @@ module LiquidPlanner
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def account
|
21
|
-
LiquidPlanner::Resources::Account.find(:one, :from => "/api/account")
|
21
|
+
LiquidPlanner::Resources::Account.find( :one, :from => "/api/account" )
|
22
22
|
end
|
23
23
|
|
24
24
|
def workspaces( scope=:all )
|
25
|
-
LiquidPlanner::Resources::Workspace.find(scope)
|
25
|
+
LiquidPlanner::Resources::Workspace.find( scope )
|
26
26
|
end
|
27
27
|
|
28
28
|
private
|
@@ -7,7 +7,7 @@ module LiquidPlanner
|
|
7
7
|
|
8
8
|
# LiquidPlanner does not send back data that is already in the path (prefix_options), so merge
|
9
9
|
# any values that the object already had back into the prefix_options.
|
10
|
-
def load(attributes)
|
10
|
+
def load(attributes, remove_root = false)
|
11
11
|
initial_prefix_options = @prefix_options.clone
|
12
12
|
super
|
13
13
|
@prefix_options.merge!(initial_prefix_options){|k, old_attr,new_attr| old_attr || new_attr }
|
@@ -1,6 +1,16 @@
|
|
1
1
|
module LiquidPlanner
|
2
2
|
module Resources
|
3
3
|
class Activity < Luggage
|
4
|
+
|
5
|
+
self.prefix = "/api/workspaces/:workspace_id/"
|
6
|
+
|
7
|
+
def collection_path(options = nil)
|
8
|
+
ret = super
|
9
|
+
puts ret.inspect
|
10
|
+
return ret unless options && options.item_id
|
11
|
+
"#{super}/#{options.item_id}"
|
12
|
+
end
|
13
|
+
|
4
14
|
end
|
5
15
|
end
|
6
16
|
end
|
@@ -42,6 +42,18 @@ module LiquidPlanner
|
|
42
42
|
CustomField.find( scope, :params => { :workspace_id => self.id }.merge(options) )
|
43
43
|
end
|
44
44
|
|
45
|
+
def activities( scope=:all, options={} )
|
46
|
+
Activity.find( scope, :params => {
|
47
|
+
:workspace_id => self.id
|
48
|
+
}.merge(options) )
|
49
|
+
end
|
50
|
+
|
51
|
+
def timesheet_entries scope = :all, options = {}
|
52
|
+
TimesheetEntry.find( scope, :params => {
|
53
|
+
:workspace_id => self.id
|
54
|
+
}.merge( options ) );
|
55
|
+
end
|
56
|
+
|
45
57
|
protected
|
46
58
|
|
47
59
|
# create a new instance of klass (Task, Folder, etc.),
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
require 'mocha'
|
2
|
+
require 'mocha/setup'
|
3
3
|
require File.dirname(__FILE__) + '/../lib/liquidplanner'
|
4
4
|
|
5
5
|
# Test that the special behaviors that LiquidPlanner expects behave sanely.
|
@@ -7,15 +7,15 @@ class LiquidPlannerResourceTest < Test::Unit::TestCase
|
|
7
7
|
def setup
|
8
8
|
@email = 'testing@example.com'
|
9
9
|
@password = 'password'
|
10
|
-
@lp = LiquidPlanner::Base.new(:email
|
10
|
+
@lp = LiquidPlanner::Base.new( :email => @email, :password => @password )
|
11
11
|
end
|
12
12
|
|
13
13
|
# LiquidPlanner does not include redundant data in the responses, ensure that workspace_id is preserved
|
14
14
|
def test_loading_does_not_clobber_prefix_options
|
15
15
|
id = 7
|
16
16
|
task = LiquidPlanner::Resources::Task.new()
|
17
|
-
task.prefix_options = {:workspace_id=>id}
|
18
|
-
task.load(:name=>'cake')
|
17
|
+
task.prefix_options = { :workspace_id => id }
|
18
|
+
task.load( :name => 'cake' )
|
19
19
|
|
20
20
|
assert_equal id, task.workspace_id
|
21
21
|
end
|
@@ -26,12 +26,12 @@ class LiquidPlannerResourceTest < Test::Unit::TestCase
|
|
26
26
|
workspace_id = 9
|
27
27
|
comment_text = "hello"
|
28
28
|
|
29
|
-
task = LiquidPlanner::Resources::Task.new(:workspace_id=>workspace_id, :id=>task_id, :name=>'new task')
|
30
|
-
comment = task.build_comment(:comment=>comment_text)
|
29
|
+
task = LiquidPlanner::Resources::Task.new( :workspace_id => workspace_id, :id => task_id, :name => 'new task' )
|
30
|
+
comment = task.build_comment( :comment => { :comment => comment_text } )
|
31
31
|
assert_equal LiquidPlanner::Resources::Comment, comment.class
|
32
32
|
|
33
33
|
assert_equal task_id, comment.prefix_options[:item_id]
|
34
34
|
assert_equal workspace_id, comment.prefix_options[:workspace_id]
|
35
35
|
assert_equal comment_text, comment.comment
|
36
36
|
end
|
37
|
-
end
|
37
|
+
end
|
data/test/workspace_test.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
require 'mocha'
|
3
2
|
require File.dirname(__FILE__) + '/../lib/liquidplanner'
|
4
3
|
|
5
4
|
# Very Basic tests around the workspace resource to ensure that it generates proper calls to ActiveResource.
|
@@ -8,24 +7,33 @@ class WorkspaceTest < Test::Unit::TestCase
|
|
8
7
|
@email = 'testing@example.com'
|
9
8
|
@password = 'password'
|
10
9
|
@lp = LiquidPlanner::Base.new(:email=>@email, :password=>@password)
|
10
|
+
|
11
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
12
|
+
headers = {
|
13
|
+
"Authorization" => "Basic dGVzdGluZ0BleGFtcGxlLmNvbTpwYXNzd29yZA==",
|
14
|
+
"accept-encoding" => "gzip",
|
15
|
+
"Accept" => "application/json"
|
16
|
+
}
|
17
|
+
|
18
|
+
space = { :workspace => { :name => "Space" } }
|
19
|
+
|
20
|
+
mock.get "/api/workspaces.json", headers, [ space ].to_json
|
21
|
+
mock.get "/api/workspaces/17.json", headers, space.to_json
|
22
|
+
end
|
11
23
|
end
|
12
24
|
|
13
25
|
def test_showing_workspace
|
14
26
|
id = 17
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@lp.workspaces(id)
|
27
|
+
|
28
|
+
space = @lp.workspaces(id)
|
29
|
+
|
30
|
+
assert_equal "Space", space.name
|
21
31
|
end
|
22
32
|
|
23
33
|
def test_listing_workspaces
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
@lp.workspaces
|
34
|
+
spaces = @lp.workspaces
|
35
|
+
|
36
|
+
assert_equal 1, spaces.length
|
37
|
+
assert_equal "Space", spaces.first.name
|
30
38
|
end
|
31
|
-
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liquidplanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.6
|
5
4
|
prerelease:
|
5
|
+
version: 0.0.7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Brett Bender
|
@@ -12,12 +12,21 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2014-06-09 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
|
-
|
19
|
-
|
18
|
+
type: :runtime
|
19
|
+
prerelease: false
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 3.0.0
|
25
|
+
- - ! '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 3.0.0
|
20
28
|
none: false
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
21
30
|
requirements:
|
22
31
|
- - ~>
|
23
32
|
- !ruby/object:Gem::Version
|
@@ -25,13 +34,21 @@ dependencies:
|
|
25
34
|
- - ! '>='
|
26
35
|
- !ruby/object:Gem::Version
|
27
36
|
version: 3.0.0
|
37
|
+
none: false
|
38
|
+
name: activeresource
|
39
|
+
- !ruby/object:Gem::Dependency
|
28
40
|
type: :runtime
|
29
41
|
prerelease: false
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 3.0.0
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 3.0.0
|
34
50
|
none: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
35
52
|
requirements:
|
36
53
|
- - ~>
|
37
54
|
- !ruby/object:Gem::Version
|
@@ -39,13 +56,12 @@ dependencies:
|
|
39
56
|
- - ! '>='
|
40
57
|
- !ruby/object:Gem::Version
|
41
58
|
version: 3.0.0
|
59
|
+
none: false
|
60
|
+
name: activesupport
|
61
|
+
- !ruby/object:Gem::Dependency
|
42
62
|
type: :runtime
|
43
63
|
prerelease: false
|
44
|
-
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: multipart-post
|
47
|
-
requirement: &54245620 !ruby/object:Gem::Requirement
|
48
|
-
none: false
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
49
65
|
requirements:
|
50
66
|
- - ~>
|
51
67
|
- !ruby/object:Gem::Version
|
@@ -53,31 +69,33 @@ dependencies:
|
|
53
69
|
- - ! '>='
|
54
70
|
- !ruby/object:Gem::Version
|
55
71
|
version: 1.0.1
|
56
|
-
type: :runtime
|
57
|
-
prerelease: false
|
58
|
-
version_requirements: *54245620
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: highline
|
61
|
-
requirement: &54244900 !ruby/object:Gem::Requirement
|
62
72
|
none: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
74
|
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.1
|
64
78
|
- - ! '>='
|
65
79
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
80
|
+
version: 1.0.1
|
81
|
+
none: false
|
82
|
+
name: multipart-post
|
83
|
+
- !ruby/object:Gem::Dependency
|
67
84
|
type: :development
|
68
85
|
prerelease: false
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '1.5'
|
73
91
|
none: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
93
|
requirements:
|
75
|
-
- -
|
94
|
+
- - ! '>='
|
76
95
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
|
79
|
-
|
80
|
-
version_requirements: *54244380
|
96
|
+
version: '1.5'
|
97
|
+
none: false
|
98
|
+
name: highline
|
81
99
|
description: LiquidPlanner API client
|
82
100
|
email:
|
83
101
|
- api@liquidplanner.com
|
@@ -96,6 +114,7 @@ files:
|
|
96
114
|
- lib/liquidplanner/resources/root.rb
|
97
115
|
- lib/liquidplanner/resources/member.rb
|
98
116
|
- lib/liquidplanner/resources/inbox.rb
|
117
|
+
- lib/liquidplanner/resources/timesheet_entry.rb
|
99
118
|
- lib/liquidplanner/resources/container.rb
|
100
119
|
- lib/liquidplanner/resources/folder.rb
|
101
120
|
- lib/liquidplanner/resources/custom_field_values.rb
|
@@ -141,20 +160,20 @@ rdoc_options: []
|
|
141
160
|
require_paths:
|
142
161
|
- lib
|
143
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
-
none: false
|
145
163
|
requirements:
|
146
164
|
- - ! '>='
|
147
165
|
- !ruby/object:Gem::Version
|
148
166
|
version: '0'
|
149
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
167
|
none: false
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
169
|
requirements:
|
152
170
|
- - ! '>='
|
153
171
|
- !ruby/object:Gem::Version
|
154
172
|
version: '0'
|
173
|
+
none: false
|
155
174
|
requirements: []
|
156
175
|
rubyforge_project:
|
157
|
-
rubygems_version: 1.8.
|
176
|
+
rubygems_version: 1.8.23
|
158
177
|
signing_key:
|
159
178
|
specification_version: 3
|
160
179
|
summary: LiquidPlanner API client
|