ugc 0.9.2 → 0.9.3

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.
@@ -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: []