earl 1.0.0 → 2.0.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.
data/lib/earl/scraper.rb CHANGED
@@ -1,9 +1,10 @@
1
- class Earl::Scraper
1
+ # frozen_string_literal: true
2
2
 
3
+ # Base class for nokogiri page scraping
4
+ class Earl::Scraper
3
5
  class << self
4
6
  @@registry = []
5
- attr_reader :regexp
6
- attr_reader :attributes
7
+ attr_reader :regexp, :attributes
7
8
 
8
9
  def match(regexp)
9
10
  @regexp = regexp
@@ -17,17 +18,15 @@ class Earl::Scraper
17
18
 
18
19
  def for(url, earl_source)
19
20
  @@registry.each do |klass|
20
- return klass.new(url,earl_source) if klass.regexp.match(url)
21
+ return klass.new(url, earl_source) if klass.regexp.match(url)
21
22
  end
22
- return Earl::Scraper.new(url,earl_source)
23
+ Earl::Scraper.new(url, earl_source)
23
24
  end
24
25
 
25
- private
26
-
27
- def register(scraper_klass)
28
- @@registry << scraper_klass
29
- end
30
-
26
+ def register(scraper_klass)
27
+ @@registry << scraper_klass
28
+ end
29
+ private :register
31
30
  end
32
31
 
33
32
  attr_reader :earl_source
@@ -42,8 +41,9 @@ class Earl::Scraper
42
41
  end
43
42
 
44
43
  def attribute(name)
45
- return unless has_attribute?(name)
46
- self.attributes[name].call(response)
44
+ return unless attribute?(name)
45
+
46
+ attributes[name].call(response)
47
47
  end
48
48
 
49
49
  def attributes
@@ -54,9 +54,10 @@ class Earl::Scraper
54
54
  end
55
55
  end
56
56
 
57
- def has_attribute?(name)
57
+ def attribute?(name)
58
58
  return false unless self.class.attributes
59
- self.attributes.has_key?(name)
59
+
60
+ attributes.key?(name)
60
61
  end
61
62
 
62
63
  define_attribute :title do |doc|
@@ -88,6 +89,4 @@ class Earl::Scraper
88
89
  element['href']
89
90
  end
90
91
  end
91
-
92
92
  end
93
-
data/lib/earl/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Earl
2
- VERSION = "1.0.0"
4
+ VERSION = '2.0.0'
3
5
  end
data/lib/earl.rb CHANGED
@@ -1,5 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'nokogiri'
2
4
  require 'open-uri'
5
+ require 'json'
6
+ require 'oembed'
7
+
8
+ OEmbed::Providers.register_all
3
9
 
4
10
  class Earl
5
11
  end