getter_cyndi5 0.0.3 → 0.0.4

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
  SHA256:
3
- metadata.gz: a01a5c71e88bd98d8253d2ee804e9353d6980dfc2f621ad26c568d1e919d06b6
4
- data.tar.gz: 65428d52ad9f507098cea6759bfa9d5eac8b50a7a5c271aab9efa2371a44b874
3
+ metadata.gz: 2614abec8711942eeef9deb4e322fa112719f29e936371de5b7ac3f03f767833
4
+ data.tar.gz: 53d049b3b8115bb0bfc859482bd1e27322b95cc3d93ec64927992b1b608e0151
5
5
  SHA512:
6
- metadata.gz: 179501e4c46cf984966e406ec681ab021dd661fd33263f626376efcb1cf94d7b956ddeea3a6a534275438b4be4cbfcb77500b164a22de9a94a188af169052dfc
7
- data.tar.gz: 035bb4798c455e1011dbdec02f5e45c79781e5c2ff45aae297ba28dde0155afa7074c85208fb3957437c65a1a2b1efbc5d9560520bdd933159f67ee9894e633e
6
+ metadata.gz: 177291453efc5d02b9259869d785b327e397d2c3b71d4ea97edf4d1c8b060b627614b15948bb6598398a687a315734a9a64a02e6b1bf06e4f3b5902087a1c140
7
+ data.tar.gz: 2c7dd3e3ff2e91fddeadf79033976385c7a15e12334a553bc20a0f0232b529f4d211e37e804119057d4feac01f045894df1a64d4212ea639fcebc35895de1d7e
data/bin/getter_cyndi5 CHANGED
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'getter_cyndi5'
4
- GetterCyndi5.go(ARGV[0], ARGV[1], ARGV[2], ARGV[3], ARGV[4].to_i, ARGV[5])
4
+ base_url = ARGV[0] || 'https://thehappyco.com'
5
+ products_page_path = ARGV[1] || '/kelly/products'
6
+ item_row_selector = ARGV[2] || '.item-row'
7
+ item_anchor_selector = ARGV[3] || 'div > div.product-desc.text-center > div.product-title > h3 > a'
8
+ mode = (ARGV[4] || '2').to_i
9
+ filename = ARGV[5] || './tmp/document1.html'
10
+ GetterCyndi5.go(base_url, products_page_path, item_row_selector, item_anchor_selector, mode, filename)
data/lib/getter_cyndi5.rb CHANGED
@@ -3,7 +3,7 @@ class GetterCyndi5
3
3
  # Getter
4
4
  #
5
5
  # Example:
6
- # >> GetterCyndi5.go(base_url = 'https://thehappyco.com', products_page_path = '/kelly/products', item_row_selector = '.item-row', item_anchor_selector = 'div > div.product-desc.text-center > div.product-title > h3 > a', mode = 0, './tmp/document.html')
6
+ # >> GetterCyndi5.go(base_url = 'https://thehappyco.com', products_page_path = '/kelly/products', item_row_selector = '.item-row', item_anchor_selector = 'div > div.product-desc.text-center > div.product-title > h3 > a', mode = 2, './tmp/document1.html')
7
7
  # Arguments:
8
8
  # base_url: (String)
9
9
  # products_page_path: (String)
@@ -12,11 +12,18 @@ class GetterCyndi5
12
12
  # mode: (Integer) 0 = retrieve and parse without saving HTML document to file, 1 = retrieve and parse saving HTML document to file, 2 = load and parse HTML document from file
13
13
  # filename: (String)
14
14
 
15
- def self.go(base_url = 'https://thehappyco.com', products_page_path = '/kelly/products', item_row_selector = '.item-row', item_anchor_selector = 'div > div.product-desc.text-center > div.product-title > h3 > a', mode = 1, filename = './tmp/document.html')
15
+ def self.go(base_url, products_page_path, item_row_selector, item_anchor_selector, mode, filename)
16
+ all_products = products(base_url, products_page_path, item_row_selector, item_anchor_selector, mode, filename)
17
+ all_products.each do |product|
18
+ puts "#{product.name} :-: #{product.url}"
19
+ end
20
+ end
21
+
22
+ def self.products(base_url, products_page_path, item_row_selector, item_anchor_selector, mode, filename)
16
23
  retriever = Retriever.new(base_url, products_page_path, item_row_selector, mode, filename)
17
24
  retriever.retrieve
18
25
  parser = Parser.new(retriever.document, base_url, item_row_selector, item_anchor_selector)
19
- parser.parse
26
+ products = parser.parse
20
27
  end
21
28
  end
22
29
 
@@ -1,9 +1,12 @@
1
+ require 'getter_cyndi5/product'
1
2
  class GetterCyndi5::Parser
3
+ attr_reader :products
2
4
  def initialize(document, base_url, item_row_selector, item_anchor_selector)
3
5
  @document = document
4
6
  @base_url = base_url
5
7
  @item_row_selector = item_row_selector
6
8
  @item_anchor_selector = item_anchor_selector
9
+ @products = []
7
10
  end
8
11
 
9
12
  def parse
@@ -12,7 +15,9 @@ class GetterCyndi5::Parser
12
15
  product_element = item_row.css(@item_anchor_selector)[0]
13
16
  product_name = product_element.text
14
17
  product_url = "#{@base_url}#{product_element.attributes['href']}"
15
- puts "#{product_name} #{product_url}"
18
+ product = GetterCyndi5::Product.new(product_name, product_url)
19
+ products.append(product)
16
20
  end
21
+ products
17
22
  end
18
- end
23
+ end
@@ -0,0 +1,10 @@
1
+ class GetterCyndi5::Product
2
+ attr_accessor :name, :url, :price_a, :price_b, :price_c
3
+ def initialize(name, url, price_a=0.0, price_b=0.0, price_c=0.0)
4
+ @name = name
5
+ @url = url
6
+ @price_a = price_a
7
+ @price_b = price_b
8
+ @price_c = price_c
9
+ end
10
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getter_cyndi5
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyndi Cavanaugh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-09 00:00:00.000000000 Z
11
+ date: 2021-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -76,6 +76,7 @@ files:
76
76
  - bin/getter_cyndi5
77
77
  - lib/getter_cyndi5.rb
78
78
  - lib/getter_cyndi5/parser.rb
79
+ - lib/getter_cyndi5/product.rb
79
80
  - lib/getter_cyndi5/retriever.rb
80
81
  homepage: https://cyndicavanaugh.com
81
82
  licenses: