hanreki 2.0.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
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-