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.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/bin/wsfr +6 -0
- data/lib/webscraper_framework.rb +9 -0
- data/lib/webscraper_framework/base.rb +7 -0
- data/lib/webscraper_framework/base_model.rb +74 -0
- metadata +76 -0
checksums.yaml
ADDED
@@ -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
data/bin/wsfr
ADDED
@@ -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: []
|