ahub 0.4.0 → 0.5.0
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 +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
|
[](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
|