hover-ruby-client 0.3.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b2391e2c552304bb49a600e8dbf0f7ee54272a31865359458b8861bc2b80220e
4
+ data.tar.gz: 7ab4b5bed3b7821610f8ed33dcc7b5f4339905b341cb297decb1c0fa0a7228d8
5
+ SHA512:
6
+ metadata.gz: fc76225239a7852cfa94c5943acf6063862ba2f4c0fad7735b22670fcf12c12a69fc6247048ab6152e73ea266cddcaa5cd07431006c0abd7b442d7919062d744
7
+ data.tar.gz: a920d7ee18a50b88e9a4c6373e6411b7ca1ad4056a1447d189446414384c262701cd7c38aaf2ff31d061a8268af8e1c5fb39525fc42ab3af9ac3c4f9671f973a
@@ -0,0 +1,30 @@
1
+ on: [push]
2
+
3
+ name: Tests
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - name: Install libraries
11
+ run: |
12
+ sudo apt-get update
13
+ sudo apt-get install -y sqlite3 libsqlite3-dev
14
+
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v1
17
+
18
+ - name: Set up Ruby 2.6
19
+ uses: ruby/setup-ruby@master
20
+ with:
21
+ ruby-version: 2.6.6
22
+
23
+ - name: Install Ruby gems
24
+ run: |
25
+ gem install bundler
26
+ bundle install --jobs 4 --retry 3
27
+
28
+ - name: Run tests
29
+ run: |
30
+ bundle exec rake test
@@ -0,0 +1,64 @@
1
+
2
+ test/reports
3
+ reports
4
+ /.bundle
5
+ .bundle
6
+
7
+ /db/*.sqlite3
8
+ /db/*.sqlite3-journal
9
+ *.sqlite3
10
+
11
+ # Ignore all logfiles and tempfiles.
12
+ /log/*.log
13
+ /tmp
14
+ tmp/
15
+
16
+ .DS_Store
17
+ subl.sublime-project
18
+ storage/
19
+ storage
20
+ .idea/
21
+ database.yml
22
+ structure.sql
23
+ api_keys.yml
24
+ public/assets/
25
+ coverage/
26
+ *.sublime-workspace
27
+ node_modules
28
+ test-results.xml
29
+
30
+ config/deploy/jenkins.rb
31
+ doc/
32
+ .yardoc/
33
+ .vagrant/
34
+ *.box
35
+
36
+ # VIM Files
37
+ *.swp
38
+ *.swo
39
+
40
+
41
+ InstalledFiles
42
+ _yardoc
43
+ coverage
44
+ doc/
45
+ lib/bundler/man
46
+ pkg
47
+ rdoc
48
+ spec/reports
49
+ test/tmp
50
+ test/version_tmp
51
+ tmp
52
+ *.swp
53
+ *.swo
54
+ test/*.sqlite3
55
+ test/reports/
56
+ .DS_Store
57
+ coverage/
58
+
59
+ *.gem
60
+ *.rbc
61
+ .bundle
62
+ .config
63
+ .yardoc
64
+ .tool-versions
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,161 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ hover-ruby-client (0.3.1)
5
+ api-auth (= 1.2.2)
6
+ json
7
+ rails (~> 5.2.3)
8
+ rubyzip (>= 0.9.9)
9
+ yajl-ruby (~> 1.4.1)
10
+
11
+ GEM
12
+ remote: https://rubygems.org/
13
+ specs:
14
+ actioncable (5.2.4.2)
15
+ actionpack (= 5.2.4.2)
16
+ nio4r (~> 2.0)
17
+ websocket-driver (>= 0.6.1)
18
+ actionmailer (5.2.4.2)
19
+ actionpack (= 5.2.4.2)
20
+ actionview (= 5.2.4.2)
21
+ activejob (= 5.2.4.2)
22
+ mail (~> 2.5, >= 2.5.4)
23
+ rails-dom-testing (~> 2.0)
24
+ actionpack (5.2.4.2)
25
+ actionview (= 5.2.4.2)
26
+ activesupport (= 5.2.4.2)
27
+ rack (~> 2.0, >= 2.0.8)
28
+ rack-test (>= 0.6.3)
29
+ rails-dom-testing (~> 2.0)
30
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
31
+ actionview (5.2.4.2)
32
+ activesupport (= 5.2.4.2)
33
+ builder (~> 3.1)
34
+ erubi (~> 1.4)
35
+ rails-dom-testing (~> 2.0)
36
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
37
+ activejob (5.2.4.2)
38
+ activesupport (= 5.2.4.2)
39
+ globalid (>= 0.3.6)
40
+ activemodel (5.2.4.2)
41
+ activesupport (= 5.2.4.2)
42
+ activerecord (5.2.4.2)
43
+ activemodel (= 5.2.4.2)
44
+ activesupport (= 5.2.4.2)
45
+ arel (>= 9.0)
46
+ activestorage (5.2.4.2)
47
+ actionpack (= 5.2.4.2)
48
+ activerecord (= 5.2.4.2)
49
+ marcel (~> 0.3.1)
50
+ activesupport (5.2.4.2)
51
+ concurrent-ruby (~> 1.0, >= 1.0.2)
52
+ i18n (>= 0.7, < 2)
53
+ minitest (~> 5.1)
54
+ tzinfo (~> 1.1)
55
+ ansi (1.5.0)
56
+ api-auth (1.2.2)
57
+ arel (9.0.0)
58
+ builder (3.2.4)
59
+ byebug (11.1.1)
60
+ ci_reporter (2.0.0)
61
+ builder (>= 2.1.2)
62
+ concurrent-ruby (1.1.6)
63
+ crass (1.0.6)
64
+ docile (1.3.2)
65
+ erubi (1.9.0)
66
+ globalid (0.4.2)
67
+ activesupport (>= 4.2.0)
68
+ i18n (1.8.2)
69
+ concurrent-ruby (~> 1.0)
70
+ json (2.3.0)
71
+ loofah (2.5.0)
72
+ crass (~> 1.0.2)
73
+ nokogiri (>= 1.5.9)
74
+ mail (2.7.1)
75
+ mini_mime (>= 0.1.1)
76
+ marcel (0.3.3)
77
+ mimemagic (~> 0.3.2)
78
+ method_source (1.0.0)
79
+ mimemagic (0.3.4)
80
+ mini_mime (1.0.2)
81
+ mini_portile2 (2.4.0)
82
+ minitest (5.11.3)
83
+ minitest-reporters (1.4.2)
84
+ ansi
85
+ builder
86
+ minitest (>= 5.0)
87
+ ruby-progressbar
88
+ mocha (1.11.2)
89
+ nio4r (2.5.2)
90
+ nokogiri (1.10.9)
91
+ mini_portile2 (~> 2.4.0)
92
+ rack (2.2.2)
93
+ rack-test (1.1.0)
94
+ rack (>= 1.0, < 3)
95
+ rails (5.2.4.2)
96
+ actioncable (= 5.2.4.2)
97
+ actionmailer (= 5.2.4.2)
98
+ actionpack (= 5.2.4.2)
99
+ actionview (= 5.2.4.2)
100
+ activejob (= 5.2.4.2)
101
+ activemodel (= 5.2.4.2)
102
+ activerecord (= 5.2.4.2)
103
+ activestorage (= 5.2.4.2)
104
+ activesupport (= 5.2.4.2)
105
+ bundler (>= 1.3.0)
106
+ railties (= 5.2.4.2)
107
+ sprockets-rails (>= 2.0.0)
108
+ rails-dom-testing (2.0.3)
109
+ activesupport (>= 4.2.0)
110
+ nokogiri (>= 1.6)
111
+ rails-html-sanitizer (1.3.0)
112
+ loofah (~> 2.3)
113
+ railties (5.2.4.2)
114
+ actionpack (= 5.2.4.2)
115
+ activesupport (= 5.2.4.2)
116
+ method_source
117
+ rake (>= 0.8.7)
118
+ thor (>= 0.19.0, < 2.0)
119
+ rake (13.0.1)
120
+ ruby-progressbar (1.10.1)
121
+ rubyzip (2.3.0)
122
+ simplecov (0.18.5)
123
+ docile (~> 1.1)
124
+ simplecov-html (~> 0.11)
125
+ simplecov-html (0.12.2)
126
+ simplecov-rcov (0.2.3)
127
+ simplecov (>= 0.4.1)
128
+ sprockets (4.0.0)
129
+ concurrent-ruby (~> 1.0)
130
+ rack (> 1, < 3)
131
+ sprockets-rails (3.2.1)
132
+ actionpack (>= 4.0)
133
+ activesupport (>= 4.0)
134
+ sprockets (>= 3.0.0)
135
+ sqlite3 (1.4.2)
136
+ thor (1.0.1)
137
+ thread_safe (0.3.6)
138
+ tzinfo (1.2.7)
139
+ thread_safe (~> 0.1)
140
+ websocket-driver (0.7.1)
141
+ websocket-extensions (>= 0.1.0)
142
+ websocket-extensions (0.1.4)
143
+ yajl-ruby (1.4.1)
144
+
145
+ PLATFORMS
146
+ ruby
147
+
148
+ DEPENDENCIES
149
+ bundler
150
+ byebug
151
+ ci_reporter
152
+ hover-ruby-client!
153
+ minitest
154
+ minitest-reporters
155
+ mocha
156
+ rake
157
+ simplecov-rcov
158
+ sqlite3
159
+
160
+ BUNDLED WITH
161
+ 2.1.4
@@ -0,0 +1,50 @@
1
+ ## Examples
2
+
3
+ ### Midas
4
+
5
+ ```ruby
6
+ require 'hover/client/midas'
7
+
8
+ client = Hover::Client::Midas.new('access_id', 'secret_key', 'https://staging-midas.hover.to')
9
+
10
+ order = client.json_post('orders.json', {'order[address]' => '945 Bryant St, Suite 300, San Francisco, CA', 'order[advanced]' => false})
11
+ order = client.json_get("orders/#{order['id']}.json")
12
+ ```
13
+
14
+ ### Manowar
15
+
16
+ ```ruby
17
+ require 'hover/client/manowar'
18
+
19
+ client = Hover::Client::Manowar.new('access_id', 'secret_key', 'https://staging-manownar.hover.to')
20
+
21
+ order = client.json_get("orders/2.json")
22
+ ```
23
+
24
+ ### Static
25
+
26
+ ```ruby
27
+ require 'hover/client/static'
28
+
29
+ client = Hover::Client::Static.new('access_id', 'secret_key', 'https://staging-static.hover.to')
30
+
31
+ metric_name = 'order.state.time.modeling'
32
+ value = (60 * 40) # 40 minutes in seconds
33
+ happened_at = order_state_transition.created_at
34
+ tags = {
35
+ resource_type: 'human',
36
+ waiting: false,
37
+ order_id: order.id,
38
+ order_practice: order.practice?,
39
+ order_midas_identifier: order.midas_identifier,
40
+ user_email: order_state_transition.trigger_user.email
41
+ }
42
+
43
+ client.create_metric(metric_name, value, happened_at, tags)
44
+ ```
45
+
46
+ ### Importer
47
+
48
+ ### Streaming JSON Encoder
49
+
50
+ ### Streaming JSON Decoder
@@ -0,0 +1,14 @@
1
+ require "bundler/gem_tasks"
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake/testtask'
5
+ desc 'Run tests'
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << 'lib'
8
+ t.libs << 'test'
9
+ t.pattern = 'test/**/*_test.rb'
10
+ t.verbose = false
11
+ end
12
+
13
+ desc 'Default: run all available test suites'
14
+ task :default => :test
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+
6
+ require "hover/version"
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = "hover-ruby-client"
10
+ spec.version = Hover::VERSION
11
+ spec.authors = ["Elise Wood"]
12
+ spec.email = ["elise@hover.to"]
13
+ spec.summary = %q{Hover ruby client}
14
+ spec.description = %q{Hover ruby client}
15
+ spec.homepage = "https://github.com/hoverinc/hover-ruby-client"
16
+ spec.license = "Private"
17
+
18
+ spec.files = `git ls-files -z`.split("\x0")
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "minitest"
26
+ spec.add_development_dependency "mocha"
27
+ spec.add_development_dependency "ci_reporter"
28
+ spec.add_development_dependency "minitest-reporters"
29
+ spec.add_development_dependency "simplecov-rcov"
30
+ spec.add_development_dependency "sqlite3"
31
+ spec.add_development_dependency "byebug"
32
+
33
+ spec.add_dependency "api-auth", "1.2.2"
34
+ spec.add_dependency "json"
35
+ spec.add_dependency "rubyzip", ">= 0.9.9"
36
+ spec.add_dependency "rails", "~> 5.2.3"
37
+ spec.add_dependency "yajl-ruby", "~> 1.4.1"
38
+ end
@@ -0,0 +1,18 @@
1
+ require 'hover/client/http'
2
+
3
+ module Hover
4
+ module Client
5
+ class BasicAuth < Hover::Client::HTTP
6
+ attr_accessor :username, :password
7
+
8
+ def initialize(username, password)
9
+ self.username = username
10
+ self.password = password
11
+ end
12
+
13
+ def authenticate(request)
14
+ request.basic_auth(username, password)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,20 @@
1
+ require 'hover/client/http'
2
+
3
+ module Hover
4
+ module Client
5
+ class HMAC < Hover::Client::HTTP
6
+ attr_accessor :client_id, :client_secret
7
+
8
+ def initialize(client_id, client_secret, site = 'http://localhost:3000', prefix = 'api/v1')
9
+ super(site, prefix)
10
+
11
+ self.client_id = client_id
12
+ self.client_secret = client_secret
13
+ end
14
+
15
+ def authenticate(request)
16
+ ApiAuth.sign!(request, client_id, client_secret)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,29 @@
1
+ require 'hover/client/hmac'
2
+
3
+ module Hover
4
+ module Client
5
+ class Hover < Hover::Client::HMAC
6
+
7
+ def json_get(*args)
8
+ parse_response(get(*args))
9
+ end
10
+
11
+ def json_put(*args)
12
+ parse_response(put(*args))
13
+ end
14
+
15
+ def json_post(*args)
16
+ parse_response(post(*args))
17
+ end
18
+
19
+ def json_patch(*args)
20
+ parse_response(patch(*args))
21
+ end
22
+
23
+ def json_delete(*args)
24
+ parse_response(delete(*args))
25
+ end
26
+
27
+ end
28
+ end
29
+ end