tickspot-rb 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Y2I2NDRmNTFmMGMzNTM0MDViMDQ4NzY2YTdiMjc0MDBhYjk2NjUyNQ==
5
+ data.tar.gz: !binary |-
6
+ ZTQ3NzI0MWZhZTljNWU0MTI2ZTJkOTUyMzAxYjY2MjkwYjRkM2M5YQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NDRhZDVlMTRmNzYxMTdlZDA3YWJmMWJlZGQ3NTk4MTA4MjIzOGVhNDU3ZWE0
10
+ NGE1YjhkNDQ1NGM3NDljMzE4NjQzMzViNGI1Mzg5YzIxMjZhY2I1OTRjYzQ2
11
+ MjIxZTA4NGMyYmViYjkwYzQ2YmUwYzRmODc4ODdjZGRlMWI0ZTM=
12
+ data.tar.gz: !binary |-
13
+ OGQ0N2I3YmM1MDBkNWE2MDc3MDJjYWE4M2NhM2NjZTIxNTA5NTZhZDYxY2Uy
14
+ Yjg1MTc4YWJhNTIwNjAwODZkMzI2MDdhNzJlMDY5NGU2N2UwNmI0ZThkNWNl
15
+ ODcyZjEwOTQ1NTk1ZjEzYjM1Y2U5NDc5ZTFmZGQxMDliMjRiM2I=
data/README.md CHANGED
@@ -1,16 +1,22 @@
1
1
  # Tickspot-rb
2
2
 
3
+ [![Code Climate](https://codeclimate.com/github/cmason/tickspot-rb.png)](https://codeclimate.com/github/cmason/tickspot-rb)
4
+
3
5
  Ruby wrapper for the [Tick API](http://www.tickspot.com/api/).
4
6
 
5
7
  ## Installation
6
8
 
7
9
  $ gem install tickspot-rb
8
10
 
11
+ ## Bundler
12
+
13
+ gem "tickspot-rb", :require => 'tickspot'
14
+
9
15
  ## Example Usage
10
16
 
11
17
  require 'tickspot'
12
-
13
- tick = Tickspot::Client.new('myCompanyName', 'myemail@example.com', 'myTickPassword')
18
+
19
+ tick = Tickspot::Client.new('myCompanyName', 'myemail@example.com', 'myTickPassword')
14
20
  tick.clients
15
21
 
16
22
  => [{"id"=>123, "name"=>"Acme"}, {"id"=>231, "name"=>"Sterling Cooper"}, {"id"=>321, "name"=>"Justice League"}]
@@ -23,7 +29,7 @@ You can also initialize the client with a configuration block:
23
29
  config.email = 'wilie@acme.com'
24
30
  config.password = 'secret'
25
31
  end
26
-
32
+
27
33
  # elsewhere
28
34
  client = Tickspot::Client.new
29
35
 
@@ -11,22 +11,21 @@ module Tickspot
11
11
  @company = company
12
12
  @email = email
13
13
  @password = password
14
-
14
+
15
15
  self.class.base_uri "https://#{@company}.tickspot.com/api"
16
16
  end
17
- # The clients method will return a list of all clients
17
+ # The clients method will return a list of all clients
18
18
  # and can only be accessed by admins on the subscription.
19
19
  #
20
20
  # Optional paramaters:
21
21
  # open => [true|false]
22
22
  #
23
23
  def clients(options = {})
24
- options.merge!(:email => @email, :password => @password)
25
- self.class.post("/clients", :query => options)["clients"].map {|obj| Hashie::Mash.new obj }
24
+ post("/clients", options)["clients"].map {|obj| Hashie::Mash.new obj }
26
25
  end
27
-
28
- # The projects method will return projects filtered by the parameters provided.
29
- # Admin can see all projects on the subscription,
26
+
27
+ # The projects method will return projects filtered by the parameters provided.
28
+ # Admin can see all projects on the subscription,
30
29
  # while non-admins can only access the projects they are assigned.
31
30
  #
32
31
  # Optional parameters:
@@ -35,11 +34,10 @@ module Tickspot
35
34
  # project_billable [true|false]
36
35
  #
37
36
  def projects(options = {})
38
- options.merge!(:email => @email, :password => @password)
39
- self.class.post("/projects", :query => options)["projects"].map {|obj| Hashie::Mash.new obj }
37
+ post("/projects", options)["projects"].map {|obj| Hashie::Mash.new obj }
40
38
  end
41
39
 
42
- # The tasks method will return a list of all the current tasks for a specified project
40
+ # The tasks method will return a list of all the current tasks for a specified project
43
41
  # and can only be accessed by admins on the subscription.
44
42
  #
45
43
  # Required parameters:
@@ -51,27 +49,26 @@ module Tickspot
51
49
  # task_billable [true|false]
52
50
  #
53
51
  def tasks(options = {})
54
- options.merge!(:email => @email, :password => @password)
55
- self.class.post("/tasks", :query => options)["tasks"].map {|obj| Hashie::Mash.new obj }
52
+ post("/tasks", options)["tasks"].map {|obj| Hashie::Mash.new obj }
56
53
  end
57
-
58
- # The method will return a list of all clients, projects, and tasks
54
+
55
+ # The method will return a list of all clients, projects, and tasks
59
56
  # that are assigned to the user and available for time entries (open).
60
57
  #
61
58
  def clients_projects_tasks
62
- self.class.post("/clients_projects_tasks", :query => {:email => @email, :password => @password})["clients"].map {|obj| Hashie::Mash.new obj }
63
- end
64
-
65
- # The entries method will return a list of all entries that meet the provided criteria.
66
- # Either a start and end date have to be provided or an updated_at time.
67
- # The entries will be in the start and end date range or they will be after
68
- # the updated_at time depending on what criteria is provided.
69
- # Each of the optional parameters will further filter the response.
59
+ post("/clients_projects_tasks")["clients"].map {|obj| Hashie::Mash.new obj }
60
+ end
61
+
62
+ # The entries method will return a list of all entries that meet the provided criteria.
63
+ # Either a start and end date have to be provided or an updated_at time.
64
+ # The entries will be in the start and end date range or they will be after
65
+ # the updated_at time depending on what criteria is provided.
66
+ # Each of the optional parameters will further filter the response.
70
67
  #
71
68
  # Required parameters:
72
69
  # start_date
73
- # end_date
74
- # OR
70
+ # end_date
71
+ # OR
75
72
  # updated_at
76
73
  #
77
74
  # Optional Parameters:
@@ -84,28 +81,26 @@ module Tickspot
84
81
  # billed [true|false]
85
82
  #
86
83
  def entries(options = {})
87
- options.merge!(:email => @email, :password => @password)
88
- self.class.post("/entries", :query => options)["entries"].map {|obj| Hashie::Mash.new obj }
84
+ post("/entries", options)["entries"].map {|obj| Hashie::Mash.new obj }
89
85
  end
90
-
91
- # The users method will return a list of the most recently used tasks.
86
+
87
+ # The users method will return a list of the most recently used tasks.
92
88
  # This is useful for generating quick links for a user to select a task they have been using recently.
93
89
  #
94
90
  def recent_tasks
95
- self.class.post("/recent_tasks", :query => {:email => @email, :password => @password})['recent_tasks'].map {|obj| Hashie::Mash.new obj }
91
+ post("/recent_tasks")['recent_tasks'].map {|obj| Hashie::Mash.new obj }
96
92
  end
97
-
93
+
98
94
  # The users method will return a list of users.
99
95
  #
100
96
  # Optional parameters:
101
97
  # project_id
102
98
  #
103
99
  def users(options = {})
104
- options.merge!(:email => @email, :password => @password)
105
- self.class.post("/users", :query => options)['users'].map {|obj| Hashie::Mash.new obj }
100
+ post("/users", options)['users'].map {|obj| Hashie::Mash.new obj }
106
101
  end
107
-
108
- # The create_entry method will accept a time entry for a specified task_id
102
+
103
+ # The create_entry method will accept a time entry for a specified task_id
109
104
  # and return the created entry along with the task and project stats.
110
105
  #
111
106
  # Require parameters:
@@ -117,14 +112,13 @@ module Tickspot
117
112
  # notes
118
113
  #
119
114
  def create_entry(options = {})
120
- options.merge!(:email => @email, :password => @password)
121
- self.class.post("/create_entry", :query => options)
115
+ post("/create_entry", options)
122
116
  end
123
-
124
- # The update_entry method will allow you to modify attributes of an existing entry.
125
- # The only required parameter is the id of the entry.
126
- # Additional parameters must be provided for any attribute that you wish to update.
127
- # For example, if you are only changing the billed attribute,
117
+
118
+ # The update_entry method will allow you to modify attributes of an existing entry.
119
+ # The only required parameter is the id of the entry.
120
+ # Additional parameters must be provided for any attribute that you wish to update.
121
+ # For example, if you are only changing the billed attribute,
128
122
  # your post should only include the required parameters and the billed parameter.
129
123
  #
130
124
  # Require parameters:
@@ -139,8 +133,12 @@ module Tickspot
139
133
  # notes
140
134
  #
141
135
  def update_entry(options = {})
142
- options.merge!(:email => @email, :password => @password)
143
- self.class.post("/update_entry", :query => options)
136
+ post("/update_entry", options)
137
+ end
138
+
139
+ private
140
+ def post(path, options={})
141
+ self.class.post(path, :query => options.merge!(:email => @email, :password => @password))
144
142
  end
145
143
  end
146
144
  end
@@ -1,3 +1,3 @@
1
1
  module Tickspot
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,82 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tickspot-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Chris Mason
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-03-30 00:00:00.000000000 Z
11
+ date: 2013-03-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: hashie
16
- requirement: &70120337962020 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70120337962020
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: httparty
27
- requirement: &70120337961280 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ! '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70120337961280
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rake
38
- requirement: &70120337960600 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ! '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70120337960600
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: rspec
49
- requirement: &70120337959840 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *70120337959840
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: simplecov
60
- requirement: &70120337959380 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
73
  - - ! '>='
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *70120337959380
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: webmock
71
- requirement: &70120337958600 !ruby/object:Gem::Requirement
72
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
73
86
  requirements:
74
87
  - - ! '>='
75
88
  - !ruby/object:Gem::Version
76
89
  version: '0'
77
90
  type: :development
78
91
  prerelease: false
79
- version_requirements: *70120337958600
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
80
97
  description: Ruby wrapper for the Tick API http://tickspot.com/api
81
98
  email:
82
99
  - chris@chaione.com
@@ -104,27 +121,26 @@ files:
104
121
  - tickspot-rb.gemspec
105
122
  homepage: https://github.com/cmason/tickspot-rb
106
123
  licenses: []
124
+ metadata: {}
107
125
  post_install_message:
108
126
  rdoc_options: []
109
127
  require_paths:
110
128
  - lib
111
129
  required_ruby_version: !ruby/object:Gem::Requirement
112
- none: false
113
130
  requirements:
114
131
  - - ! '>='
115
132
  - !ruby/object:Gem::Version
116
133
  version: '0'
117
134
  required_rubygems_version: !ruby/object:Gem::Requirement
118
- none: false
119
135
  requirements:
120
136
  - - ! '>='
121
137
  - !ruby/object:Gem::Version
122
138
  version: '0'
123
139
  requirements: []
124
140
  rubyforge_project: tickspot-rb
125
- rubygems_version: 1.8.17
141
+ rubygems_version: 2.0.0
126
142
  signing_key:
127
- specification_version: 3
143
+ specification_version: 4
128
144
  summary: Ruby wrapper for the Tick API http://tickspot.com/api
129
145
  test_files:
130
146
  - spec/client_spec.rb
@@ -135,3 +151,4 @@ test_files:
135
151
  - spec/fixtures/users.xml
136
152
  - spec/spec_helper.rb
137
153
  - spec/tickspot_spec.rb
154
+ has_rdoc: