ugc 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 72d7b2c5c9b42a1e198c8bd6828a1c86822f8dbc
4
+ data.tar.gz: f866ba7a2730d4bc129b0e8490075ac90e80cdfa
5
+ SHA512:
6
+ metadata.gz: c7492d652e1d709685c282a087b6b950a6c21b1e670db2f70145b5fb04a4e281bf6d4d843e4e13dc2436a7a5396dd438420b68e1eb9eaf6bd69abaab3390375f
7
+ data.tar.gz: 38e564db8b05ac4a97dbafc4d376393626b01d3663ca02e7cda8b5db5049dd81ae51e4455720415df50933e7ab53d5390ebb890a7162e495602304d895e2291b
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ugc (0.9.2)
4
+ ugc (0.9.3)
5
5
  command_line_reporter
6
6
  gli (= 2.5.0)
7
7
  highline
@@ -30,10 +30,10 @@ GEM
30
30
  gherkin (2.11.5)
31
31
  json (>= 1.4.6)
32
32
  gli (2.5.0)
33
- highline (1.6.15)
33
+ highline (1.6.16)
34
34
  json (1.7.6)
35
- mime-types (1.19)
36
- multi_json (1.5.0)
35
+ mime-types (1.21)
36
+ multi_json (1.7.2)
37
37
  rake (10.0.3)
38
38
  rdoc (3.12)
39
39
  json (~> 1.4)
@@ -41,7 +41,7 @@ GEM
41
41
  mime-types (>= 1.16)
42
42
  rspec-expectations (2.12.1)
43
43
  diff-lcs (~> 1.1.3)
44
- usergrid_iron (0.0.9)
44
+ usergrid_iron (0.9.0)
45
45
  multi_json
46
46
  rest-client
47
47
 
data/README.md CHANGED
@@ -14,6 +14,7 @@ ugc enables convenient terminal access to Apigee's App Services (aka Usergrid).
14
14
  * Ruby evaluation within data elements
15
15
  * Can optionally emits raw output (--verbose switch)
16
16
  * Extended SQL syntax (adds 'from' and 'limit' clauses to standard Usergrid syntax)
17
+ * File upload (-f or --file option) on PUT and POST
17
18
 
18
19
  ## Installation
19
20
 
@@ -152,6 +153,10 @@ Note synonym commands:
152
153
  created 1357344269759
153
154
  modified 1357344537483
154
155
  breed Mixed
156
+
157
+ If you have more than ten dogs, it might be easier to target your specific dog when you update it:
158
+
159
+ ```ugc update dogs/79dfb563-56cb-11e2-a6b8-14109fd49581 '{ "breed" : "Mixed" }'```
155
160
 
156
161
  #### show off our latest dogs
157
162
 
@@ -172,6 +177,11 @@ If you specify column names in your query, you will be unable to reference the r
172
177
 
173
178
  ## Release notes
174
179
 
180
+ ### 0.9.3
181
+ * New features
182
+ 1. file upload function with -f (--file) switch
183
+ * eg. `$ ugc post something "property1Name: 'property1Value'" --file property2Name=/path/to/myfile`
184
+
175
185
  ### 0.9.2
176
186
  * New features
177
187
  1. access management functions with -m (--management) global switch
data/bin/ugc CHANGED
@@ -69,7 +69,11 @@ end
69
69
  on_error do |e|
70
70
  # return false to skip default error handling
71
71
  if e.is_a? RestClient::Exception
72
- puts e.response.data['error_description']
72
+ begin
73
+ puts e.response.data['error_description']
74
+ rescue MultiJson::DecodeError
75
+ puts e.response
76
+ end
73
77
  false
74
78
  else
75
79
  true
@@ -2,12 +2,19 @@ desc 'non-idempotent create or update (usually create)'
2
2
  arg_name 'url [data]'
3
3
 
4
4
  command :post,:create do |c|
5
- c.flag [:d,:data]
5
+ c.flag [:d,:data], :desc => 'does nothing: for ease of conversion from curl'
6
+ c.flag [:f,:file], :must_match => /.*=.*/, :arg_name => 'field_name=file_name', :desc => 'will force multipart upload'
6
7
 
7
8
  c.action do |global_options,options,args|
8
9
  help_now! unless args[0]
9
10
 
