repeatable 0.5.0 → 1.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.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.git-blame-ignore-revs +13 -0
  3. data/.github/workflows/ci.yml +72 -0
  4. data/.gitignore +0 -1
  5. data/.rspec +0 -1
  6. data/.standard.yml +3 -0
  7. data/CHANGELOG.md +58 -3
  8. data/CODE_OF_CONDUCT.md +128 -0
  9. data/Gemfile +11 -3
  10. data/Gemfile.lock +95 -0
  11. data/README.md +49 -9
  12. data/Rakefile +9 -3
  13. data/lib/repeatable/conversions.rb +5 -1
  14. data/lib/repeatable/expression/base.rb +37 -11
  15. data/lib/repeatable/expression/biweekly.rb +14 -6
  16. data/lib/repeatable/expression/date.rb +11 -8
  17. data/lib/repeatable/expression/day_in_month.rb +11 -1
  18. data/lib/repeatable/expression/difference.rb +37 -0
  19. data/lib/repeatable/expression/exact_date.rb +21 -0
  20. data/lib/repeatable/expression/intersection.rb +9 -0
  21. data/lib/repeatable/expression/range_in_year.rb +39 -9
  22. data/lib/repeatable/expression/set.rb +15 -7
  23. data/lib/repeatable/expression/union.rb +9 -0
  24. data/lib/repeatable/expression/weekday.rb +4 -0
  25. data/lib/repeatable/expression/weekday_in_month.rb +35 -4
  26. data/lib/repeatable/expression.rb +1 -0
  27. data/lib/repeatable/last_date_of_month.rb +11 -0
  28. data/lib/repeatable/parse_error.rb +1 -0
  29. data/lib/repeatable/parser.rb +14 -2
  30. data/lib/repeatable/schedule.rb +23 -9
  31. data/lib/repeatable/types.rb +6 -0
  32. data/lib/repeatable/version.rb +2 -1
  33. data/lib/repeatable.rb +25 -19
  34. data/rbi/repeatable.rbi +310 -0
  35. data/repeatable.gemspec +15 -15
  36. data/sorbet/config +3 -0
  37. data/sorbet/rbi/gems/ast.rbi +49 -0
  38. data/sorbet/rbi/gems/coderay.rbi +285 -0
  39. data/sorbet/rbi/gems/commander.rbi +197 -0
  40. data/sorbet/rbi/gems/docile.rbi +36 -0
  41. data/sorbet/rbi/gems/highline.rbi +577 -0
  42. data/sorbet/rbi/gems/method_source.rbi +64 -0
  43. data/sorbet/rbi/gems/parallel.rbi +83 -0
  44. data/sorbet/rbi/gems/parlour.rbi +840 -0
  45. data/sorbet/rbi/gems/parser.rbi +1950 -0
  46. data/sorbet/rbi/gems/pry.rbi +1898 -0
  47. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  48. data/sorbet/rbi/gems/rake.rbi +646 -0
  49. data/sorbet/rbi/gems/regexp_parser.rbi +926 -0
  50. data/sorbet/rbi/gems/repeatable.rbi +13 -0
  51. data/sorbet/rbi/gems/rexml.rbi +583 -0
  52. data/sorbet/rbi/gems/rspec-core.rbi +1919 -0
  53. data/sorbet/rbi/gems/rspec-expectations.rbi +1150 -0
  54. data/sorbet/rbi/gems/rspec-mocks.rbi +1100 -0
  55. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  56. data/sorbet/rbi/gems/rspec.rbi +15 -0
  57. data/sorbet/rbi/gems/rubocop-ast.rbi +1356 -0
  58. data/sorbet/rbi/gems/rubocop-performance.rbi +487 -0
  59. data/sorbet/rbi/gems/rubocop.rbi +7923 -0
  60. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  61. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  62. data/sorbet/rbi/gems/simplecov.rbi +419 -0
  63. data/sorbet/rbi/gems/simplecov_json_formatter.rbi +47 -0
  64. data/sorbet/rbi/gems/standard.rbi +130 -0
  65. data/sorbet/rbi/gems/unicode-display_width.rbi +20 -0
  66. data/sorbet/rbi/hidden-definitions/errors.txt +4273 -0
  67. data/sorbet/rbi/hidden-definitions/hidden.rbi +9013 -0
  68. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  69. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  70. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +24 -0
  71. data/sorbet/rbi/sorbet-typed/lib/rubocop/>=1.8/rubocop.rbi +12 -0
  72. data/sorbet/rbi/sorbet-typed/lib/rubocop-performance/~>1.6/rubocop-performance.rbi +149 -0
  73. metadata +62 -45
  74. data/.travis.yml +0 -10
