webscraper_framework 0.1.60
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|