Class: AmazonAssociate::Element
- Inherits:
-
Object
- Object
- AmazonAssociate::Element
- Defined in:
- lib/amazon_associate/element.rb
Class Method Summary collapse
-
.get(element, path = "") ⇒ Object
Similar to #get, except an element object must be passed-in.
-
.get_array(element, path = "") ⇒ Object
Similar to #get_array, except an element object must be passed-in.
-
.get_hash(element, path = "") ⇒ Object
Similar to #get_hash, except an element object must be passed-in.
-
.get_unescaped(element, path = "") ⇒ Object
Similar to #get_unescaped, except an element object must be passed-in.
Instance Method Summary collapse
-
#/(path) ⇒ Object
Find Hpricot::Elements matching the given path.
-
#elem ⇒ Object
Returns Hpricot::Elments object.
-
#get(path = "") ⇒ Object
Get the text value of the given path, leave empty to retrieve current element value.
-
#get_array(path = "") ⇒ Object
Get the array values of the given path.
-
#get_hash(path = "") ⇒ Object
Get the children element text values in hash format with the element names as the hash keys.
-
#get_unescaped(path = "") ⇒ Object
Get the unescaped HTML text of the given path.
-
#initialize(element) ⇒ Element
constructor
Pass Hpricot::Elements object.
-
#search_and_convert(path) ⇒ Object
Find Hpricot::Elements matching the given path, and convert to AmazonAssociate::Element.
- #to_s ⇒ Object
Constructor Details
#initialize(element) ⇒ Element
Pass Hpricot::Elements object
5 6 7 |
# File 'lib/amazon_associate/element.rb', line 5 def initialize(element) @element = element end |
Class Method Details
.get(element, path = "") ⇒ Object
Similar to #get, except an element object must be passed-in.
52 53 54 55 56 57 |
# File 'lib/amazon_associate/element.rb', line 52 def self.get(element, path="") return unless element result = element.at(path) result = result.inner_html if result result end |
.get_array(element, path = "") ⇒ Object
Similar to #get_array, except an element object must be passed-in.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/amazon_associate/element.rb', line 66 def self.get_array(element, path="") return unless element result = element/path if (result.is_a? Hpricot::Elements) || (result.is_a? Array) parsed_result = [] result.each {|item| parsed_result << Element.get(item) } parsed_result else [Element.get(result)] end end |
.get_hash(element, path = "") ⇒ Object
Similar to #get_hash, except an element object must be passed-in.
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/amazon_associate/element.rb', line 82 def self.get_hash(element, path="") return unless element result = element.at(path) if result hash = {} result = result.children result.each do |item| hash[item.name.to_sym] = item.inner_html end hash end end |
.get_unescaped(element, path = "") ⇒ Object
Similar to #get_unescaped, except an element object must be passed-in.
60 61 62 63 |
# File 'lib/amazon_associate/element.rb', line 60 def self.get_unescaped(element, path="") result = get(element, path) CGI::unescapeHTML(result) if result end |
Instance Method Details
#/(path) ⇒ Object
Find Hpricot::Elements matching the given path. Example: element/“author”.
15 16 17 18 19 |
# File 'lib/amazon_associate/element.rb', line 15 def /(path) elements = @element/path return nil if elements.size == 0 elements end |
#elem ⇒ Object
Returns Hpricot::Elments object
10 11 12 |
# File 'lib/amazon_associate/element.rb', line 10 def elem @element end |
#get(path = "") ⇒ Object
Get the text value of the given path, leave empty to retrieve current element value.
32 33 34 |
# File 'lib/amazon_associate/element.rb', line 32 def get(path="") Element.get(@element, path) end |
#get_array(path = "") ⇒ Object
Get the array values of the given path.
42 43 44 |
# File 'lib/amazon_associate/element.rb', line 42 def get_array(path="") Element.get_array(@element, path) end |
#get_hash(path = "") ⇒ Object
Get the children element text values in hash format with the element names as the hash keys.
47 48 49 |
# File 'lib/amazon_associate/element.rb', line 47 def get_hash(path="") Element.get_hash(@element, path) end |
#get_unescaped(path = "") ⇒ Object
Get the unescaped HTML text of the given path.
37 38 39 |
# File 'lib/amazon_associate/element.rb', line 37 def get_unescaped(path="") Element.get_unescaped(@element, path) end |
#search_and_convert(path) ⇒ Object
Find Hpricot::Elements matching the given path, and convert to AmazonAssociate::Element. Returns an array AmazonAssociate::Elements if more than Hpricot::Elements size is greater than 1.
23 24 25 26 27 28 29 |
# File 'lib/amazon_associate/element.rb', line 23 def search_and_convert(path) elements = self./(path) return unless elements elements = elements.map{|element| Element.new(element)} return elements.first if elements.size == 1 elements end |
#to_s ⇒ Object
96 97 98 |
# File 'lib/amazon_associate/element.rb', line 96 def to_s elem.to_s if elem end |