@@ -0,0 +1,310 @@
1
+ # typed: strong
2
+ module Repeatable
3
+ VERSION = "1.1.0"
4
+
5
+ module Conversions
6
+ extend T::Sig
7
+
8
+ sig { params(arg: Object).returns(::Date) }
9
+ def Date(arg); end
10
+ end
11
+
12
+ module LastDateOfMonth
13
+ extend T::Sig
14
+
15
+ sig { params(date: ::Date).returns(::Date) }
16
+ def last_date_of_month(date); end
17
+ end
18
+
19
+ class ParseError < StandardError
20
+ end
21
+
22
+ class Parser
23
+ extend T::Sig
24
+
25
+ sig { params(hash: T::Hash[T.any(String, Symbol), T.untyped]).void }
26
+ def initialize(hash); end
27
+
28
+ sig { params(hash: T::Hash[T.any(String, Symbol), T.untyped]).returns(Expression::Base) }
29
+ def self.call(hash); end
30
+
31
+ sig { returns(Expression::Base) }
32
+ def call; end
33
+
34
+ sig { returns(T.untyped) }
35
+ attr_reader :hash
36
+
37
+ sig { params(hash: T.untyped).returns(T.untyped) }
38
+ def build_expression(hash); end
39
+
40
+ sig { params(key: T.untyped, value: T.untyped).returns(T.untyped) }
41
+ def expression_for(key, value); end
42
+
43
+ sig { params(hash: T.untyped).returns(T.untyped) }
44
+ def symbolize_keys(hash); end
45
+
46
+ sig { params(string: T.untyped).returns(T.untyped) }
47
+ def expression_klass(string); end
48
+ end
49
+
50
+ class Schedule
51
+ extend T::Sig
52
+
53
+ sig { params(arg: Object).void }
54
+ def initialize(arg); end
55
+
56
+ sig { params(start_date: Object, end_date: Object).returns(T::Array[::Date]) }
57
+ def occurrences(start_date, end_date); end
58
+
59
+ sig { params(start_date: Object, include_start: T::Boolean, limit: Integer).returns(T.nilable(::Date)) }
60
+ def next_occurrence(start_date = Date.today, include_start: false, limit: 36525); end
61
+
62
+ sig { params(date: Object).returns(T::Boolean) }
63
+ def include?(date = Date.today); end
64
+
65
+ sig { returns(T::Hash[Symbol, T.any(Types::SymbolHash, T::Array[Types::SymbolHash])]) }
66
+ def to_h; end
67
+
68
+ sig { params(other: Object).returns(T::Boolean) }
69
+ def ==(other); end
70
+
71
+ sig { returns(Expression::Base) }
72
+ attr_reader :expression
73
+ end
74
+
75
+ module Types
76
+ SymbolHash = T.type_alias { T::Hash[Symbol, T.untyped] }
77
+ end
78
+
79
+ module Expression
80
+ class Base
81
+ abstract!
82
+
83
+ extend T::Sig
84
+ extend T::Helpers
85
+
86
+ sig { params(other: Object).returns(T::Boolean) }
87
+ def self.===(other); end
88
+
89
+ sig { abstract.params(date: ::Date).returns(T::Boolean) }
90
+ def include?(date); end
91
+
92
+ sig { returns(T::Hash[Symbol, T.any(Types::SymbolHash, T::Array[Types::SymbolHash])]) }
93
+ def to_h; end
94
+
95
+ sig { params(other: Expression::Base).returns(Expression::Union) }
96
+ def union(other); end
97
+
98
+ sig { params(other: Expression::Base).returns(Expression::Intersection) }
99
+ def intersection(other); end
100
+
101
+ sig { params(other: T.untyped).returns(Expression::Difference) }
102
+ def difference(other); end
103
+
104
+ sig { returns(Symbol) }
105
+ def hash_key; end
106
+
107
+ sig { abstract.returns(T.any(Types::SymbolHash, T::Array[Types::SymbolHash])) }
108
+ def hash_value; end
109
+ end
110
+
111
+ class Biweekly < Date
112
+ sig { params(weekday: Integer, start_after: Object).void }
113
+ def initialize(weekday:, start_after: ::Date.today); end
114
+
115
+ sig { override.params(date: ::Date).returns(T::Boolean) }
116
+ def include?(date); end
117
+
118
+ sig { returns(Integer) }
119
+ attr_reader :weekday
120
+
121
+ sig { returns(::Date) }
122
+ attr_reader :start_after
123
+
124
+ sig { returns(::Date) }
125
+ attr_reader :_first_occurrence
126
+
127
+ sig { returns(::Date) }
128
+ def find_first_occurrence; end
129
+ end
130
+
131
+ class Date < Base
132
+ abstract!
133
+
134
+ sig { params(other: Object).returns(T::Boolean) }
135
+ def ==(other); end
136
+
137
+ sig { returns(Integer) }
138
+ def hash; end
139
+
140
+ sig { returns(Types::SymbolHash) }
141
+ def attributes; end
142
+
143
+ sig { params(value: BasicObject).returns(T.untyped) }
144
+ def normalize_attribute_value(value); end
145
+ end
146
+
147
+ class DayInMonth < Date
148
+ include LastDateOfMonth
149
+
150
+ sig { params(day: Integer).void }
151
+ def initialize(day:); end
152
+
153
+ sig { override.params(date: ::Date).returns(T::Boolean) }
154
+ def include?(date); end
155
+
156
+ sig { returns(Integer) }
157
+ attr_reader :day
158
+ end
159
+
160
+ class Difference < Base
161
+ sig { params(included: Expression::Base, excluded: Expression::Base).void }
162
+ def initialize(included:, excluded:); end
163
+
164
+ sig { override.params(date: ::Date).returns(T::Boolean) }
165
+ def include?(date); end
166
+
167
+ sig { params(other: Object).returns(T::Boolean) }
168
+ def ==(other); end
169
+
170
+ sig { returns(Expression::Base) }
171
+ attr_reader :included
172
+
173
+ sig { returns(Expression::Base) }
174
+ attr_reader :excluded
175
+
176
+ sig { override.returns(Types::SymbolHash) }
177
+ def hash_value; end
178
+ end
179
+
180
+ class ExactDate < Date
181
+ sig { params(date: Object).void }
182
+ def initialize(date:); end
183
+
184
+ sig { override.params(other_date: ::Date).returns(T::Boolean) }
185
+ def include?(other_date); end
186
+
187
+ sig { returns(::Date) }
188
+ attr_reader :date
189
+ end
190
+
191
+ class Intersection < Set
192
+ sig { params(elements: T.any(Expression::Base, T::Array[Expression::Base])).void }
193
+ def initialize(*elements); end
194
+
195
+ sig { override.params(date: ::Date).returns(T::Boolean) }
196
+ def include?(date); end
197
+ end
198
+
199
+ class RangeInYear < Date
200
+ sig do
201
+ params(
202
+ start_month: Integer,
203
+ end_month: Integer,
204
+ start_day: Integer,
205
+ end_day: Integer
206
+ ).void
207
+ end
208
+ def initialize(start_month:, end_month: start_month, start_day: 0, end_day: 0); end
209
+
210
+ sig { override.params(date: ::Date).returns(T::Boolean) }
211
+ def include?(date); end
212
+
213
+ sig { returns(Integer) }
214
+ attr_reader :start_month
215
+
216
+ sig { returns(Integer) }
217
+ attr_reader :end_month
218
+
219
+ sig { returns(Integer) }
220
+ attr_reader :start_day
221
+
222
+ sig { returns(Integer) }
223
+ attr_reader :end_day
224
+
225
+ sig { params(date: ::Date).returns(T::Boolean) }
226
+ def months_include?(date); end
227
+
228
+ sig { params(date: ::Date).returns(T::Boolean) }
229
+ def start_month_include?(date); end
230
+
231
+ sig { params(date: ::Date).returns(T::Boolean) }
232
+ def end_month_include?(date); end
233
+
234
+ sig { override.returns(T::Hash[Symbol, Integer]) }
235
+ def hash_value; end
236
+ end
237
+
238
+ class Set < Base
239
+ abstract!
240
+
241
+ sig { returns(T::Array[Expression::Base]) }
242
+ attr_reader :elements
243
+
244
+ sig { params(elements: T.any(Expression::Base, T::Array[Expression::Base])).void }
245
+ def initialize(*elements); end
246
+
247
+ sig { params(element: T.untyped).returns(Repeatable::Expression::Set) }
248
+ def <<(element); end
249
+
250
+ sig { params(other: Object).returns(T::Boolean) }
251
+ def ==(other); end
252
+
253
+ sig { override.returns(T::Array[Types::SymbolHash]) }
254
+ def hash_value; end
255
+ end
256
+
257
+ class Union < Set
258
+ sig { params(elements: T.any(Expression::Base, T::Array[Expression::Base])).void }
259
+ def initialize(*elements); end
260
+
261
+ sig { override.params(date: ::Date).returns(T::Boolean) }
262
+ def include?(date); end
263
+ end
264
+
265
+ class Weekday < Date
266
+ sig { params(weekday: Integer).void }
267
+ def initialize(weekday:); end
268
+
269
+ sig { override.params(date: ::Date).returns(T::Boolean) }
270
+ def include?(date); end
271
+
272
+ sig { returns(Integer) }
273
+ attr_reader :weekday
274
+ end
275
+
276
+ class WeekdayInMonth < Date
277
+ include LastDateOfMonth
278
+
279
+ sig { params(weekday: Integer, count: Integer).void }
280
+ def initialize(weekday:, count:); end
281
+
282
+ sig { override.params(date: ::Date).returns(T::Boolean) }
283
+ def include?(date); end
284
+
285
+ sig { returns(Integer) }
286
+ attr_reader :weekday
287
+
288
+ sig { returns(Integer) }
289
+ attr_reader :count
290
+
291
+ sig { params(date: ::Date).returns(T::Boolean) }
292
+ def day_matches?(date); end
293
+
294
+ sig { params(date: ::Date).returns(T::Boolean) }
295
+ def week_matches?(date); end
296
+
297
+ sig { params(date: ::Date).returns(Integer) }
298
+ def week_from_beginning(date); end
299
+
300
+ sig { params(date: ::Date).returns(Integer) }
301
+ def week_from_end(date); end
302
+
303
+ sig { params(zero_indexed_day: Integer).returns(Integer) }
304
+ def week_in_month(zero_indexed_day); end
305
+
306
+ sig { returns(T::Boolean) }
307
+ def negative_count?; end
308
+ end
309
+ end
310
+ end
data/repeatable.gemspec CHANGED
@@ -1,22 +1,22 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("../lib", __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'repeatable/version'
3
+ require "repeatable/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'repeatable'
7
- spec.version = Repeatable::VERSION
8
- spec.authors = ['Mo Lawson']
9
- spec.email = ['mo@molawson.com']
6
+ spec.name = "repeatable"
7
+ spec.version = Repeatable::VERSION
8
+ spec.authors = ["Mo Lawson"]
9
+ spec.email = ["mo@molawson.com"]
10
10
 
11
- spec.summary = 'Describe recurring event schedules and calculate their occurrences'
12
- spec.description = "Ruby implementation of Martin Fowler's 'Recurring Events for Calendars' paper."
13
- spec.homepage = 'https://github.com/molawson/repeatable'
14
- spec.license = 'MIT'
11
+ spec.summary = "Describe recurring event schedules and calculate their occurrences"
12
+ spec.description = "Ruby implementation of Martin Fowler's 'Recurring Events for Calendars' paper."
13
+ spec.homepage = "https://github.com/molawson/repeatable"
14
+ spec.license = "MIT"
15
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
16
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
15
17
 
16
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.require_paths = ['lib']
18
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ spec.require_paths = ["lib"]
18
20
 
19
- spec.add_development_dependency 'bundler', '~> 1.6'
20
- spec.add_development_dependency 'rake', '~> 10.0'
21
- spec.add_development_dependency 'rspec', '~> 3.0'
21
+ spec.add_dependency "sorbet-runtime"
22
22
  end
data/sorbet/config ADDED
@@ -0,0 +1,3 @@
1
+ --dir
2
+ .
3
+ --ignore=/vendor/bundle
@@ -0,0 +1,49 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: strict
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/ast/all/ast.rbi
9
+ #
10
+ # ast-2.4.2
11
+
12
+ module AST
13
+ end
14
+ class AST::Node
15
+ def +(array); end
16
+ def <<(element); end
17
+ def ==(other); end
18
+ def append(element); end
19
+ def assign_properties(properties); end
20
+ def children; end
21
+ def clone; end
22
+ def concat(array); end
23
+ def deconstruct; end
24
+ def dup; end
25
+ def eql?(other); end
26
+ def fancy_type; end
27
+ def hash; end
28
+ def initialize(type, children = nil, properties = nil); end
29
+ def inspect(indent = nil); end
30
+ def original_dup; end
31
+ def to_a; end
32
+ def to_ast; end
33
+ def to_s(indent = nil); end
34
+ def to_sexp(indent = nil); end
35
+ def to_sexp_array; end
36
+ def type; end
37
+ def updated(type = nil, children = nil, properties = nil); end
38
+ end
39
+ class AST::Processor
40
+ include AST::Processor::Mixin
41
+ end
42
+ module AST::Processor::Mixin
43
+ def handler_missing(node); end
44
+ def process(node); end
45
+ def process_all(nodes); end
46
+ end
47
+ module AST::Sexp
48
+ def s(type, *children); end
49
+ end
@@ -0,0 +1,285 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: true
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/coderay/all/coderay.rbi
9
+ #
10
+ # coderay-1.1.3
11
+
12
+ module CodeRay
13
+ def self.coderay_path(*path); end
14
+ def self.encode(code, lang, format, options = nil); end
15
+ def self.encode_file(filename, format, options = nil); end
16
+ def self.encode_tokens(tokens, format, options = nil); end
17
+ def self.encoder(format, options = nil); end
18
+ def self.get_scanner_options(options); end
19
+ def self.highlight(code, lang, options = nil, format = nil); end
20
+ def self.highlight_file(filename, options = nil, format = nil); end
21
+ def self.scan(code, lang, options = nil, &block); end
22
+ def self.scan_file(filename, lang = nil, options = nil, &block); end
23
+ def self.scanner(lang, options = nil, &block); end
24
+ end
25
+ module CodeRay::FileType
26
+ def self.[](filename, read_shebang = nil); end
27
+ def self.fetch(filename, default = nil, read_shebang = nil); end
28
+ def self.type_from_shebang(filename); end
29
+ end
30
+ class CodeRay::FileType::UnknownFileType < Exception
31
+ end
32
+ class CodeRay::Tokens < Array
33
+ def begin_group(kind); end
34
+ def begin_line(kind); end
35
+ def count; end
36
+ def encode(encoder, options = nil); end
37
+ def end_group(kind); end
38
+ def end_line(kind); end
39
+ def method_missing(meth, options = nil); end
40
+ def scanner; end
41
+ def scanner=(arg0); end
42
+ def split_into_parts(*sizes); end
43
+ def text_token(*arg0); end
44
+ def to_s; end
45
+ def tokens(*arg0); end
46
+ end
47
+ class CodeRay::TokensProxy
48
+ def block; end
49
+ def block=(arg0); end
50
+ def each(*args, &blk); end
51
+ def encode(encoder, options = nil); end
52
+ def initialize(input, lang, options = nil, block = nil); end
53
+ def input; end
54
+ def input=(arg0); end
55
+ def lang; end
56
+ def lang=(arg0); end
57
+ def method_missing(method, *args, &blk); end
58
+ def options; end
59
+ def options=(arg0); end
60
+ def scanner; end
61
+ def tokens; end
62
+ end
63
+ module CodeRay::PluginHost
64
+ def [](id, *args, &blk); end
65
+ def all_plugins; end
66
+ def const_missing(const); end
67
+ def default(id = nil); end
68
+ def list; end
69
+ def load(id, *args, &blk); end
70
+ def load_all; end
71
+ def load_plugin_map; end
72
+ def make_plugin_hash; end
73
+ def map(hash); end
74
+ def path_to(plugin_id); end
75
+ def plugin_hash; end
76
+ def plugin_path(*args); end
77
+ def register(plugin, id); end
78
+ def self.extended(mod); end
79
+ def validate_id(id); end
80
+ end
81
+ class CodeRay::PluginHost::PluginNotFound < LoadError
82
+ end
83
+ class CodeRay::PluginHost::HostNotFound < LoadError
84
+ end
85
+ module CodeRay::Plugin
86
+ def aliases; end
87
+ def plugin_host(host = nil); end
88
+ def plugin_id; end
89
+ def register_for(id); end
90
+ def title(title = nil); end
91
+ end
92
+ module CodeRay::Scanners
93
+ extend CodeRay::PluginHost
94
+ end
95
+ class CodeRay::Scanners::Scanner < StringScanner
96
+ def binary_string; end
97
+ def column(pos = nil); end
98
+ def each(&block); end
99
+ def file_extension; end
100
+ def initialize(code = nil, options = nil); end
101
+ def lang; end
102
+ def line(pos = nil); end
103
+ def raise_inspect(message, tokens, state = nil, ambit = nil, backtrace = nil); end
104
+ def raise_inspect_arguments(message, tokens, state, ambit); end
105
+ def reset; end
106
+ def reset_instance; end
107
+ def scan_rest; end
108
+ def scan_tokens(tokens, options); end
109
+ def scanner_state_info(state); end
110
+ def self.encode_with_encoding(code, target_encoding); end
111
+ def self.encoding(name = nil); end
112
+ def self.file_extension(extension = nil); end
113
+ def self.guess_encoding(s); end
114
+ def self.lang; end
115
+ def self.normalize(code); end
116
+ def self.to_unix(code); end
117
+ def set_string_from_source(source); end
118
+ def set_tokens_from_options(options); end
119
+ def setup; end
120
+ def state; end
121
+ def state=(arg0); end
122
+ def string=(code); end
123
+ def tokenize(source = nil, options = nil); end
124
+ def tokens; end
125
+ def tokens_last(tokens, n); end
126
+ def tokens_size(tokens); end
127
+ extend CodeRay::Plugin
128
+ include Enumerable
129
+ end
130
+ class CodeRay::Scanners::Scanner::ScanError < StandardError
131
+ end
132
+ class CodeRay::WordList < Hash
133
+ def add(words, value = nil); end
134
+ def initialize(default = nil); end
135
+ end
136
+ class CodeRay::WordList::CaseIgnoring < CodeRay::WordList
137
+ def [](key); end
138
+ def []=(key, value); end
139
+ end
140
+ module CodeRay::Scanners::Java::BuiltinTypes
141
+ end
142
+ class CodeRay::Scanners::Java < CodeRay::Scanners::Scanner
143
+ def scan_tokens(encoder, options); end
144
+ end
145
+ class CodeRay::Scanners::Ruby < CodeRay::Scanners::Scanner
146
+ def interpreted_string_state; end
147
+ def scan_tokens(encoder, options); end
148
+ def setup; end
149
+ end
150
+ module CodeRay::Scanners::Ruby::Patterns
151
+ end
152
+ class Anonymous_Struct_1 < Struct
153
+ def delim; end
154
+ def delim=(_); end
155
+ def heredoc; end
156
+ def heredoc=(_); end
157
+ def interpreted; end
158
+ def interpreted=(_); end
159
+ def next_state; end
160
+ def next_state=(_); end
161
+ def opening_paren; end
162
+ def opening_paren=(_); end
163
+ def paren_depth; end
164
+ def paren_depth=(_); end
165
+ def pattern; end
166
+ def pattern=(_); end
167
+ def self.[](*arg0); end
168
+ def self.inspect; end
169
+ def self.members; end
170
+ def self.new(*arg0); end
171
+ def type; end
172
+ def type=(_); end
173
+ end
174
+ class CodeRay::Scanners::Ruby::StringState < Anonymous_Struct_1
175
+ def heredoc_pattern(delim, interpreted, indented); end
176
+ def initialize(kind, interpreted, delim, heredoc = nil); end
177
+ def self.simple_key_pattern(delim); end
178
+ end
179
+ module CodeRay::Encoders
180
+ extend CodeRay::PluginHost
181
+ end
182
+ class CodeRay::Encoders::Encoder
183
+ def <<(token); end
184
+ def begin_group(kind); end
185
+ def begin_line(kind); end
186
+ def compile(tokens, options = nil); end
187
+ def encode(code, lang, options = nil); end
188
+ def encode_tokens(tokens, options = nil); end
189
+ def end_group(kind); end
190
+ def end_line(kind); end
191
+ def file_extension; end
192
+ def finish(options); end
193
+ def get_output(options); end
194
+ def highlight(code, lang, options = nil); end
195
+ def initialize(options = nil); end
196
+ def options; end
197
+ def options=(arg0); end
198
+ def output(data); end
199
+ def scanner; end
200
+ def scanner=(arg0); end
201
+ def self.const_missing(sym); end
202
+ def self.file_extension; end
203
+ def setup(options); end
204
+ def text_token(text, kind); end
205
+ def token(content, kind); end
206
+ def tokens(tokens, options = nil); end
207
+ extend CodeRay::Plugin
208
+ end
209
+ class CodeRay::Encoders::HTML < CodeRay::Encoders::Encoder
210
+ def begin_group(kind); end
211
+ def begin_line(kind); end
212
+ def break_lines(text, style); end
213
+ def check_group_nesting(name, kind); end
214
+ def check_options!(options); end
215
+ def close_span; end
216
+ def css; end
217
+ def css_class_for_kinds(kinds); end
218
+ def end_group(kind); end
219
+ def end_line(kind); end
220
+ def finish(options); end
221
+ def make_span_for_kinds(method, hint); end
222
+ def self.make_html_escape_hash; end
223
+ def self.token_path_to_hint(hint, kinds); end
224
+ def setup(options); end
225
+ def style_for_kinds(kinds); end
226
+ def text_token(text, kind); end
227
+ end
228
+ module CodeRay::Encoders::HTML::Output
229
+ def apply_title!(title); end
230
+ def css; end
231
+ def css=(arg0); end
232
+ def self.extended(o); end
233
+ def self.make_stylesheet(css, in_tag = nil); end
234
+ def self.page_template_for_css(css); end
235
+ def stylesheet(in_tag = nil); end
236
+ def wrap!(element, *args); end
237
+ def wrap_in!(template); end
238
+ def wrapped_in; end
239
+ def wrapped_in=(arg0); end
240
+ def wrapped_in?(element); end
241
+ end
242
+ class CodeRay::Encoders::HTML::Output::Template < String
243
+ def apply(target, replacement); end
244
+ def self.wrap!(str, template, target); end
245
+ end
246
+ class CodeRay::Encoders::HTML::CSS
247
+ def get_style_for_css_classes(css_classes); end
248
+ def initialize(style = nil); end
249
+ def parse(stylesheet); end
250
+ def self.load_stylesheet(style = nil); end
251
+ def stylesheet; end
252
+ end
253
+ module CodeRay::Encoders::HTML::Numbering
254
+ def self.number!(output, mode = nil, options = nil); end
255
+ end
256
+ module CodeRay::Styles
257
+ extend CodeRay::PluginHost
258
+ end
259
+ class CodeRay::Styles::Style
260
+ extend CodeRay::Plugin
261
+ end
262
+ class CodeRay::Duo
263
+ def call(code, options = nil); end
264
+ def encode(code, options = nil); end
265
+ def encoder; end
266
+ def format; end
267
+ def format=(arg0); end
268
+ def highlight(code, options = nil); end
269
+ def initialize(lang = nil, format = nil, options = nil); end
270
+ def lang; end
271
+ def lang=(arg0); end
272
+ def options; end
273
+ def options=(arg0); end
274
+ def scanner; end
275
+ def self.[](*arg0); end
276
+ end
277
+ class CodeRay::Encoders::Terminal < CodeRay::Encoders::Encoder
278
+ def begin_group(kind); end
279
+ def begin_line(kind); end
280
+ def end_group(kind); end
281
+ def end_line(kind); end
282
+ def open_token(kind); end
283
+ def setup(options); end
284
+ def text_token(text, kind); end
285
+ end