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 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