icalPal 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rdt.rb ADDED
@@ -0,0 +1,58 @@
1
+ require 'date'
2
+
3
+ module ICalPal
4
+ # Child class of DateTime that adds support for relative dates (<em><b>R</b>elative<b>D</b>ate<b>T</b>ime</em>).
5
+ class RDT < DateTime
6
+ # Convert a String to an RDT
7
+ #
8
+ # @param str [String] can be +yesterday+, +today+, +tomorrow+,
9
+ # <code>+N</code>, or +-N+. Otherwise use DateTime.parse.
10
+ #
11
+ # @return [RDT] a new RDT
12
+ def self.conv(str)
13
+ case str
14
+ when 'yesterday' then $today - 1
15
+ when 'today' then $today
16
+ when 'tomorrow' then $today + 1
17
+ when /^\+([0-9]+)/ then $today + $1.to_i
18
+ when /^\-([0-9]+)/ then $today - $1.to_i
19
+ else parse(str)
20
+ end
21
+ end
22
+
23
+ # Values can be +day before yesterday+, +yesterday+,
24
+ # +today+, +tomorrow+, +day after tomorrow+, or the result from
25
+ # strftime
26
+ #
27
+ # @return [String] A string representation of self relative to
28
+ # today.
29
+ def to_s
30
+ return strftime($opts[:df]) if $opts[:nrd] && $opts[:df]
31
+
32
+ d1 = RDT.new(year, month, day)
33
+
34
+ case Integer(d1 - $today)
35
+ when -2 then 'day before yesterday'
36
+ when -1 then 'yesterday'
37
+ when 0 then 'today'
38
+ when 1 then 'tomorrow'
39
+ when 2 then 'day after tomorrow'
40
+ else strftime($opts[:df]) if $opts[:df]
41
+ end
42
+ end
43
+
44
+ alias inspect to_s
45
+
46
+ # @see Time.to_a
47
+ #
48
+ # @return [Array] Self as an array
49
+ def to_a
50
+ [ year, month, day, hour, min, sec ]
51
+ end
52
+
53
+ # @return [Integer] Seconds since epoch
54
+ def to_i
55
+ to_time.to_i
56
+ end
57
+ end
58
+ end
data/lib/store.rb ADDED
@@ -0,0 +1,19 @@
1
+ module ICalPal
2
+ # Class representing items from the <tt>Store</tt> table
3
+ class Store
4
+ include ICalPal
5
+
6
+ QUERY = <<~SQL
7
+ SELECT DISTINCT
8
+
9
+ Store.name AS account,
10
+ *
11
+
12
+ FROM #{self.name.split('::').last}
13
+
14
+ WHERE Store.disabled IS NOT 1
15
+ AND Store.display_order IS NOT -1
16
+ SQL
17
+
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: icalPal
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Andy Rosen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-02-22 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: |
14
+ Inspired by icalBuddy and maintains close compatability. Includes
15
+ many additional features for querying, filtering, and formatting.
16
+ email: ajr@corp.mlfs.org
17
+ executables:
18
+ - icalPal
19
+ extensions: []
20
+ extra_rdoc_files:
21
+ - README.md
22
+ files:
23
+ - README.md
24
+ - bin/icalPal
25
+ - icalPal.gemspec
26
+ - lib/EventKit.rb
27
+ - lib/ToICalPal.rb
28
+ - lib/calendar.rb
29
+ - lib/defaults.rb
30
+ - lib/event.rb
31
+ - lib/icalPal.rb
32
+ - lib/options.rb
33
+ - lib/rdt.rb
34
+ - lib/store.rb
35
+ homepage: https://github.com/ajrosen/icalPal
36
+ licenses:
37
+ - GPL-3.0+
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 2.6.0
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubygems_version: 3.4.6
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: Command-line tool to query the macOS Calendar
58
+ test_files: []