10
- format_response $context[args[0]].post parse_data(options[:data] || args[1])
11
+ resource = $context[args[0]]
12
+ payload = parse_data(options[:data] || args[1])
13
+ if options[:file]
14
+ format_response multipart_upload resource, payload, options[:file]
15
+ else
16
+ format_response resource.post payload
17
+ end
11
18
  end
12
19
 
13
20
  end
@@ -2,12 +2,19 @@ desc 'idempotent create or update (usually an update)'
2
2
  arg_name 'url [data]'
3
3
 
4
4
  command :put,:update do |c|
5
- c.flag [:d,:data]
5
+ c.flag [:d,:data], :desc => 'does nothing: for ease of conversion from curl'
6
+ c.flag [:f,:file], :must_match => /=/, :arg_name => 'field_name=file_name', :desc => 'will force multipart upload'
6
7
 
7
8
  c.action do |global_options,options,args|
8
9
  help_now! unless args[0]
9
10
 
10
- format_response $context[args[0]].put parse_data(options[:data] || args[1])
11
+ resource = $context[args[0]]
12
+ payload = parse_data(options[:data] || args[1])
13
+ if options[:file]
14
+ format_response multipart_upload resource, payload, options[:file], :put
15
+ else
16
+ format_response resource.put payload
17
+ end
11
18
  end
12
19
 
13
20
  end
@@ -0,0 +1,17 @@
1
+ def multipart_upload(resource, payload, file, method=:post, additional_headers = {})
2
+ payload = payload.is_a?(Hash) ? payload : MultiJson.load(payload)
3
+ filename = 'file'
4
+ filename, file = file.split '=' if file.is_a?(String)
5
+ file = file[1..-1] if file.start_with? '@' # be kind to curl users
6
+ payload[filename] = file.is_a?(File) ? file : File.new(file, 'rb')
7
+ payload[:multipart] = true
8
+ headers = (resource.options[:headers] || {}).merge(additional_headers)
9
+ response = RestClient::Request.execute(resource.options.merge(
10
+ :method => method,
11
+ :url => resource.url,
12
+ :payload => payload,
13
+ :headers => headers))
14
+ resource.instance_variable_set :@response, response
15
+ response.resource = resource
16
+ response
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Ugc
2
- VERSION = '0.9.2'
2
+ VERSION = '0.9.3'
3
3
  end
metadata CHANGED
@@ -1,68 +1,60 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ugc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
5
- prerelease:
4
+ version: 0.9.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Scott Ganyo
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-11 00:00:00.000000000 Z
11
+ date: 2013-03-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rdoc
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: aruba
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: gli
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - '='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - '='
76
67
  - !ruby/object:Gem::Version
@@ -78,49 +69,43 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: usergrid_iron
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: 0.0.9
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: 0.0.9
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: highline
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: command_line_reporter
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  description:
@@ -156,6 +141,7 @@ files:
156
141
  - lib/ugc/helpers/format.rb
157
142
  - lib/ugc/helpers/history.rb
158
143
  - lib/ugc/helpers/parse.rb
144
+ - lib/ugc/helpers/rest.rb
159
145
  - lib/ugc/management.rb
160
146
  - lib/ugc/settings.rb
161
147
  - lib/ugc/version.rb
@@ -165,6 +151,7 @@ files:
165
151
  - ugc.rdoc
166
152
  homepage: http://ganyo.com
167
153
  licenses: []
154
+ metadata: {}
168
155
  post_install_message:
169
156
  rdoc_options:
170
157
  - --title
@@ -176,27 +163,19 @@ require_paths:
176
163
  - lib
177
164
  - lib
178
165
  required_ruby_version: !ruby/object:Gem::Requirement
179
- none: false
180
166
  requirements:
181
- - - ! '>='
167
+ - - '>='
182
168
  - !ruby/object:Gem::Version
183
169
  version: '0'
184
- segments:
185
- - 0
186
- hash: -2746687193506333932
187
170
  required_rubygems_version: !ruby/object:Gem::Requirement
188
- none: false
189
171
  requirements:
190
- - - ! '>='
172
+ - - '>='
191
173
  - !ruby/object:Gem::Version
192
174
  version: '0'
193
- segments:
194
- - 0
195
- hash: -2746687193506333932
196
175
  requirements: []
197
176
  rubyforge_project:
198
- rubygems_version: 1.8.24
177
+ rubygems_version: 2.0.3
199
178
  signing_key:
200
- specification_version: 3
179
+ specification_version: 4
201
180
  summary: Usergrid Command Line
202
181
  test_files: []