ahub 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/ahub.gemspec +1 -0
- data/lib/ahub/modules/api_resource.rb +4 -4
- data/lib/ahub/question.rb +25 -7
- data/lib/ahub/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb2033d1b70bae22fe4c05580220150eb6424e54
|
4
|
+
data.tar.gz: f06464dfcea2dacb4f2a1c0c4a5f563eaac7d73b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d2d1d44527c8bc0963f5811b7ee02b809a03f8d583a8f3f6485ea30a0a05a5bf893e5e2ccbee03a7af55ce19a2668692fe2cefa2f9a7125d58a8bc360687c34
|
7
|
+
data.tar.gz: d476428c5dfbedea1f10eced600a4c9a670a19031ad0d4660967b863c9c7bd79bf538e72888958d991965437cc93ce4263bc10036f73977a2e7aa6bd3f597a14
|
data/README.md
CHANGED
@@ -4,6 +4,12 @@ A gem to interact with the [Answer Hub API](docs.answerhubapiv2.apiary.io)
|
|
4
4
|
Master
|
5
5
|
[![Build Status](https://travis-ci.org/abelmartin/ahub.svg?branch=master)](https://travis-ci.org/abelmartin/ahub)
|
6
6
|
|
7
|
+
## Warning :warning:
|
8
|
+
|
9
|
+
Ahub follows [Semantic Version](http://semver.org/). Though gem will pivot as I see fit :smiling_imp:, I'll ensure to bump the major version for breaking changes. At the moment, however, Ahub is best used for data management tasks (like importing [questions](http://docs.answerhubapiv2.apiary.io/#reference/question)/[answers](http://docs.answerhubapiv2.apiary.io/#reference/answer)/[topics](http://docs.answerhubapiv2.apiary.io/#reference/topic)/[users](http://docs.answerhubapiv2.apiary.io/#reference/user)) & exploration of the data ([groups](http://docs.answerhubapiv2.apiary.io/#reference/group)/[spaces](http://docs.answerhubapiv2.apiary.io/#reference/space)) in your environment.
|
10
|
+
|
11
|
+
In otherwords, please wait until I remove this warning message before rolling it into your production stack. :sweat_smile:
|
12
|
+
|
7
13
|
## Installation
|
8
14
|
|
9
15
|
Add this line to your application's Gemfile:
|
data/ahub.gemspec
CHANGED
@@ -27,5 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.10"
|
28
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
29
29
|
spec.add_development_dependency "rspec", "~> 3.3"
|
30
|
+
spec.add_development_dependency "ffaker", "~> 1.24"
|
30
31
|
spec.add_development_dependency "pry-byebug", "~> 3.2"
|
31
32
|
end
|
@@ -28,7 +28,7 @@ module Ahub
|
|
28
28
|
end
|
29
29
|
|
30
30
|
class_methods do
|
31
|
-
def headers(username
|
31
|
+
def headers(username:, password:)
|
32
32
|
encoded = "Basic #{::Base64.strict_encode64("#{username}:#{password}")}"
|
33
33
|
|
34
34
|
{
|
@@ -70,11 +70,11 @@ module Ahub
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def get_resource(url:, headers:)
|
73
|
-
JSON.parse(RestClient.get(url,
|
73
|
+
JSON.parse(RestClient.get(url, headers), symbolize_names:true)
|
74
74
|
end
|
75
75
|
|
76
76
|
def get_resources(url:, headers:, klass:)
|
77
|
-
JSON.parse(RestClient.get(url,
|
77
|
+
JSON.parse(RestClient.get(url, headers), symbolize_names:true)[:list].map do |node|
|
78
78
|
klass.new(node)
|
79
79
|
end
|
80
80
|
end
|
@@ -87,4 +87,4 @@ module Ahub
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
end
|
90
|
-
end
|
90
|
+
end
|
data/lib/ahub/question.rb
CHANGED
@@ -13,25 +13,43 @@ module Ahub
|
|
13
13
|
create_resource(url: url, payload: payload, headers: user_headers)
|
14
14
|
end
|
15
15
|
|
16
|
+
def self.is_question(query:)
|
17
|
+
get_resource(url: "#{base_url}/isQuestion.json?q=#{URI.encode(query)}", headers: admin_headers)[:result]
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.find_all_by_text(query:)
|
21
|
+
get_resources(url: "#{base_url}.json?q=#{URI.encode(query)}", headers: admin_headers, klass: Ahub::Question)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.find_by_title(query:)
|
25
|
+
find_all_by_text(query: query).find{|question| question.title == query}
|
26
|
+
end
|
27
|
+
|
16
28
|
attr_accessor :title, :body, :body_as_html
|
17
29
|
|
30
|
+
def initialize(attrs)
|
31
|
+
super
|
32
|
+
@author = Ahub::User.new(attrs[:author]) if attrs[:author]
|
33
|
+
end
|
34
|
+
|
35
|
+
def fetched_answers
|
36
|
+
@fetched_answers || @answers.map{|answer_id| Ahub::Answer.find(answer_id)}
|
37
|
+
end
|
38
|
+
|
18
39
|
def user
|
19
40
|
@author
|
20
41
|
end
|
21
42
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
25
|
-
move_url = "#{self.class.base_url}/#{id}/move.json?space=#{space_id}"
|
26
|
-
RestClient.put("#{url}", self.class.admin_headers)
|
43
|
+
def html_url
|
44
|
+
"#{self.class.base_url}/#{id}/#{slug}.html" if id
|
27
45
|
end
|
28
46
|
|
29
|
-
def
|
47
|
+
def json_url
|
30
48
|
"#{self.class.base_url}/#{id}.json" if id
|
31
49
|
end
|
32
50
|
|
33
51
|
def to_s
|
34
|
-
|
52
|
+
html_url
|
35
53
|
end
|
36
54
|
end
|
37
55
|
end
|
data/lib/ahub/version.rb
CHANGED
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.
|
4
|
+
version: 0.5.0
|
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-11-
|
11
|
+
date: 2015-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '3.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: ffaker
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.24'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.24'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: pry-byebug
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|