mhc 1.0.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.
Files changed (127) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +27 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +3 -0
  5. data/COPYRIGHT +28 -0
  6. data/Gemfile +8 -0
  7. data/README.org +209 -0
  8. data/Rakefile +13 -0
  9. data/bin/mhc +312 -0
  10. data/emacs/Cask +25 -0
  11. data/emacs/Makefile +58 -0
  12. data/emacs/mhc-calendar.el +1723 -0
  13. data/emacs/mhc-calfw.el +135 -0
  14. data/emacs/mhc-compat.el +90 -0
  15. data/emacs/mhc-date.el +642 -0
  16. data/emacs/mhc-day.el +149 -0
  17. data/emacs/mhc-db.el +158 -0
  18. data/emacs/mhc-draft.el +211 -0
  19. data/emacs/mhc-e21.el +167 -0
  20. data/emacs/mhc-face.el +236 -0
  21. data/emacs/mhc-file.el +224 -0
  22. data/emacs/mhc-guess.el +648 -0
  23. data/emacs/mhc-header.el +176 -0
  24. data/emacs/mhc-logic.el +563 -0
  25. data/emacs/mhc-message.el +130 -0
  26. data/emacs/mhc-minibuf.el +466 -0
  27. data/emacs/mhc-misc.el +248 -0
  28. data/emacs/mhc-mua.el +260 -0
  29. data/emacs/mhc-parse.el +286 -0
  30. data/emacs/mhc-process.el +35 -0
  31. data/emacs/mhc-ps.el +1174 -0
  32. data/emacs/mhc-record.el +201 -0
  33. data/emacs/mhc-schedule.el +202 -0
  34. data/emacs/mhc-summary.el +763 -0
  35. data/emacs/mhc-sync.el +158 -0
  36. data/emacs/mhc-vars.el +149 -0
  37. data/emacs/mhc.el +1114 -0
  38. data/icons/Anniversary.xbm +6 -0
  39. data/icons/Anniversary.xpm +27 -0
  40. data/icons/Birthday.xbm +6 -0
  41. data/icons/Birthday.xpm +25 -0
  42. data/icons/Business.xbm +6 -0
  43. data/icons/Business.xpm +24 -0
  44. data/icons/CheckBox.xbm +6 -0
  45. data/icons/CheckBox.xpm +24 -0
  46. data/icons/CheckedBox.xbm +6 -0
  47. data/icons/CheckedBox.xpm +25 -0
  48. data/icons/Conflict.xbm +6 -0
  49. data/icons/Conflict.xpm +22 -0
  50. data/icons/Date.xbm +6 -0
  51. data/icons/Date.xpm +29 -0
  52. data/icons/Holiday.xbm +6 -0
  53. data/icons/Holiday.xpm +25 -0
  54. data/icons/Link.xbm +6 -0
  55. data/icons/Link.xpm +25 -0
  56. data/icons/Other.xbm +6 -0
  57. data/icons/Other.xpm +28 -0
  58. data/icons/Party.xbm +6 -0
  59. data/icons/Party.xpm +23 -0
  60. data/icons/Private.xbm +6 -0
  61. data/icons/Private.xpm +26 -0
  62. data/icons/Recurrence.xbm +6 -0
  63. data/icons/Recurrence.xpm +98 -0
  64. data/icons/Vacation.xbm +6 -0
  65. data/icons/Vacation.xpm +26 -0
  66. data/lib/mhc.rb +45 -0
  67. data/lib/mhc/builder.rb +64 -0
  68. data/lib/mhc/caldav.rb +304 -0
  69. data/lib/mhc/calendar.rb +106 -0
  70. data/lib/mhc/command.rb +13 -0
  71. data/lib/mhc/command/cache.rb +14 -0
  72. data/lib/mhc/command/completions.rb +108 -0
  73. data/lib/mhc/command/init.rb +133 -0
  74. data/lib/mhc/command/scan.rb +33 -0
  75. data/lib/mhc/command/sync.rb +22 -0
  76. data/lib/mhc/config.rb +229 -0
  77. data/lib/mhc/converter.rb +330 -0
  78. data/lib/mhc/datastore.rb +164 -0
  79. data/lib/mhc/date_enumerator.rb +274 -0
  80. data/lib/mhc/date_frame.rb +124 -0
  81. data/lib/mhc/date_helper.rb +49 -0
  82. data/lib/mhc/etag.rb +68 -0
  83. data/lib/mhc/event.rb +396 -0
  84. data/lib/mhc/formatter.rb +312 -0
  85. data/lib/mhc/logger.rb +94 -0
  86. data/lib/mhc/modifier.rb +149 -0
  87. data/lib/mhc/occurrence.rb +94 -0
  88. data/lib/mhc/occurrence_enumerator.rb +113 -0
  89. data/lib/mhc/property_value.rb +33 -0
  90. data/lib/mhc/property_value/date.rb +190 -0
  91. data/lib/mhc/property_value/integer.rb +15 -0
  92. data/lib/mhc/property_value/list.rb +41 -0
  93. data/lib/mhc/property_value/period.rb +49 -0
  94. data/lib/mhc/property_value/range.rb +100 -0
  95. data/lib/mhc/property_value/recurrence_condition.rb +272 -0
  96. data/lib/mhc/property_value/text.rb +11 -0
  97. data/lib/mhc/property_value/time.rb +45 -0
  98. data/lib/mhc/query.rb +210 -0
  99. data/lib/mhc/sync.rb +46 -0
  100. data/lib/mhc/sync/driver.rb +108 -0
  101. data/lib/mhc/sync/status.rb +70 -0
  102. data/lib/mhc/sync/status_manager.rb +142 -0
  103. data/lib/mhc/sync/strategy.rb +233 -0
  104. data/lib/mhc/sync/syncinfo.rb +98 -0
  105. data/lib/mhc/templates/config.yml.erb +142 -0
  106. data/lib/mhc/version.rb +4 -0
  107. data/lib/mhc/webdav.rb +319 -0
  108. data/mhc.gemspec +24 -0
  109. data/samples/DOT.mhc-config.yml +116 -0
  110. data/samples/japanese-holidays.mhcc +153 -0
  111. data/samples/mhc-completions.zsh +11 -0
  112. data/spec/mhc_spec.rb +682 -0
  113. data/spec/spec_helper.rb +9 -0
  114. data/xpm/close.xpm +18 -0
  115. data/xpm/delete.xpm +19 -0
  116. data/xpm/exit.xpm +18 -0
  117. data/xpm/month.xpm +18 -0
  118. data/xpm/next.xpm +18 -0
  119. data/xpm/next2.xpm +18 -0
  120. data/xpm/next_year.xpm +18 -0
  121. data/xpm/open.xpm +19 -0
  122. data/xpm/prev.xpm +18 -0
  123. data/xpm/prev2.xpm +18 -0
  124. data/xpm/prev_year.xpm +18 -0
  125. data/xpm/save.xpm +19 -0
  126. data/xpm/today.xpm +18 -0
  127. metadata +214 -0
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'mhc'
3
+
4
+ class String
5
+ def strip_heredoc
6
+ indent = scan(/^[ \t]*(?=\S)/).min.size rescue 0
7
+ gsub(/^[ \t]{#{indent}}/, '')
8
+ end
9
+ end
data/xpm/close.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "25 10 2 1",
5
+ "* c Purple",
6
+ " c None",
7
+ /* pixels */
8
+ "**** ** ***** **** ****",
9
+ "**** ** ***** **** ****",
10
+ "** ** ** ** ** ** ",
11
+ "** ** ** ** ** ** ",
12
+ "** ** ** ** **** ****",
13
+ "** ** ** ** **** ****",
14
+ "** ** ** ** ** ** ",
15
+ "** ** ** ** ** ** ",
16
+ "**** **** ***** **** ****",
17
+ "**** **** ***** **** ****"
18
+ };
data/xpm/delete.xpm ADDED
@@ -0,0 +1,19 @@
1
+ /* XPM */
2
+ static char *delete[] = {
3
+ /* width height num_colors chars_per_pixel */
4
+ " 16 10 2 1",
5
+ /* colors */
6
+ ". c None",
7
+ "# c Red",
8
+ /* pixels */
9
+ "###....####.##..",
10
+ "####...####.##..",
11
+ "#####..##...##..",
12
+ "##.###.##...##..",
13
+ "##..##.####.##..",
14
+ "##..##.####.##..",
15
+ "##.###.##...##..",
16
+ "#####..##...##..",
17
+ "####...####.####",
18
+ "###....####.####"
19
+ };
data/xpm/exit.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "20 10 2 1",
5
+ "* c Purple",
6
+ " c None",
7
+ /* pixels */
8
+ "**** ** ** ** ****",
9
+ "**** ** ** ** ****",
10
+ "** ** ** ** ** ",
11
+ "** ** ** ** ** ",
12
+ "**** *** ** ** ",
13
+ "**** *** ** ** ",
14
+ "** ** ** ** ** ",
15
+ "** ** ** ** ** ",
16
+ "**** ** ** ** ** ",
17
+ "**** ** ** ** ** "
18
+ };
data/xpm/month.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ "* c Brown",
6
+ " c None",
7
+ /* pixels */
8
+ "******************",
9
+ "* *",
10
+ "* ** ** ** ** *",
11
+ "* ** ** ** ** *",
12
+ "* *",
13
+ "* ** ** ** ** *",
14
+ "* ** ** ** ** *",
15
+ "* *",
16
+ "* ** ** ** ** *",
17
+ "******************"
18
+ };
data/xpm/next.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ "* c Brown",
6
+ " c None",
7
+ /* pixels */
8
+ " ********* ",
9
+ " *********** ",
10
+ " ************* ",
11
+ " ***************",
12
+ " ************* ",
13
+ " *********** ",
14
+ " ********* ",
15
+ " ",
16
+ " ",
17
+ " ",
18
+ };
data/xpm/next2.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ "* c Blue",
6
+ " c None",
7
+ /* pixels */
8
+ " ********* ",
9
+ " *********** ",
10
+ "** ************* ",
11
+ "** ***************",
12
+ "** ************* ",
13
+ "** *********** ",
14
+ "** ********* ",
15
+ "** ",
16
+ "******** ",
17
+ "****** "
18
+ };
data/xpm/next_year.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char * next_year_xpm[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ /*US*/
6
+ " c None",
7
+ ". c Brown",
8
+ /* pixels */
9
+ " ... ... ",
10
+ " ..... ... ",
11
+ " ....... ... ",
12
+ " ......... ...",
13
+ " ....... ... ",
14
+ " ..... ... ",
15
+ " ... ... ",
16
+ " ",
17
+ " ",
18
+ " "};
data/xpm/open.xpm ADDED
@@ -0,0 +1,19 @@
1
+ /* XPM */
2
+ static char *open[] = {
3
+ /* width height num_colors chars_per_pixel */
4
+ " 15 10 2 1",
5
+ /* colors */
6
+ ". c None",
7
+ "* c Red",
8
+ /* pixels */
9
+ " * *****",
10
+ " ***** *****",
11
+ " ******* *****",
12
+ "** * ** *****",
13
+ "** * ** *****",
14
+ "** ***** *****",
15
+ "** ** * *",
16
+ "** ** ** **",
17
+ " ******* *** ",
18
+ " ***** * "
19
+ };
data/xpm/prev.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ "* c Brown",
6
+ " c None",
7
+ /* pixels */
8
+ " ********* ",
9
+ " *********** ",
10
+ " ************* ",
11
+ "*************** ",
12
+ " ************* ",
13
+ " *********** ",
14
+ " ********* ",
15
+ " ",
16
+ " ",
17
+ " "
18
+ };
data/xpm/prev2.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ "* c Blue",
6
+ " c None",
7
+ /* pixels */
8
+ " ********* ",
9
+ " *********** ",
10
+ " ************* **",
11
+ "*************** **",
12
+ " ************* **",
13
+ " *********** **",
14
+ " ********* **",
15
+ " **",
16
+ " ********",
17
+ " ******"
18
+ };
data/xpm/prev_year.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char * prev_year_xpm[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "18 10 2 1",
5
+ /*US*/
6
+ " c None",
7
+ ". c Brown",
8
+ /* pixels */
9
+ " ... ... ",
10
+ " ... ..... ",
11
+ " ... ....... ",
12
+ "... ......... ",
13
+ " ... ....... ",
14
+ " ... ..... ",
15
+ " ... ... ",
16
+ " ",
17
+ " ",
18
+ " "};
data/xpm/save.xpm ADDED
@@ -0,0 +1,19 @@
1
+ /* XPM */
2
+ static char *save[] = {
3
+ /* width height num_colors chars_per_pixel */
4
+ " 23 10 2 1",
5
+ /* colors */
6
+ "* c Black",
7
+ " c None",
8
+ /* pixels */
9
+ "**** ****** ** ** ****",
10
+ "**** ****** ** ** ****",
11
+ "** ** ** ** ** ** ",
12
+ "** ** ** ** ** ** ",
13
+ "**** ****** ** ** ****",
14
+ "**** ****** ** ** ****",
15
+ " ** ****** ** ** ** ",
16
+ " ** ** ** ****** ** ",
17
+ "**** ** ** **** ****",
18
+ "**** ** ** ** ****"
19
+ };
data/xpm/today.xpm ADDED
@@ -0,0 +1,18 @@
1
+ /* XPM */
2
+ static char *magick[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "20 10 2 1",
5
+ " c None",
6
+ "* c Black",
7
+ /* pixels */
8
+ " *************** ",
9
+ " *****************",
10
+ " *****************",
11
+ " ***** ****",
12
+ "*********** ****",
13
+ " ********* ****",
14
+ " ******* ****",
15
+ " ***** *********",
16
+ " *** *********",
17
+ " * *********"
18
+ };
metadata ADDED
@@ -0,0 +1,214 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mhc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Yoshinari Nomura
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Message Harmonized Calendaring.
56
+ email:
57
+ - nom@quickhack.net
58
+ executables:
59
+ - mhc
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".rspec"
65
+ - ".travis.yml"
66
+ - COPYRIGHT
67
+ - Gemfile
68
+ - README.org
69
+ - Rakefile
70
+ - bin/mhc
71
+ - emacs/Cask
72
+ - emacs/Makefile
73
+ - emacs/mhc-calendar.el
74
+ - emacs/mhc-calfw.el
75
+ - emacs/mhc-compat.el
76
+ - emacs/mhc-date.el
77
+ - emacs/mhc-day.el
78
+ - emacs/mhc-db.el
79
+ - emacs/mhc-draft.el
80
+ - emacs/mhc-e21.el
81
+ - emacs/mhc-face.el
82
+ - emacs/mhc-file.el
83
+ - emacs/mhc-guess.el
84
+ - emacs/mhc-header.el
85
+ - emacs/mhc-logic.el
86
+ - emacs/mhc-message.el
87
+ - emacs/mhc-minibuf.el
88
+ - emacs/mhc-misc.el
89
+ - emacs/mhc-mua.el
90
+ - emacs/mhc-parse.el
91
+ - emacs/mhc-process.el
92
+ - emacs/mhc-ps.el
93
+ - emacs/mhc-record.el
94
+ - emacs/mhc-schedule.el
95
+ - emacs/mhc-summary.el
96
+ - emacs/mhc-sync.el
97
+ - emacs/mhc-vars.el
98
+ - emacs/mhc.el
99
+ - icons/Anniversary.xbm
100
+ - icons/Anniversary.xpm
101
+ - icons/Birthday.xbm
102
+ - icons/Birthday.xpm
103
+ - icons/Business.xbm
104
+ - icons/Business.xpm
105
+ - icons/CheckBox.xbm
106
+ - icons/CheckBox.xpm
107
+ - icons/CheckedBox.xbm
108
+ - icons/CheckedBox.xpm
109
+ - icons/Conflict.xbm
110
+ - icons/Conflict.xpm
111
+ - icons/Date.xbm
112
+ - icons/Date.xpm
113
+ - icons/Holiday.xbm
114
+ - icons/Holiday.xpm
115
+ - icons/Link.xbm
116
+ - icons/Link.xpm
117
+ - icons/Other.xbm
118
+ - icons/Other.xpm
119
+ - icons/Party.xbm
120
+ - icons/Party.xpm
121
+ - icons/Private.xbm
122
+ - icons/Private.xpm
123
+ - icons/Recurrence.xbm
124
+ - icons/Recurrence.xpm
125
+ - icons/Vacation.xbm
126
+ - icons/Vacation.xpm
127
+ - lib/mhc.rb
128
+ - lib/mhc/builder.rb
129
+ - lib/mhc/caldav.rb
130
+ - lib/mhc/calendar.rb
131
+ - lib/mhc/command.rb
132
+ - lib/mhc/command/cache.rb
133
+ - lib/mhc/command/completions.rb
134
+ - lib/mhc/command/init.rb
135
+ - lib/mhc/command/scan.rb
136
+ - lib/mhc/command/sync.rb
137
+ - lib/mhc/config.rb
138
+ - lib/mhc/converter.rb
139
+ - lib/mhc/datastore.rb
140
+ - lib/mhc/date_enumerator.rb
141
+ - lib/mhc/date_frame.rb
142
+ - lib/mhc/date_helper.rb
143
+ - lib/mhc/etag.rb
144
+ - lib/mhc/event.rb
145
+ - lib/mhc/formatter.rb
146
+ - lib/mhc/logger.rb
147
+ - lib/mhc/modifier.rb
148
+ - lib/mhc/occurrence.rb
149
+ - lib/mhc/occurrence_enumerator.rb
150
+ - lib/mhc/property_value.rb
151
+ - lib/mhc/property_value/date.rb
152
+ - lib/mhc/property_value/integer.rb
153
+ - lib/mhc/property_value/list.rb
154
+ - lib/mhc/property_value/period.rb
155
+ - lib/mhc/property_value/range.rb
156
+ - lib/mhc/property_value/recurrence_condition.rb
157
+ - lib/mhc/property_value/text.rb
158
+ - lib/mhc/property_value/time.rb
159
+ - lib/mhc/query.rb
160
+ - lib/mhc/sync.rb
161
+ - lib/mhc/sync/driver.rb
162
+ - lib/mhc/sync/status.rb
163
+ - lib/mhc/sync/status_manager.rb
164
+ - lib/mhc/sync/strategy.rb
165
+ - lib/mhc/sync/syncinfo.rb
166
+ - lib/mhc/templates/config.yml.erb
167
+ - lib/mhc/version.rb
168
+ - lib/mhc/webdav.rb
169
+ - mhc.gemspec
170
+ - samples/DOT.mhc-config.yml
171
+ - samples/japanese-holidays.mhcc
172
+ - samples/mhc-completions.zsh
173
+ - spec/mhc_spec.rb
174
+ - spec/spec_helper.rb
175
+ - xpm/close.xpm
176
+ - xpm/delete.xpm
177
+ - xpm/exit.xpm
178
+ - xpm/month.xpm
179
+ - xpm/next.xpm
180
+ - xpm/next2.xpm
181
+ - xpm/next_year.xpm
182
+ - xpm/open.xpm
183
+ - xpm/prev.xpm
184
+ - xpm/prev2.xpm
185
+ - xpm/prev_year.xpm
186
+ - xpm/save.xpm
187
+ - xpm/today.xpm
188
+ homepage: http://www.quickhack.net/mhc
189
+ licenses:
190
+ - BSD
191
+ metadata: {}
192
+ post_install_message:
193
+ rdoc_options: []
194
+ require_paths:
195
+ - lib
196
+ required_ruby_version: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ required_rubygems_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ requirements: []
207
+ rubyforge_project:
208
+ rubygems_version: 2.4.5
209
+ signing_key:
210
+ specification_version: 4
211
+ summary: Message Harmonized Calendaring
212
+ test_files:
213
+ - spec/mhc_spec.rb
214
+ - spec/spec_helper.rb