Class: Brainspace::Article

Inherits:
Object
  • Object
show all
Defined in:
lib/brainspace/article.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Article

Returns a new instance of Article.



5
6
7
# File 'lib/brainspace/article.rb', line 5

def initialize(attributes)
  @mash = attributes
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_sym, *arguments, &block) ⇒ Object



9
10
11
# File 'lib/brainspace/article.rb', line 9

def method_missing(method_sym, *arguments, &block)
  @mash.send(method_sym, *arguments)
end

Class Method Details

.discover(query) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/brainspace/article.rb', line 13

def self.discover(query)
  response = Faraday.get("#{Brainspace.config.host}/discovery/concept", apikey: Brainspace.apikey, query: query)
  result = JSON.parse(response.body)
  articles = Hashie::Mash.new(result).data.map {|d| d.articles.first.merge(source: d.id) }
  articles.map { |article| Brainspace::Article.new(article) }
rescue
  []
end

Instance Method Details

#as_json(opts) ⇒ Object



26
27
28
# File 'lib/brainspace/article.rb', line 26

def as_json(opts)
  @mash.as_json(opts)
end

#to_json(opts) ⇒ Object



22
23
24
# File 'lib/brainspace/article.rb', line 22

def to_json(opts)
  @mash.to_json(opts)
end