webscraper_framework 0.1.60

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2f3d151f11f7b9e6d7bf096b3719508b6a1b4dad
4
+ data.tar.gz: fcfaf4620a5a8cb1e3606aeeac81fc4913e68c02
5
+ SHA512:
6
+ metadata.gz: 624a6cda7e60bb517b75b47d258263331d4fa3e5c46bb641b0f6623cc4fde294606e2497ad5b228f7628e5872c6783927ffad5e769a4c2e754f1601704e92329
7
+ data.tar.gz: 8afa0b446d843cf94ecf0218f728d18a90d578ad575da76a340c1ebaffbdc3c52e16a4a9bdf85562facd8d37644380a3f55566b663cab984cd008cb4922b8d3b
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "webscraper_framework"
5
+
6
+ WebscraperFramework::CLI.new.start
@@ -0,0 +1,9 @@
1
+
2
+ require "webscraper_framework/base"
3
+ require "webscraper_framework/base_model"
4
+ require "webscraper_framework/cli"
5
+
6
+ module WebscraperFramework
7
+
8
+
9
+ end
@@ -0,0 +1,7 @@
1
+ module WebscraperFramework
2
+ class Base
3
+ def self.awesome?
4
+ puts "Hi"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,74 @@
1
+ require 'yaml'
2
+ module WebscraperFramework
3
+
4
+ class BaseModel
5
+
6
+ # Any suggestions on how to manage these fields
7
+ # better are welcome!
8
+
9
+ @@fields = []
10
+
11
+ def initialize
12
+ end
13
+
14
+ def validates?
15
+ return true unless primary_key
16
+ self.method(primary_key).call.present?
17
+ end
18
+
19
+ def self.field(symbol)
20
+
21
+ @@fields.push(symbol)
22
+ @@fields = @@fields.uniq
23
+ attr_accessor symbol
24
+ end
25
+
26
+ def to_hash
27
+ hash = {}
28
+ @@fields.each do |field|
29
+ if field
30
+ hash[field] = self.method(field).call
31
+ end
32
+ end
33
+ hash
34
+ end
35
+
36
+ def self.fields
37
+ self.new.fields
38
+ end
39
+
40
+ def self.primary_key
41
+ self.new.primary_key
42
+ end
43
+
44
+ def self.all
45
+ puts "#{self.name.underscore}.yml"
46
+ puts YAML::load_file("#{self.name}.yml")
47
+ puts YAML::load_file("#{self.name}.yml")[:collecion]
48
+ YAML::load_file("#{self.name}.yml")[:collection]
49
+ end
50
+
51
+ def fields
52
+ @@fields
53
+ end
54
+
55
+ def save
56
+ filename = "#{self.class}.yml"
57
+ FileUtils.touch(filename)
58
+ if validates? && id
59
+ collection = YAML::load_file(filename)
60
+ collection = {} unless collection
61
+ collection[:collection] = {} unless collection[:collection]
62
+ collection[:collection][id.to_sym] = to_hash
63
+ File.open(filename, 'w') {|f| f.write collection.to_yaml } #Store
64
+ end
65
+ end
66
+
67
+ def id
68
+ if self.validates?
69
+ Digest::SHA256.hexdigest(self.method(self.primary_key).call)
70
+ end
71
+ end
72
+
73
+ end
74
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webscraper_framework
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.60
5
+ platform: ruby
6
+ authors:
7
+ - Rene van Pelt
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-12-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fileutils
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description:
42
+ email:
43
+ executables:
44
+ - wsfr
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - Gemfile
49
+ - bin/wsfr
50
+ - lib/webscraper_framework.rb
51
+ - lib/webscraper_framework/base.rb
52
+ - lib/webscraper_framework/base_model.rb
53
+ homepage:
54
+ licenses: []
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.6.14
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: webscraper_framework is a DRY framework for creating scrapers
76
+ test_files: []