contextio 1.2.1 → 1.2.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.
data/CHANGES.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changes
2
2
 
3
+ ## 1.2.2
4
+
5
+ * Fix `PUT` and `POST` parameter submission. - Ben Hamill
6
+ * Added missing `server` argument to `SourceCollection.create`. - Dominik Gehl
7
+ * Moved erroneous `File.sync_data` and `File.sync!` over to `Source` where it
8
+ belonged in the first place. - Bram Plessers
9
+
10
+ ## 1.2.1
11
+
12
+ * Fixed syntax error typo in previous release. - Geoff Longman
13
+
3
14
  ## 1.2.0
4
15
 
5
16
  * Add `#empty?` and `#size` to resource collections so you can treat them even
data/lib/contextio/api.rb CHANGED
@@ -89,9 +89,8 @@ class ContextIO
89
89
  #
90
90
  # @raise [API::Error] if the response code isn't in the 200 or 300 range.
91
91
  def request(method, resource_path, params = {})
92
- response = token.send(method, path(resource_path, params), 'Accept' => 'application/json', 'User-Agent' => user_agent_string)
92
+ response = oauth_request(method, resource_path, params)
93
93
  body = response.body
94
-
95
94
  results = JSON.parse(body) unless response.body.empty?
96
95
 
97
96
  if response.code =~ /[45]\d\d/
@@ -108,7 +107,7 @@ class ContextIO
108
107
  end
109
108
 
110
109
  def raw_request(method, resource_path, params={})
111
- response = token.send(method, path(resource_path, params), 'User-Agent' => user_agent_string)
110
+ response = oauth_request(method, resource_path, params, 'User-Agent' => user_agent_string)
112
111
 
113
112
  if response.code =~ /[45]\d\d/
114
113
  raise API::Error, response.message
@@ -119,6 +118,25 @@ class ContextIO
119
118
 
120
119
  private
121
120
 
121
+ # Makes a request signed for OAuth, encoding parameters correctly, etc.
122
+ #
123
+ # @param [String, Symbol] method The HTTP verb for the request (lower case).
124
+ # @param [String] resource_path The path to the resource in question.
125
+ # @param [{String, Symbol => String, Symbol, Array<String, Symbol>}] params
126
+ # A Hash of the query parameters for the action represented by this
127
+ # request.
128
+ #
129
+ # @return [Net::HTTP*] The response object from the request.
130
+ def oauth_request(method, resource_path, params, headers=nil)
131
+ headers ||= { 'Accept' => 'application/json', 'User-Agent' => user_agent_string }
132
+
133
+ if %w(put post).include? method.to_s.downcase
134
+ token.request(method, path(resource_path), params, headers)
135
+ else # GET, DELETE, HEAD, etc.
136
+ token.request(method, path(resource_path, params), headers)
137
+ end
138
+ end
139
+
122
140
  # So that we can accept full URLs, this strips the domain and version number
123
141
  # out and returns just the resource path.
124
142
  #
@@ -75,18 +75,5 @@ class ContextIO
75
75
  return @revisions
76
76
  end
77
77
 
78
- def sync_data
79
- return @sync_data if @sync_data
80
-
81
- sync_hashes = api.request(:get, "#{resource_url}/sync")
82
-
83
- @sync_data = ContextIO::SourceSyncData.new(sync_hashes)
84
-
85
- return @sync_data
86
- end
87
-
88
- def sync!
89
- api.request(:post, "#{resource_url}/sync")['success']
90
- end
91
78
  end
92
79
  end
@@ -51,5 +51,19 @@ class ContextIO
51
51
  def delete
52
52
  api.request(:delete, resource_url)['success']
53
53
  end
54
+
55
+ def sync_data
56
+ return @sync_data if @sync_data
57
+
58
+ sync_hashes = api.request(:get, "#{resource_url}/sync")
59
+
60
+ @sync_data = ContextIO::SourceSyncData.new(sync_hashes)
61
+
62
+ return @sync_data
63
+ end
64
+
65
+ def sync!
66
+ api.request(:post, "#{resource_url}/sync")['success']
67
+ end
54
68
  end
55
69
  end
@@ -25,6 +25,7 @@ class ContextIO
25
25
  def create(email, server, username, use_ssl, port, type, options={})
26
26
  api_args = options.merge(
27
27
  'email' => email,
28
+ 'server' => server,
28
29
  'username' => username,
29
30
  'use_ssl' => use_ssl ? '1' : '0',
30
31
  'port' => port.to_s,
@@ -1,6 +1,6 @@
1
1
  class ContextIO
2
2
  # @private
3
- VERSION = "1.2.1"
3
+ VERSION = "1.2.2"
4
4
 
5
5
  # The gem version.
6
6
  #
@@ -49,4 +49,21 @@ describe ContextIO::Source do
49
49
  subject.update(sync_period: '4h')
50
50
  end
51
51
  end
52
+
53
+ describe ".sync!" do
54
+ before do
55
+ api.stub(:request).and_return({'success' => true})
56
+ end
57
+
58
+ subject { ContextIO::Source.new(api, resource_url: 'resource_url', sync_period: '1h') }
59
+
60
+ it "syncs to the api" do
61
+ api.should_receive(:request).with(
62
+ :post,
63
+ 'resource_url/sync'
64
+ )
65
+
66
+ subject.sync!
67
+ end
68
+ end
52
69
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contextio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-14 00:00:00.000000000 Z
12
+ date: 2013-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oauth