knackhq-client 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb73a625e3e61bfc57e2bc26626bc395a766f8ef
4
- data.tar.gz: 3a22ab9bf2374deb31cff019b4019e6427c0f65a
3
+ metadata.gz: 94825773af2c61878dc4ba69bb6447e920e195d4
4
+ data.tar.gz: ef3535920cc26652c8dbaf265ae32470cf828399
5
5
  SHA512:
6
- metadata.gz: 4555f157245b024e570191eedd4ea99d7db48280d4a63d1e5b254848f7fdadceaf1da88716b8931a9504c0c98b309367f10a09ae968f8a87f1351ab7c0340404
7
- data.tar.gz: 92532b355e882ace85b8e5d75839abf47ed3d0e1fe7e8a2b32290378d8e9bd19f738b0e9a29ca80fe10b05f5f6fd31b955f89ad9e81a6b8cd3cf9a91b81fae72
6
+ metadata.gz: 74f117f2e7ad9376d0f77f86598ee12d13aa60992192fc914ddb99fd99ddafd4c79f88577bb32fe271809058fe5c8254716f1a50939bdfa25e7b306466454972
7
+ data.tar.gz: d81ee0e01c641a2991599957ec98fc8982a2fc938e01122241f4d28edeff800ab268712e377005407832f3d6fdf265692518f39a8c0cb2a308805e298987e506
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -0,0 +1,82 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ knackhq-client (0.1.1)
5
+ blanket_wrapper (~> 1.1.0)
6
+ hashie
7
+ rest-client
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ addressable (2.3.7)
13
+ blanket_wrapper (1.1.0)
14
+ httparty
15
+ recursive-open-struct
16
+ codeclimate-test-reporter (0.4.7)
17
+ simplecov (>= 0.7.1, < 1.0.0)
18
+ crack (0.4.2)
19
+ safe_yaml (~> 1.0.0)
20
+ diff-lcs (1.2.5)
21
+ docile (1.1.5)
22
+ domain_name (0.5.23)
23
+ unf (>= 0.0.5, < 1.0.0)
24
+ hashie (3.4.1)
25
+ http-cookie (1.0.2)
26
+ domain_name (~> 0.5)
27
+ httparty (0.13.3)
28
+ json (~> 1.8)
29
+ multi_xml (>= 0.5.2)
30
+ json (1.8.2)
31
+ mime-types (2.4.3)
32
+ multi_json (1.11.0)
33
+ multi_xml (0.5.5)
34
+ netrc (0.10.3)
35
+ rake (10.4.2)
36
+ recursive-open-struct (0.6.1)
37
+ rest-client (1.8.0)
38
+ http-cookie (>= 1.0.2, < 2.0)
39
+ mime-types (>= 1.16, < 3.0)
40
+ netrc (~> 0.7)
41
+ rspec (3.2.0)
42
+ rspec-core (~> 3.2.0)
43
+ rspec-expectations (~> 3.2.0)
44
+ rspec-mocks (~> 3.2.0)
45
+ rspec-core (3.2.1)
46
+ rspec-support (~> 3.2.0)
47
+ rspec-expectations (3.2.0)
48
+ diff-lcs (>= 1.2.0, < 2.0)
49
+ rspec-support (~> 3.2.0)
50
+ rspec-its (1.2.0)
51
+ rspec-core (>= 3.0.0)
52
+ rspec-expectations (>= 3.0.0)
53
+ rspec-mocks (3.2.1)
54
+ diff-lcs (>= 1.2.0, < 2.0)
55
+ rspec-support (~> 3.2.0)
56
+ rspec-support (3.2.2)
57
+ safe_yaml (1.0.4)
58
+ simplecov (0.9.2)
59
+ docile (~> 1.1.0)
60
+ multi_json (~> 1.0)
61
+ simplecov-html (~> 0.9.0)
62
+ simplecov-html (0.9.0)
63
+ unf (0.1.4)
64
+ unf_ext
65
+ unf_ext (0.0.6)
66
+ vcr (2.9.3)
67
+ webmock (1.20.4)
68
+ addressable (>= 2.3.6)
69
+ crack (>= 0.3.2)
70
+
71
+ PLATFORMS
72
+ ruby
73
+
74
+ DEPENDENCIES
75
+ bundler (~> 1.7)
76
+ codeclimate-test-reporter
77
+ knackhq-client!
78
+ rake (~> 10.0)
79
+ rspec (~> 3.2.0)
80
+ rspec-its (~> 1.2.0)
81
+ vcr (~> 2.9.0)
82
+ webmock (~> 1.20.0)
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Knackhq::Client
2
-
2
+ [![Gem Version](https://badge.fury.io/rb/knackhq-client.svg)](http://badge.fury.io/rb/knackhq-client) [![Build Status](https://travis-ci.org/westernmilling/knackhq-client.svg?branch=master)](https://travis-ci.org/westernmilling/knackhq-client) [![Dependency Status](https://gemnasium.com/westernmilling/knackhq-client.svg)](https://gemnasium.com/westernmilling/knackhq-client) [![Code Climate](https://codeclimate.com/github/westernmilling/knackhq-client/badges/gpa.svg)](https://codeclimate.com/github/westernmilling/knackhq-client)
3
3
  ## Installation
4
4
 
5
5
  Add this line to your application's Gemfile:
@@ -24,11 +24,28 @@ api = Knackhq::Client.new('knack-api-url',
24
24
  x_knack_rest_api_key)
25
25
  #GETs the request.
26
26
  api.request.get
27
+
27
28
  #GET all objects in api.
28
- api.all_objects
29
+ api.objects
30
+
31
+ #GET object_1 fields
32
+ api.fields('object_1')
33
+
34
+ #GET object_1 records
35
+ api.records('object_1')
36
+
37
+ #GET object_1 records by page
38
+ api.records_by_page('object_1')
39
+
40
+ #Get object_1 info on records
41
+ api.records_info('object_1')
42
+
29
43
  #GET object_1
30
44
  api.object('object_1')
31
45
 
46
+ #PUT object_1 record
47
+ #Knackhq ID is 12345
48
+ api.update_record('object_1', '12345', { field_name: value }.to_json)
32
49
  ```
33
50
 
34
51
  ## Contributing
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'rest-client'
25
25
  spec.add_dependency 'hashie'
26
26
  spec.add_development_dependency 'bundler', '~> 1.7'
27
+ spec.add_development_dependency 'codeclimate-test-reporter'
27
28
  spec.add_development_dependency 'rake', '~> 10.0'
28
29
  spec.add_development_dependency 'rspec', '~> 3.2.0'
29
30
  spec.add_development_dependency 'rspec-its', '~> 1.2.0'
@@ -13,49 +13,67 @@ module Knackhq
13
13
  end
14
14
 
15
15
  def objects
16
- hash_request = request.objects.get.to_h[:objects]
17
- hash_request.map { |hash| symbolize_hash_keys(hash) }
16
+ hash_request = request
17
+ .objects
18
+ .get
19
+ .to_h[:objects]
20
+ return [] if hash_request.empty?
21
+ symbolize_hash_keys!(hash_request)
18
22
  end
19
23
 
20
24
  def object(key)
21
25
  hash_request = request.objects.get(key).to_h
22
26
  return [] if hash_request.empty?
23
27
  transform_hash_keys = hash_request[:object]['fields']
24
-
25
- transform_hash_keys.map { |hash| symbolize_hash_keys(hash) }
28
+ symbolize_hash_keys!(transform_hash_keys)
26
29
  end
27
30
 
28
31
  def fields(object)
29
- hash_request = request.objects(object).fields.get.to_h
32
+ hash_request = request_object(object, :fields)
30
33
  return [] if hash_request.empty?
31
34
  transform_hash_keys = hash_request[:fields]
32
- transform_hash_keys.map { |hash| symbolize_hash_keys(hash) }
35
+ symbolize_hash_keys!(transform_hash_keys)
33
36
  end
34
37
 
35
38
  def records(object)
36
- hash_request = request.objects(object).records.get.to_h
39
+ hash_request = request_object(object, :records)
37
40
  return [] if hash_request.empty?
38
41
  transform_hash_keys = hash_request[:records]
39
- transform_hash_keys.map { |hash| symbolize_hash_keys(hash) }
42
+ symbolize_hash_keys!(transform_hash_keys)
40
43
  end
41
44
 
42
45
  def records_by_page(object, page_number)
43
- hash_request = request.objects(object).records
46
+ hash_request = request
47
+ .objects(object)
48
+ .records
44
49
  .get(:params => { :page => page_number,
45
- :rows_per_page => 500 }).to_h
50
+ :rows_per_page => 500 })
51
+ .to_h
46
52
  return [] if hash_request.empty?
47
53
  transform_hash_keys = hash_request[:records]
48
- transform_hash_keys.map { |hash| symbolize_hash_keys(hash) }
54
+ symbolize_hash_keys!(transform_hash_keys)
49
55
  end
50
56
 
51
57
  def records_info(object)
52
- hash_request = request.objects(object).records
53
- .get(:params => { :rows_per_page => 500 }).to_h
58
+ hash_request = request
59
+ .objects(object)
60
+ .records
61
+ .get(:params => { :rows_per_page => 500 })
62
+ .to_h
54
63
  return [] if hash_request.empty?
55
64
  hash_request.delete(:records)
56
65
  [hash_request]
57
66
  end
58
67
 
68
+ def update_record(object, knackhq_id, json)
69
+ hash_request = request
70
+ .objects(object)
71
+ .records(knackhq_id)
72
+ .put(:body => json)
73
+ .to_h
74
+ !hash_request.empty?
75
+ end
76
+
59
77
  private
60
78
 
61
79
  def request
@@ -66,8 +84,14 @@ module Knackhq
66
84
  :headers => headers)
67
85
  end
68
86
 
69
- def symbolize_hash_keys(value)
70
- Hashie.symbolize_keys!(value)
87
+ def request_object(object, function)
88
+ request.objects(object).send(function).get.to_h
89
+ end
90
+
91
+ def symbolize_hash_keys!(transform_hash_keys)
92
+ transform_hash_keys.map do |hash|
93
+ Hashie.symbolize_keys!(hash)
94
+ end
71
95
  end
72
96
  end
73
97
  end
@@ -1,5 +1,5 @@
1
1
  module Knackhq
2
2
  class Client
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knackhq-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MichaelAChrisco
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-03-27 00:00:00.000000000 Z
11
+ date: 2015-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blanket_wrapper
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: codeclimate-test-reporter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
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: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -149,6 +163,7 @@ files:
149
163
  - ".travis.yml"
150
164
  - CODE_OF_CONDUCT.md
151
165
  - Gemfile
166
+ - Gemfile.lock
152
167
  - LICENSE.txt
153
168
  - README.md
154
169
  - Rakefile
@@ -177,9 +192,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
192
  version: '0'
178
193
  requirements: []
179
194
  rubyforge_project:
180
- rubygems_version: 2.4.3
195
+ rubygems_version: 2.4.6
181
196
  signing_key:
182
197
  specification_version: 4
183
198
  summary: Knackhq.com API client
184
199
  test_files: []
185
- has_rdoc: