px_timetable 0.1.0

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 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