Class: QImplicit
Overview
Copyright © 2010-2011 Jesse Sielaff
Constant Summary
Constants inherited
from Q_Object
Q_Object::Subclasses
Instance Method Summary
collapse
Methods inherited from Q_Object
class_name, #env, inherited, #initialize, method_added, method_names, #to_q, #to_qliteral, #value
Constructor Details
This class inherits a constructor from Q_Object
Instance Method Details
#all?(&block) ⇒ Boolean
7
8
9
10
11
12
13
|
# File 'lib/q-language/methods/implicit.rb', line 7
def all? (&block)
value.all? do |obj|
result = yield obj
break result if env::break?
result
end
end
|
#any?(&block) ⇒ Boolean
15
16
17
18
19
20
21
|
# File 'lib/q-language/methods/implicit.rb', line 15
def any? (&block)
value.any? do |obj|
result = yield obj
break result if env::break?
result
end
end
|
#array ⇒ Object
23
24
25
|
# File 'lib/q-language/methods/implicit.rb', line 23
def array
[]
end
|
#arrays(*every_array) ⇒ Object
27
28
29
|
# File 'lib/q-language/methods/implicit.rb', line 27
def arrays (*every_array)
every_array
end
|
#block(&block) ⇒ Object
31
32
33
|
# File 'lib/q-language/methods/implicit.rb', line 31
def block (&block)
block
end
|
#blocks(*every_block) ⇒ Object
35
36
37
|
# File 'lib/q-language/methods/implicit.rb', line 35
def blocks (*every_block)
every_block
end
|
#break_if(&block) ⇒ Object
39
40
41
42
43
44
45
46
|
# File 'lib/q-language/methods/implicit.rb', line 39
def break_if (&block)
if result = yield
env::break!
return nil
end
result
end
|
#break_unless(&block) ⇒ Object
48
49
50
51
52
53
54
55
|
# File 'lib/q-language/methods/implicit.rb', line 48
def break_unless (&block)
unless result = yield
env::break!
return nil
end
result
end
|
#class ⇒ Object
57
58
59
60
61
|
# File 'lib/q-language/methods/implicit.rb', line 57
def class
klass = Class.new
klass.send(:define_method, :to_q) { QDynamic.new(self) }
klass
end
|
#classes(*every_class) ⇒ Object
63
64
65
|
# File 'lib/q-language/methods/implicit.rb', line 63
def classes (*every_class)
every_class
end
|
#compact ⇒ Object
67
68
69
|
# File 'lib/q-language/methods/implicit.rb', line 67
def compact
value.compact
end
|
#compact! ⇒ Object
71
72
73
74
|
# File 'lib/q-language/methods/implicit.rb', line 71
def compact!
value.compact!
value.dup
end
|
#count(object) ⇒ Object
76
77
78
|
# File 'lib/q-language/methods/implicit.rb', line 76
def count (object)
value.count(object)
end
|
#count_by(&block) ⇒ Object
80
81
82
83
84
85
86
|
# File 'lib/q-language/methods/implicit.rb', line 80
def count_by (&block)
value.count do |obj|
result = yield obj
break result if env::break?
result
end
end
|
#def(token, &block) ⇒ Object
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/q-language/methods/implicit.rb', line 88
def def (token, &block)
env_object = env::object
env = self.env::replicate
env_object.define_singleton_method(:"__Q_#{token}__") do |object = nil|
env::frame(self) { block.call(object, env) }
end
env = self.env::replicate
env.max_nodes = self.env.max_method_nodes
env_object.define_singleton_method(token) do |object = nil|
begin
env::frame(self) { block.call(object, env) }
rescue Q_Environment::TooManyNodes
nil
end
end
env_object
end
|
#e ⇒ Object
110
111
112
|
# File 'lib/q-language/methods/implicit.rb', line 110
def e
Number.e
end
|
#each(&block) ⇒ Object
114
115
116
117
118
119
120
|
# File 'lib/q-language/methods/implicit.rb', line 114
def each (&block)
value.dup.each do |obj|
result = yield obj
break result if env::break?
result
end
end
|
#elect(*every_object, object) ⇒ Object
122
123
124
|
# File 'lib/q-language/methods/implicit.rb', line 122
def elect (*every_object, object)
object
end
|
#false ⇒ Object
126
127
128
|
# File 'lib/q-language/methods/implicit.rb', line 126
def false
false
end
|
#falses(*every_false) ⇒ Object
130
131
132
|
# File 'lib/q-language/methods/implicit.rb', line 130
def falses (*every_false)
every_false
end
|
#hash ⇒ Object
134
135
136
|
# File 'lib/q-language/methods/implicit.rb', line 134
def hash
{}
end
|
#hashes(*every_hash) ⇒ Object
138
139
140
|
# File 'lib/q-language/methods/implicit.rb', line 138
def hashes (*every_hash)
every_hash
end
|
#i ⇒ Object
142
143
144
|
# File 'lib/q-language/methods/implicit.rb', line 142
def i
Number.i
end
|
#jump_if(&block) ⇒ Object
146
147
148
149
150
151
152
153
|
# File 'lib/q-language/methods/implicit.rb', line 146
def jump_if (&block)
if result = yield
env::jump!
return nil
end
result
end
|
#jump_unless(&block) ⇒ Object
155
156
157
158
159
160
161
162
|
# File 'lib/q-language/methods/implicit.rb', line 155
def jump_unless (&block)
unless result = yield
env::jump!
return nil
end
result
end
|
#loop(&block) ⇒ Object
164
165
166
167
168
169
|
# File 'lib/q-language/methods/implicit.rb', line 164
def loop (&block)
begin
result = yield
return result if env::break?
end while true
end
|
#many?(&block) ⇒ Boolean
179
180
181
182
183
184
185
|
# File 'lib/q-language/methods/implicit.rb', line 179
def many? (&block)
value.count do |obj|
result = yield obj
return result if env::break?
result
end > 2
end
|
#map(&block) ⇒ Object
171
172
173
174
175
176
177
|
# File 'lib/q-language/methods/implicit.rb', line 171
def map (&block)
value.collect do |obj|
result = yield obj
return result if env::break?
result
end
end
|
#module ⇒ Object
187
188
189
|
# File 'lib/q-language/methods/implicit.rb', line 187
def module
Module.new
end
|
#modules(*every_module) ⇒ Object
191
192
193
|
# File 'lib/q-language/methods/implicit.rb', line 191
def modules (*every_module)
every_module
end
|
#nan ⇒ Object
195
196
197
|
# File 'lib/q-language/methods/implicit.rb', line 195
def nan
Number.nan
end
|
#neg_inf ⇒ Object
199
200
201
|
# File 'lib/q-language/methods/implicit.rb', line 199
def neg_inf
Number.neg_inf
end
|
#neg_one ⇒ Object
203
204
205
|
# File 'lib/q-language/methods/implicit.rb', line 203
def neg_one
-1
end
|
#new ⇒ Object
207
208
209
210
211
|
# File 'lib/q-language/methods/implicit.rb', line 207
def new
klass = Class.new
klass.send(:define_method, :to_q) { QDynamic.new(self) }
klass.new
end
|
#newline ⇒ Object
213
214
215
|
# File 'lib/q-language/methods/implicit.rb', line 213
def newline
?\n
end
|
#nil ⇒ Object
217
218
219
|
# File 'lib/q-language/methods/implicit.rb', line 217
def nil
nil
end
|
#nils(*every_nil) ⇒ Object
221
222
223
|
# File 'lib/q-language/methods/implicit.rb', line 221
def nils (*every_nil)
every_nil
end
|
#none?(&block) ⇒ Boolean
225
226
227
228
229
230
231
|
# File 'lib/q-language/methods/implicit.rb', line 225
def none? (&block)
value.none? do |obj|
result = yield obj
break result if env::break?
result
end
end
|
#now ⇒ Object
233
234
235
|
# File 'lib/q-language/methods/implicit.rb', line 233
def now
Time.now
end
|
#numbers(*every_number) ⇒ Object
237
238
239
|
# File 'lib/q-language/methods/implicit.rb', line 237
def numbers (*every_number)
every_number
end
|
#objects(*every_object) ⇒ Object
241
242
243
|
# File 'lib/q-language/methods/implicit.rb', line 241
def objects (*every_object)
every_object
end
|
#one ⇒ Object
245
246
247
|
# File 'lib/q-language/methods/implicit.rb', line 245
def one
1
end
|
#one?(&block) ⇒ Boolean
249
250
251
252
253
254
255
|
# File 'lib/q-language/methods/implicit.rb', line 249
def one? (&block)
value.one? do |obj|
result = yield obj
break result if env::break?
result
end
end
|
#pi ⇒ Object
257
258
259
|
# File 'lib/q-language/methods/implicit.rb', line 257
def pi
Number.pi
end
|
#pos_inf ⇒ Object
261
262
263
|
# File 'lib/q-language/methods/implicit.rb', line 261
def pos_inf
Number.pos_inf
end
|
#self ⇒ Object
265
266
267
|
# File 'lib/q-language/methods/implicit.rb', line 265
def self
env::self
end
|
#skip_a(object_1, object_2) ⇒ Object
269
270
271
|
# File 'lib/q-language/methods/implicit.rb', line 269
def skip_a (object_1, object_2)
object_2
end
|
#skip_b(object_1, object_2) ⇒ Object
273
274
275
|
# File 'lib/q-language/methods/implicit.rb', line 273
def skip_b (object_1, object_2)
object_1
end
|
#space ⇒ Object
277
278
279
|
# File 'lib/q-language/methods/implicit.rb', line 277
def space
' '
end
|
#string ⇒ Object
281
282
283
|
# File 'lib/q-language/methods/implicit.rb', line 281
def string
''
end
|
#strings(*every_string) ⇒ Object
285
286
287
|
# File 'lib/q-language/methods/implicit.rb', line 285
def strings (*every_string)
every_string
end
|
#tab ⇒ Object
289
290
291
|
# File 'lib/q-language/methods/implicit.rb', line 289
def tab
?\t
end
|
#three ⇒ Object
293
294
295
|
# File 'lib/q-language/methods/implicit.rb', line 293
def three
3
end
|
#times(*every_time) ⇒ Object
297
298
299
|
# File 'lib/q-language/methods/implicit.rb', line 297
def times (*every_time)
every_time
end
|
#tokens(*every_token) ⇒ Object
301
302
303
|
# File 'lib/q-language/methods/implicit.rb', line 301
def tokens (*every_token)
every_token
end
|
#true ⇒ Object
305
306
307
|
# File 'lib/q-language/methods/implicit.rb', line 305
def true
true
end
|
#trues(*every_true) ⇒ Object
309
310
311
|
# File 'lib/q-language/methods/implicit.rb', line 309
def trues (*every_true)
every_true
end
|
#two ⇒ Object
313
314
315
|
# File 'lib/q-language/methods/implicit.rb', line 313
def two
2
end
|
#uniq ⇒ Object
317
318
319
|
# File 'lib/q-language/methods/implicit.rb', line 317
def uniq
value.uniq
end
|
#uniq! ⇒ Object
321
322
323
324
|
# File 'lib/q-language/methods/implicit.rb', line 321
def uniq!
value.uniq!
value.dup
end
|
#unset ⇒ Object
326
327
328
|
# File 'lib/q-language/methods/implicit.rb', line 326
def unset
env::unset(env::last_assigned_variable)
end
|
#until(&block) ⇒ Object
330
331
332
333
334
|
# File 'lib/q-language/methods/implicit.rb', line 330
def until (&block)
until result = yield
return result if env::break?
end
end
|
#while(&block) ⇒ Object
336
337
338
339
340
|
# File 'lib/q-language/methods/implicit.rb', line 336
def while (&block)
while result = yield
return result if env::break?
end
end
|
#zero ⇒ Object
342
343
344
|
# File 'lib/q-language/methods/implicit.rb', line 342
def zero
0
end
|