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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f15ac34fc04f78ba2a17031596dfb90dccbbf567
4
- data.tar.gz: 98c3444ab17ff20dd792105d1aa8ed58f8b7b1f7
3
+ metadata.gz: fb2033d1b70bae22fe4c05580220150eb6424e54
4
+ data.tar.gz: f06464dfcea2dacb4f2a1c0c4a5f563eaac7d73b
5
5
  SHA512:
6
- metadata.gz: c3be66373cb10dfeaf82b7adb93387bd174beb8b2a61ff225d58b3d0b854386719641e98d7ca35510141b6ccab95b9f9c0571b5166347a2ef1953ae9a44d981f
7
- data.tar.gz: 3762549149f4338b191ad195ff39ac736329482b70b4194ca8e6a4be0fefdc61231a126321c32898542811292e4a1330f05461140a32870a86f35f2f432b2352
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:'answerhub', password:'answerhub')
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, admin_headers), symbolize_names:true)
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, admin_headers), symbolize_names:true)[:list].map do |node|
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 move(space_id:)
23
- raise Exception("No Question Id") unless id
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 url
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
- url
52
+ html_url
35
53
  end
36
54
  end
37
55
  end
data/lib/ahub/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ahub
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  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.4.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-14 00:00:00.000000000 Z
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