ahub 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env_example +4 -0
- data/.gitignore +1 -1
- data/README.md +6 -0
- data/ahub.gemspec +1 -0
- data/lib/ahub/answer.rb +11 -11
- data/lib/ahub/modules/api_helpers.rb +5 -1
- data/lib/ahub/question.rb +20 -0
- data/lib/ahub/user.rb +20 -10
- data/lib/ahub/version.rb +1 -1
- data/lib/ahub.rb +13 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1199769f6a7e1fb2ab32dd7ce2264a2c8ffcea5d
|
4
|
+
data.tar.gz: 8ee41bb02b0f74642837b356b92e46bbf4497b71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95d65c938c31b9af559b64c8ec60b49ebd911c6e85d06057b00d897048eb86701d5ba74c44f704bf7a2dab22856f3e55e45b55aa940596029a1103a2d43b05da
|
7
|
+
data.tar.gz: 8f8fc405a53089a8638b2bd132471879cbc06f04a4cb3168b0bb8a7d5cd044cda0a35e220ccae23c39bd6648bdb7c05dd09a74994cfa9e4c4072c6d1a7523866
|
data/.env_example
ADDED
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -19,6 +19,12 @@ Or install it yourself as:
|
|
19
19
|
|
20
20
|
## Usage
|
21
21
|
|
22
|
+
By default, this gem will use the answer hub default connection credentials (answerhub/answerhub). You can override defaults by setting content in [a .env file like the example](https://github.com/abelmartin/ahub/blob/master/.env_example) and reference it like this for example:
|
23
|
+
|
24
|
+
```bash
|
25
|
+
AHUB_ENV_FILE=~/workspace/.ahub_env irb
|
26
|
+
```
|
27
|
+
|
22
28
|
## Development
|
23
29
|
|
24
30
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/ahub.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_runtime_dependency "rest-client", "~> 1.8"
|
24
24
|
spec.add_runtime_dependency "humanize", "~> 1.1"
|
25
|
+
spec.add_runtime_dependency "dotenv", "~> 2.0"
|
25
26
|
|
26
27
|
spec.add_development_dependency "bundler", "~> 1.10"
|
27
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/lib/ahub/answer.rb
CHANGED
@@ -5,23 +5,23 @@ require 'ahub/modules/api_helpers'
|
|
5
5
|
module Ahub
|
6
6
|
class Answer
|
7
7
|
extend Ahub::APIHelpers
|
8
|
-
def self.find(id)
|
9
|
-
end
|
10
8
|
|
11
|
-
def self.create(question_id:, body:)
|
12
|
-
data = {
|
13
|
-
|
14
|
-
}
|
9
|
+
def self.create(question_id:, body:, username:, password:)
|
10
|
+
data = {body: body}
|
11
|
+
|
12
|
+
url = "#{Ahub::DOMAIN}/services/v2/question/#{question_id}/answer.json"
|
15
13
|
|
16
|
-
|
14
|
+
auth_headers = headers(username: username, password: password)
|
17
15
|
|
18
|
-
|
16
|
+
OpenStruct.new(
|
17
|
+
JSON.parse(
|
18
|
+
RestClient.post(url, data.to_json, auth_headers),
|
19
|
+
symbolize_names: true
|
20
|
+
)
|
21
|
+
)
|
19
22
|
rescue => e
|
20
23
|
{error: e.message}
|
21
24
|
end
|
22
25
|
|
23
|
-
def self.get_all_by_question(question_id:)
|
24
|
-
|
25
|
-
end
|
26
26
|
end
|
27
27
|
end
|
@@ -4,11 +4,15 @@ module Ahub
|
|
4
4
|
def headers(username:'answerhub', password:'answerhub')
|
5
5
|
encoded = "Basic #{::Base64.strict_encode64("#{username}:#{password}")}"
|
6
6
|
|
7
|
-
|
7
|
+
{
|
8
8
|
'Authorization' => encoded,
|
9
9
|
'Accept' => "application/json",
|
10
10
|
'Content-type' => "application/json",
|
11
11
|
}
|
12
12
|
end
|
13
|
+
|
14
|
+
def admin_headers
|
15
|
+
headers(username: Ahub::ADMIN_USER, password: Ahub::ADMIN_PASS)
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'pry-byebug'
|
3
|
+
require 'ahub/modules/api_helpers'
|
4
|
+
|
5
|
+
module Ahub
|
6
|
+
class Question
|
7
|
+
extend Ahub::APIHelpers
|
8
|
+
|
9
|
+
def self.find(id=nil)
|
10
|
+
url = "#{Ahub::DOMAIN}/services/v2/question"
|
11
|
+
url +="/#{id}" if id
|
12
|
+
url +='.json'
|
13
|
+
|
14
|
+
OpenStruct.new(JSON.parse(RestClient.get(url, admin_headers), symbolize_names:true))
|
15
|
+
rescue => e
|
16
|
+
{error: e.message}
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
data/lib/ahub/user.rb
CHANGED
@@ -7,29 +7,39 @@ require 'ahub/modules/api_helpers'
|
|
7
7
|
module Ahub
|
8
8
|
class User
|
9
9
|
extend Ahub::APIHelpers
|
10
|
-
def self.find(id)
|
11
|
-
url = "
|
12
|
-
|
10
|
+
def self.find(id=nil)
|
11
|
+
url = "#{Ahub::DOMAIN}/services/v2/user"
|
12
|
+
url += "/#{id}" if id
|
13
|
+
url += '.json'
|
14
|
+
OpenStruct.new(JSON.parse(RestClient.get(url, admin_headers), symbolize_names:true))
|
13
15
|
rescue => e
|
14
16
|
{error: e.message}
|
15
17
|
end
|
16
18
|
|
17
|
-
def self.
|
18
|
-
url = "
|
19
|
-
number = '%03d' % index
|
20
|
-
username = "#{prefix}#{number}"
|
19
|
+
def self.create(username:, email:, password:)
|
20
|
+
url = "#{Ahub::DOMAIN}/services/v2/user"
|
21
21
|
data = {
|
22
|
-
email:
|
22
|
+
email: email,
|
23
23
|
username: username,
|
24
|
-
password:
|
24
|
+
password: password,
|
25
25
|
}
|
26
26
|
|
27
|
-
|
27
|
+
response = RestClient.post(url, data.to_json, admin_headers)
|
28
28
|
{error: nil, newUserURL: response.headers[:location]}
|
29
29
|
rescue => e
|
30
30
|
{error: e.message}
|
31
31
|
end
|
32
32
|
|
33
|
+
def self.create_test_user(prefix: 'ahuser', index: 0)
|
34
|
+
number = '%03d' % index
|
35
|
+
username = "#{prefix}#{number}"
|
36
|
+
create(
|
37
|
+
email: "#{username}@example.com",
|
38
|
+
username: username,
|
39
|
+
password: Ahub::DEFAULT_PASSWORD,
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
33
43
|
def self.create_user_csv(prefix: 'ahuser', count: 10)
|
34
44
|
::CSV.open('./users.csv', 'w') do |csv|
|
35
45
|
(0..count).each do |n|
|
data/lib/ahub/version.rb
CHANGED
data/lib/ahub.rb
CHANGED
@@ -1,8 +1,21 @@
|
|
1
1
|
require "ahub/version"
|
2
2
|
require "ahub/user"
|
3
|
+
require "ahub/question"
|
3
4
|
require "ahub/answer"
|
5
|
+
require 'dotenv'
|
4
6
|
|
5
7
|
module Ahub
|
8
|
+
#Load the .env file from the default location...
|
9
|
+
Dotenv.load
|
10
|
+
|
11
|
+
#or a location passed in.
|
12
|
+
Dotenv.load ENV['AHUB_ENV_FILE'] if ENV['AHUB_ENV_FILE']
|
13
|
+
|
14
|
+
DOMAIN = ENV['AHUB_DOMIAN'] || 'http://localhost:8888'
|
15
|
+
DEFAULT_PASSWORD = ENV['AHUB_DEFAULT_PASSWORD'] || 'password'
|
16
|
+
ADMIN_USER = ENV['AHUB_ADMIN_USER'] || 'answerhub'
|
17
|
+
ADMIN_PASS = ENV['AHUB_ADMIN_PASS'] || 'answerhub'
|
18
|
+
|
6
19
|
def self.fire
|
7
20
|
"Nailed it!"
|
8
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ahub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abel Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: dotenv
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,6 +117,7 @@ executables:
|
|
103
117
|
extensions: []
|
104
118
|
extra_rdoc_files: []
|
105
119
|
files:
|
120
|
+
- ".env_example"
|
106
121
|
- ".gitignore"
|
107
122
|
- ".rspec"
|
108
123
|
- ".travis.yml"
|
@@ -118,6 +133,7 @@ files:
|
|
118
133
|
- lib/ahub.rb
|
119
134
|
- lib/ahub/answer.rb
|
120
135
|
- lib/ahub/modules/api_helpers.rb
|
136
|
+
- lib/ahub/question.rb
|
121
137
|
- lib/ahub/user.rb
|
122
138
|
- lib/ahub/version.rb
|
123
139
|
homepage: https://github.com/abelmartin/ahub
|