px_timetable 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d2aaf852f012c3b4c3dbaaae6fdd12d96b33cb0f
4
+ data.tar.gz: 2d4f520766542660b5257af3674715a2f7233734
5
+ SHA512:
6
+ metadata.gz: 9345bf796b83079eac380d2c97a49da51f814cd5f6dc848458b40ca03adff69e915b7eb174842346cdeb705f409e65ade04142143f2420f5851e105c8ded9192
7
+ data.tar.gz: 7951547cdd360e55862dfe47fdf086d07cdad6fea96344fc62b0ec574af00ca9c9f498c3c18531f3d687008f3291e9d1eeea08aab1b96af30418d44a2425bec0
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: px_timetable.rb
4
+
5
+
6
+ require 'polyrex'
7
+ require 'chronic_between'
8
+
9
+
10
+
11
+ class PxTimetable
12
+
13
+ def initialize(filename_txt)
14
+ @px = Polyrex.new
15
+ @px.import filename_txt
16
+ end
17
+
18
+ def next(t=Time.now)
19
+
20
+ classes_today = self.today()
21
+ return unless classes_today
22
+
23
+ classes = classes_today.records
24
+
25
+ session = classes.detect do |klass|
26
+ ChronicBetween.new(klass.times).within? t
27
+ end
28
+
29
+ i = classes.index(session)
30
+
31
+ if i and i < classes.length then
32
+ classes[i+1]
33
+ end
34
+
35
+ end
36
+
37
+ def now(t=Time.now)
38
+
39
+ classes_today = self.today()
40
+ return unless classes_today
41
+
42
+ classes = classes_today.records
43
+
44
+ classes.detect do |klass|
45
+ ChronicBetween.new(klass.times).within? t
46
+ end
47
+ end
48
+
49
+ def to_s()
50
+ @px.to_s(header: false)
51
+ end
52
+
53
+ def today(d=Date.today)
54
+
55
+ @px.find_by_day_title Date::DAYNAMES[d.wday]
56
+
57
+ end
58
+
59
+ def tomorrow(d=Date.today+1)
60
+
61
+ @px.find_by_day_title Date::DAYNAMES[(d).wday]
62
+
63
+ end
64
+
65
+
66
+ end
67
+
68
+
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: px_timetable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE2MDkxOTE4MDQxOVoXDTE3MDkxOTE4MDQxOVowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBALZM0s0/spkR3mU1cU37tNEtmR25TxNEW9tFB2iwqOtUsPSWnt6aXHSFHK2B
19
+ VREquLrM/2jQ9nqAiruuAbTQjBeks9+ZCFewVTZNdYHSkahgod5XFFK02AxXR63+
20
+ 6a69nMXFyOYU55+DdZxb6ospDaoNuslBmbp4HvizEELKwSg5/fOaAFnL35nT/Skc
21
+ DJimlxVb/fuCfrjCIPrWcktvSrmaFDxTH4v3+M5wRl9uXKfZfhwzG5EaXH3yY8eA
22
+ HogUW7Y2BvhOdHjO7W5RQfpSmIxrss4Hxi4aEyOCewyjAPINFS1/kQd+Eqf4HCOH
23
+ 9h97ov2gCrt2sTDlFyFyjf3qtlMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUncPQt1PEhIt45uWx5jHvnui5aIAwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAqEONn/2U
27
+ 0bon6VfyRFgZfKL8rH0tdEsrwdtiqeZKYjeP2gWouWqGCHfheKoIPhFBxAY1BDwl
28
+ bdmjeHfWE8y1BrE3KJyMtKFF+KVTVejBtMBDSweqLSG+ycAcMOYl0cmz1zb4sBEQ
29
+ jRkncbI6Exb8znfHRCY84r28qGHtOvY7YrnZAkGTWyUYIxGmxEI3McH2oRhyRMG4
30
+ 5SkDSjvBJpL2wsYawY94D1NZpX/aAoJO/FdLS5bfOv+Ftt3qVOaat65xzZ0TlH4G
31
+ xJBBXPdywsZWFVDgQSNP0nXeLQlsb9a99Pka6bShp4tOlkovunKPrEhP40QWxEtj
32
+ eEq8eSxNSLKWlQ==
33
+ -----END CERTIFICATE-----
34
+ date: 2016-09-19 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: chronic_between
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.3'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.3.0
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.3'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.3.0
56
+ description:
57
+ email: james@r0bertson.co.uk
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/px_timetable.rb
63
+ homepage: https://github.com/jrobertson/px_timetable
64
+ licenses:
65
+ - MIT
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.5.1
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Query a timetable using a Polyrex document
87
+ test_files: []
metadata.gz.sig ADDED
Binary file