quarterweek 0.0.1
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/bin/quarterweek +4 -0
- data/lib/quarterweek.rb +57 -0
- metadata +74 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 35c58ecc26c65a9456cc9baa0a7e50a4be1ff15a
|
4
|
+
data.tar.gz: a872e1db32a4203b222234d2d771436b167ddf7e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ab5952d2444aebbe038c787c76545e85d3330525f8525c00d2ceac90c849cfde491439e4dc2a54d5845e1badbf3404aaa4b7f0c34185d19cba0819a115d24bf6
|
7
|
+
data.tar.gz: f1219ce4a6a2de918c0620773737a58a5b52b382ab755fdf57da63c73b577a4bbe13f8378367fbdce8df1c33c574f0f39b2c292196858332220c25d0427a636d
|
data/bin/quarterweek
ADDED
data/lib/quarterweek.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'icalendar'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'nokogiri'
|
5
|
+
|
6
|
+
class Quarterweek
|
7
|
+
|
8
|
+
# open Doc
|
9
|
+
# select Node
|
10
|
+
# Manipulate Node
|
11
|
+
# extract Data
|
12
|
+
|
13
|
+
# new Calendar
|
14
|
+
# set Calendar
|
15
|
+
# add Events
|
16
|
+
# publish Calendar
|
17
|
+
# write File
|
18
|
+
|
19
|
+
def self.write_file(code)
|
20
|
+
@data = [];
|
21
|
+
@doc = Nokogiri::HTML(open("http://roosters.saxion.nl/teacher/teacher:#{code}"))
|
22
|
+
|
23
|
+
@nodeSet = @doc.css("div.span6:nth-child(2) > table:nth-child(1) tr")
|
24
|
+
2.times do @nodeSet.delete(@nodeSet[0]) end
|
25
|
+
|
26
|
+
@nodeSet.each do |node|
|
27
|
+
@data << {
|
28
|
+
q: node.css("td:nth-child(1) a").text,
|
29
|
+
w: node.css("td:nth-child(2)").text.to_i,
|
30
|
+
y: node.css("td:nth-child(3)").text.to_i,
|
31
|
+
l: node.css("td:nth-child(1) a").map { |link| link['href'] }.first
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
@cal = Icalendar::Calendar.new
|
36
|
+
@cal.timezone do |t|
|
37
|
+
t.tzid = "Europe/Amsterdam"
|
38
|
+
end
|
39
|
+
|
40
|
+
@data.each do |hash|
|
41
|
+
@cal.event do |e|
|
42
|
+
start_date = Date.commercial(hash[:y], hash[:w], 1).strftime("%Y%m%d")
|
43
|
+
end_date = Date.commercial(hash[:y], hash[:w], 6).strftime("%Y%m%d")
|
44
|
+
e = Icalendar::Event.new
|
45
|
+
e.dtstart = Icalendar::Values::Date.new(start_date)
|
46
|
+
e.dtend = Icalendar::Values::Date.new(end_date)
|
47
|
+
e.summary = "Kwartielweek: #{hash[:q]}"
|
48
|
+
e.url = hash[:l]
|
49
|
+
@cal.add_event(e)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
@cal.publish
|
54
|
+
|
55
|
+
File.open("#{code}-quarterweeks.ics", 'w') { |file| file.write(@cal.to_ical)}
|
56
|
+
end
|
57
|
+
end
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: quarterweek
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Robin Janse
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.7.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.7.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: icalendar
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.4.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.4.1
|
41
|
+
description: Builds ical events with quarterweeks
|
42
|
+
email: r.e.janse@saxion.nl
|
43
|
+
executables:
|
44
|
+
- quarterweek
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- bin/quarterweek
|
49
|
+
- lib/quarterweek.rb
|
50
|
+
homepage: http://rubygems.org/gems/quarterweek
|
51
|
+
licenses:
|
52
|
+
- MIT
|
53
|
+
metadata: {}
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options: []
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
requirements: []
|
69
|
+
rubyforge_project:
|
70
|
+
rubygems_version: 2.6.8
|
71
|
+
signing_key:
|
72
|
+
specification_version: 4
|
73
|
+
summary: Builds ical events with quarterweeks
|
74
|
+
test_files: []
|