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



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
# 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) }
end

Instance Method Details

#as_json(opts) ⇒ Object



24
25
26
# File 'lib/brainspace/article.rb', line 24

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

#to_json(opts) ⇒ Object



20
21
22
# File 'lib/brainspace/article.rb', line 20

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