knackhq-client 0.1.0 → 0.1.1

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.
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: