flycal-cli 0.7.7 → 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 +4 -4
- data/README.md +6 -181
- data/bin/flycal +2 -2
- data/lib/flycal/cache_annotator.rb +83 -0
- data/lib/flycal/cache_key.rb +82 -0
- data/lib/flycal/calendar_query.rb +60 -0
- data/lib/{flycal_cli → flycal}/calendar_service.rb +48 -4
- data/lib/{flycal_cli/cli.rb → flycal/cli/app.rb} +253 -109
- data/lib/{flycal_cli → flycal/cli}/auth.rb +5 -3
- data/lib/{flycal_cli → flycal/cli}/clipboard.rb +3 -1
- data/lib/{flycal_cli → flycal/cli}/config.rb +4 -2
- data/lib/flycal/cli/file_cache.rb +44 -0
- data/lib/flycal/cli/locale.rb +58 -0
- data/lib/flycal/cli.rb +14 -0
- data/lib/flycal/client.rb +186 -0
- data/lib/flycal/credentials.rb +34 -0
- data/lib/{flycal_cli → flycal}/date_time_parser.rb +4 -4
- data/lib/{flycal_cli → flycal}/description_query.rb +3 -3
- data/lib/{flycal_cli → flycal}/duration_parser.rb +3 -3
- data/lib/flycal/error.rb +5 -0
- data/lib/flycal/event_mapper.rb +58 -0
- data/lib/{flycal_cli → flycal}/locale.rb +35 -3
- data/lib/{flycal_cli → flycal}/mock/calendar_service.rb +1 -1
- data/lib/{flycal_cli → flycal}/mock/config.rb +14 -14
- data/lib/{flycal_cli → flycal}/mock/event_generator.rb +2 -2
- data/lib/flycal/mock.rb +6 -0
- data/lib/{flycal_cli → flycal}/pipeline/aggregator.rb +21 -24
- data/lib/{flycal_cli → flycal}/pipeline/json_renderer.rb +16 -13
- data/lib/{flycal_cli → flycal}/pipeline/params.rb +1 -1
- data/lib/{flycal_cli → flycal}/pipeline/renderer.rb +4 -4
- data/lib/{flycal_cli → flycal}/pipeline/retriever.rb +1 -1
- data/lib/{flycal_cli → flycal}/pipeline/search_pipeline.rb +1 -1
- data/lib/{flycal_cli → flycal}/pipeline/text_renderer.rb +9 -8
- data/lib/flycal/pipeline.rb +6 -0
- data/lib/{flycal_cli → flycal}/slot_finder.rb +1 -1
- data/lib/flycal/slot_formatter.rb +195 -0
- data/lib/flycal/version.rb +11 -0
- data/lib/flycal.rb +12 -0
- data/lib/flycal_cli.rb +37 -17
- data/mcp/tools.json +21 -8
- metadata +36 -25
- data/lib/flycal_cli/mock.rb +0 -10
- data/lib/flycal_cli/pipeline.rb +0 -14
- data/lib/flycal_cli/slot_formatter.rb +0 -68
- data/lib/flycal_cli/version.rb +0 -5
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: flycal-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0
|
|
4
|
+
version: '1.0'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- flycal-cli
|
|
@@ -134,31 +134,42 @@ files:
|
|
|
134
134
|
- README.md
|
|
135
135
|
- bin/flycal
|
|
136
136
|
- config/defaults.yml
|
|
137
|
+
- lib/flycal.rb
|
|
138
|
+
- lib/flycal/cache_annotator.rb
|
|
139
|
+
- lib/flycal/cache_key.rb
|
|
140
|
+
- lib/flycal/calendar_query.rb
|
|
141
|
+
- lib/flycal/calendar_service.rb
|
|
142
|
+
- lib/flycal/cli.rb
|
|
143
|
+
- lib/flycal/cli/app.rb
|
|
144
|
+
- lib/flycal/cli/auth.rb
|
|
145
|
+
- lib/flycal/cli/clipboard.rb
|
|
146
|
+
- lib/flycal/cli/config.rb
|
|
147
|
+
- lib/flycal/cli/file_cache.rb
|
|
148
|
+
- lib/flycal/cli/locale.rb
|
|
149
|
+
- lib/flycal/client.rb
|
|
150
|
+
- lib/flycal/credentials.rb
|
|
151
|
+
- lib/flycal/date_time_parser.rb
|
|
152
|
+
- lib/flycal/description_query.rb
|
|
153
|
+
- lib/flycal/duration_parser.rb
|
|
154
|
+
- lib/flycal/error.rb
|
|
155
|
+
- lib/flycal/event_mapper.rb
|
|
156
|
+
- lib/flycal/locale.rb
|
|
157
|
+
- lib/flycal/mock.rb
|
|
158
|
+
- lib/flycal/mock/calendar_service.rb
|
|
159
|
+
- lib/flycal/mock/config.rb
|
|
160
|
+
- lib/flycal/mock/event_generator.rb
|
|
161
|
+
- lib/flycal/pipeline.rb
|
|
162
|
+
- lib/flycal/pipeline/aggregator.rb
|
|
163
|
+
- lib/flycal/pipeline/json_renderer.rb
|
|
164
|
+
- lib/flycal/pipeline/params.rb
|
|
165
|
+
- lib/flycal/pipeline/renderer.rb
|
|
166
|
+
- lib/flycal/pipeline/retriever.rb
|
|
167
|
+
- lib/flycal/pipeline/search_pipeline.rb
|
|
168
|
+
- lib/flycal/pipeline/text_renderer.rb
|
|
169
|
+
- lib/flycal/slot_finder.rb
|
|
170
|
+
- lib/flycal/slot_formatter.rb
|
|
171
|
+
- lib/flycal/version.rb
|
|
137
172
|
- lib/flycal_cli.rb
|
|
138
|
-
- lib/flycal_cli/auth.rb
|
|
139
|
-
- lib/flycal_cli/calendar_service.rb
|
|
140
|
-
- lib/flycal_cli/cli.rb
|
|
141
|
-
- lib/flycal_cli/clipboard.rb
|
|
142
|
-
- lib/flycal_cli/config.rb
|
|
143
|
-
- lib/flycal_cli/date_time_parser.rb
|
|
144
|
-
- lib/flycal_cli/description_query.rb
|
|
145
|
-
- lib/flycal_cli/duration_parser.rb
|
|
146
|
-
- lib/flycal_cli/locale.rb
|
|
147
|
-
- lib/flycal_cli/mock.rb
|
|
148
|
-
- lib/flycal_cli/mock/calendar_service.rb
|
|
149
|
-
- lib/flycal_cli/mock/config.rb
|
|
150
|
-
- lib/flycal_cli/mock/event_generator.rb
|
|
151
|
-
- lib/flycal_cli/pipeline.rb
|
|
152
|
-
- lib/flycal_cli/pipeline/aggregator.rb
|
|
153
|
-
- lib/flycal_cli/pipeline/json_renderer.rb
|
|
154
|
-
- lib/flycal_cli/pipeline/params.rb
|
|
155
|
-
- lib/flycal_cli/pipeline/renderer.rb
|
|
156
|
-
- lib/flycal_cli/pipeline/retriever.rb
|
|
157
|
-
- lib/flycal_cli/pipeline/search_pipeline.rb
|
|
158
|
-
- lib/flycal_cli/pipeline/text_renderer.rb
|
|
159
|
-
- lib/flycal_cli/slot_finder.rb
|
|
160
|
-
- lib/flycal_cli/slot_formatter.rb
|
|
161
|
-
- lib/flycal_cli/version.rb
|
|
162
173
|
- locales/en.json
|
|
163
174
|
- locales/it.json
|
|
164
175
|
- mcp/README.md
|
data/lib/flycal_cli/mock.rb
DELETED
data/lib/flycal_cli/pipeline.rb
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "flycal_cli/pipeline/params"
|
|
4
|
-
require "flycal_cli/pipeline/retriever"
|
|
5
|
-
require "flycal_cli/pipeline/aggregator"
|
|
6
|
-
require "flycal_cli/pipeline/renderer"
|
|
7
|
-
require "flycal_cli/pipeline/text_renderer"
|
|
8
|
-
require "flycal_cli/pipeline/json_renderer"
|
|
9
|
-
require "flycal_cli/pipeline/search_pipeline"
|
|
10
|
-
|
|
11
|
-
module FlycalCli
|
|
12
|
-
module Pipeline
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module FlycalCli
|
|
4
|
-
class SlotFormatter
|
|
5
|
-
class << self
|
|
6
|
-
def format_header(from:, to:, duration:, calendars:, count:, template: nil)
|
|
7
|
-
lines = []
|
|
8
|
-
lines << Locale.t(
|
|
9
|
-
"slots.header",
|
|
10
|
-
count: underline(count),
|
|
11
|
-
from: underline(Locale.format_long_date(from)),
|
|
12
|
-
to: underline(Locale.format_long_date(to)),
|
|
13
|
-
duration: underline(duration),
|
|
14
|
-
template: underline(template.to_s)
|
|
15
|
-
)
|
|
16
|
-
calendars.each do |cal|
|
|
17
|
-
lines << "- #{cal[:name]}"
|
|
18
|
-
end
|
|
19
|
-
lines << "link: #{google_calendar_day_url(from)}"
|
|
20
|
-
lines.join("\n")
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def format_output(slots_by_day)
|
|
24
|
-
lines = []
|
|
25
|
-
|
|
26
|
-
slots_by_day.sort_by(&:first).each do |date, slots|
|
|
27
|
-
lines << "" unless lines.empty?
|
|
28
|
-
lines << underline(day_header(date))
|
|
29
|
-
slots.each do |start_at, end_at|
|
|
30
|
-
lines << slot_range(start_at, end_at)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
lines.join("\n")
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def strip_ansi(text)
|
|
38
|
-
text.to_s.gsub(/\e\[[0-9;]*m/, "")
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
private
|
|
42
|
-
|
|
43
|
-
def underline(str)
|
|
44
|
-
"\e[4m#{str}\e[0m"
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def google_calendar_day_url(from)
|
|
48
|
-
t = from.respond_to?(:to_time) ? from.to_time : from
|
|
49
|
-
"https://calendar.google.com/calendar/r/day/#{t.year}/#{t.month}/#{t.day}"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def day_header(date)
|
|
53
|
-
"#{Locale.day_name(date)} #{date.day}/#{date.month}"
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def slot_range(start_at, end_at)
|
|
57
|
-
"#{format_time(start_at)} - #{format_time(end_at)}"
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def format_time(time)
|
|
61
|
-
return time.strftime("%-H") if time.min.zero?
|
|
62
|
-
|
|
63
|
-
minutes = sprintf("%02d", time.min)
|
|
64
|
-
"#{time.hour}.#{minutes}"
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|