hanreki 2.0.0 → 4.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5063f6f82205ddf8c8ba3393966f4e743e95c834
4
- data.tar.gz: '06729fefac6d2ff13f70e81f4dede11d8940159b'
2
+ SHA256:
3
+ metadata.gz: 4087d3e4cc1c029750b320de3458e2d844bcdb94bb99847a9f16a675a775ebe9
4
+ data.tar.gz: e52bcbc070d523ce3809586b5fb83d08a3d9af46be2405b1f3758b73a8a82d75
5
5
  SHA512:
6
- metadata.gz: ef56f66855bc14838ff616b045f9452def5b53fc7591f602ab9aec1a1bd16b32fe6cd06fcbdcbd4230bc642362bb4a0150a0603106deb5fb4ced4f60abb5757a
7
- data.tar.gz: 979e7634f02f3b456c83e63d4f3b49cda6be01c9800f50aeb17aa750ff849e5b81a8a7620d4c52c03037d91aca304147f51907ca6742d4965f7fd0e57bcc7d9e
6
+ metadata.gz: a822ec03978588e36c3c9008115d917202764a4ee3d6e7669ecdf13e3f5333d0f4304acb23729807d6f57162236c0c65c548090a054668a504e4b96335dbb46a
7
+ data.tar.gz: 6c8d428c6c26b581f922f32d094ba5168e84fd68c42a123aa11973ac4973ed65ff5b35c8fea140cf45c5ff1198bfaa6277b962a879cd93ad84c64a243b9aa031
data/README.md CHANGED
@@ -5,6 +5,11 @@
5
5
 
6
6
  Simple schedule manager for [CAMPHOR-](https://camph.net/)
7
7
 
8
+ ## Features
9
+ - Manage public & private schedules
10
+ - Manage events using simple CSV master files
11
+ - Convert master files to iCal and JSON files
12
+
8
13
  ## Installation
9
14
  ### Gem
10
15
  Install hanreki with gem command:
@@ -27,6 +32,23 @@ And then execute:
27
32
  ## Usage
28
33
  Run `hanreki help` or `bundle exec hanreki help`.
29
34
 
35
+ ### Create a master file
36
+ `hanreki blank` generates a master file for the next month.
37
+
38
+ ### Sync
39
+ `hanreki sync` generates iCal and JSON files from master files.
40
+
41
+ ### Edit
42
+ `hanreki edit` opens a editor and validates master files.
43
+ Hanreki chooses the editor in the following order:
44
+
45
+ 1. Editor specified by the environment variable: `CAMPHOR_SCHEDULE_EDITOR`
46
+ 2. Editor specified by the environment variable: `EDITOR`
47
+ 3. `vi`
48
+
49
+ ### Validation
50
+ `hanreki validate` validates master files.
51
+
30
52
  ## Development
31
53
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
32
54
 
data/hanreki.gemspec CHANGED
@@ -26,11 +26,11 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.required_ruby_version = '>= 2.2.0'
28
28
 
29
- spec.add_dependency 'thor', '~> 0.19'
29
+ spec.add_dependency 'thor', '>= 0.19', '< 2.0'
30
30
  spec.add_dependency 'icalendar', '~> 2.3'
31
31
  spec.add_dependency 'json-schema', '~> 2.7'
32
32
 
33
- spec.add_development_dependency 'bundler', '~> 1.12'
34
- spec.add_development_dependency 'rake', '~> 12.0'
33
+ spec.add_development_dependency 'bundler', '~> 2.1'
34
+ spec.add_development_dependency 'rake', '~> 13.0'
35
35
  spec.add_development_dependency 'rspec', '~> 3.0'
36
36
  end
data/lib/hanreki/cli.rb CHANGED
@@ -30,12 +30,12 @@ module Hanreki
30
30
  validate
31
31
  end
32
32
 
33
- desc 'sync', 'Sync iCal, JSON, and JSONP'
33
+ desc 'sync', 'Sync iCal and JSON'
34
34
  def sync
35
35
  schedule = load_schedule
36
+ schedule.sort_by_date!
36
37
  schedule.out_ical
37
38
  schedule.out_json
38
- schedule.out_jsonp
39
39
  end
40
40
 
41
41
  desc 'validate', 'Validate master files'
data/lib/hanreki/event.rb CHANGED
@@ -101,6 +101,18 @@ class Event
101
101
  end
102
102
  end
103
103
 
104
+ if @public_summary == 'Make'
105
+ if @start == @end
106
+ raise ValidationError.new(self), '"make" event should have duration'
107
+ end
108
+ end
109
+
110
+ if @public_summary == 'Online Open'
111
+ if @start == @end
112
+ raise ValidationError.new(self), '"online open" event should have duration'
113
+ end
114
+ end
115
+
104
116
  if @private_summary == 'Closed'
105
117
  if not @public_summary.nil?
106
118
  raise ValidationError.new(self), 'invalid public summary for a closed event'
@@ -13,8 +13,6 @@ class Schedule
13
13
  ICAL_PRIVATE_PATH = 'ical/camphor_private_events.ics'
14
14
  JSON_PUBLIC_PATH = 'json/camphor_public_events.json'
15
15
  JSON_PRIVATE_PATH = 'json/camphor_private_events.json'
16
- JSONP_PUBLIC_PATH = 'jsonp/camphor_public_events.js'
17
- JSONP_PRIVATE_PATH = 'jsonp/camphor_private_events.js'
18
16
  JSON_SCHEMA_PATH = File.expand_path('../schema.json', __FILE__)
19
17
 
20
18
  def initialize
@@ -64,16 +62,6 @@ class Schedule
64
62
  end
65
63
  end
66
64
 
67
- # Output private and public JSONP calendar files
68
- def out_jsonp(callback = 'callback')
69
- File.open(JSONP_PUBLIC_PATH, 'w') do |f|
70
- f.write("#{callback}(#{events_to_json(public_events, :public)});")
71
- end
72
- File.open(JSONP_PRIVATE_PATH, 'w') do |f|
73
- f.write("#{callback}(#{events_to_json(private_events, :private)});")
74
- end
75
- end
76
-
77
65
  # Output master file
78
66
  def out_master
79
67
  CSV.open(
@@ -88,6 +76,10 @@ class Schedule
88
76
  File.exists? file_path
89
77
  end
90
78
 
79
+ def sort_by_date!
80
+ @events.sort_by! { |e| [e.start, e.end] }
81
+ end
82
+
91
83
  private
92
84
 
93
85
  def file_path
@@ -1,3 +1,3 @@
1
1
  module Hanreki
2
- VERSION = '2.0.0'
2
+ VERSION = '4.3.0'
3
3
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanreki
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CAMPHOR-
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-21 00:00:00.000000000 Z
11
+ date: 2021-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.19'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0.19'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: icalendar
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -58,28 +64,28 @@ dependencies:
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.12'
67
+ version: '2.1'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.12'
74
+ version: '2.1'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rake
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '12.0'
81
+ version: '13.0'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '12.0'
88
+ version: '13.0'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: rspec
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -135,8 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
141
  - !ruby/object:Gem::Version
136
142
  version: '0'
137
143
  requirements: []
138
- rubyforge_project:
139
- rubygems_version: 2.6.8
144
+ rubygems_version: 3.0.3
140
145
  signing_key:
141
146
  specification_version: 4
142
147
  summary: Simple schedule manager for CAMPHOR-