facebook-cli 1.4.15 → 1.5.0

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fbcli.rb +32 -2
  3. data/lib/fbcli/version.rb +1 -1
  4. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8b27d241e4fc8f53ea0148f5506ab4c7548d7f0
4
- data.tar.gz: 15249f89d1a9feed9ba6e4c14c70fb1742c926f6
3
+ metadata.gz: e47520322957827ab66194802d5fe1fd313ab10f
4
+ data.tar.gz: c63975e1c13c770185dbabaa0ccb2378279f4eab
5
5
  SHA512:
6
- metadata.gz: 835ef2849eb37b4c4c5869bbc31248be910ccf812d30000887defd9d9f98256378dbedf39d12d6311636756cd58f254a3d5d1716f127aff348a6d6ac5a4fe824
7
- data.tar.gz: 95c1dea98a1e7811c55f2dcdfd6f6673aead703a233fdb0654cdb28c7c0bbdd815bf1a826a538963fd2aa974533f50867f6297c40e24a132387dcdc01aca609d
6
+ metadata.gz: 4b623e4152455148443b38be3559741abb35a1bea9dd96af0dc91f3b7ce3a96642bc64c25a53b6b3b39fd9c4dc1fa6121477f3c53488be84c3a4dae515340ed8
7
+ data.tar.gz: 02c77fff8f919e8ab1b00acdb0c2fefeb5f6f17f3057691aa2030670b3d549950ffd59af2b09aa6483f6ed6f3e5fd34d189e5871f5b08a98657bc5898f4befb3
data/lib/fbcli.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'gli'
2
2
  require 'yaml'
3
3
  require 'json'
4
+ require 'jsonpath'
4
5
  require 'fbcli/auth'
5
6
  require 'fbcli/version'
6
7
  require 'fbcli/facebook'
@@ -164,13 +165,42 @@ long_desc %(
164
165
 
165
166
  #{APP_NAME} api "165795193558366?metadata=1"
166
167
 
167
- Some valid requests may not be honored due to insufficient permissions, which were established during the authentication process.
168
+ Moreover, you can extract a value from the response using --get. For example:
169
+
170
+ #{APP_NAME} api --get name 165795193558366
171
+
172
+ Use JsonPath language to retrieve nested values. For example:
173
+
174
+ #{APP_NAME} api --get "metadata.fields..name" "165795193558366?metadata=1"
175
+
176
+ Some valid requests may not be honored or return incomplete results due to
177
+ insufficient permissions, which were established during the authentication
178
+ process.
168
179
  )
169
180
  command :api do |c|
181
+ c.flag [:get], :desc => "Extract a particular value from the JSON response"
170
182
  c.switch [:raw], :desc => 'Output unformatted JSON', :negatable => false
171
183
  c.action do |global_options, options, args|
172
184
  res = FBCLI::raw_request args[0]
173
- res = JSON.pretty_generate res unless options['raw']
185
+
186
+ # Extract value(s) using JsonPath
187
+ if options['get']
188
+ path = JsonPath.new("$.#{options['get']}")
189
+ res = path.on(res)
190
+
191
+ # If the result is a JSON structure, unwrap it
192
+ if res[0].class == Hash
193
+ res = res[0]
194
+ end
195
+ end
196
+
197
+ # Nicely format JSON result if not --raw
198
+ unless options['raw']
199
+ if res.class == Hash
200
+ res = JSON.pretty_generate res
201
+ end
202
+ end
203
+
174
204
  puts res
175
205
  end
176
206
  end
data/lib/fbcli/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FBCLI
2
- VERSION = '1.4.15'
2
+ VERSION = '1.5.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebook-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.15
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ildar Sagdejev
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jsonpath
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.5'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: gli
43
57
  requirement: !ruby/object:Gem::Requirement