Class: Teepee::Commander
- Inherits:
-
Object
- Object
- Teepee::Commander
- Defined in:
- lib/teepee/commander.rb
Direct Known Subclasses
Instance Method Summary collapse
- #%(*numbers) ⇒ Object
- #*(*numbers) ⇒ Object
- #**(*numbers) ⇒ Object
-
#+(*numbers) ⇒ Object
—————————————————————————-.
- #-(*numbers) ⇒ Object
- #/(*numbers) ⇒ Object
- #acos(number) ⇒ Object
- #acosh(number) ⇒ Object
- #asin(number) ⇒ Object
- #asinh(number) ⇒ Object
- #atan(number) ⇒ Object
- #atanh(number) ⇒ Object
- #b(expressions) ⇒ Object
- #backslash ⇒ Object
- #big(expressions) ⇒ Object
- #bookmarks_folder_id(id) ⇒ Object
- #br ⇒ Object
- #command_error(message) ⇒ Object
- #command_not_yet_implemented(command) ⇒ Object
- #cos(angle) ⇒ Object
- #cosh(number) ⇒ Object
- #degrees2radians(degrees) ⇒ Object
- #del(expressions) ⇒ Object
- #e ⇒ Object
- #ensure_numeric(number) ⇒ Object
- #erf(number) ⇒ Object
- #erfc(number) ⇒ Object
- #folder_id(id) ⇒ Object
- #forum_id(id) ⇒ Object
- #gamma(number) ⇒ Object
- #html_tag(tag, expressions) ⇒ Object
- #hypot(numbers) ⇒ Object
- #i ⇒ Object
- #id_command_handler(id, klass, singular = klass.to_s.camelcase_to_snakecase, plural = singular.pluralize, partial = "#{plural}/inline", view = "") ⇒ Object
- #it(expressions) ⇒ Object
- #ld(n) ⇒ Object
- #ldexp(fraction, exponent) ⇒ Object
- #left_brace ⇒ Object
- #lgamma(n) ⇒ Object
- #link_id(id) ⇒ Object
- #ln(number) ⇒ Object
- #log(base, number) ⇒ Object
- #log10(number) ⇒ Object
- #pi ⇒ Object
- #radians2degrees(radians) ⇒ Object
- #right_brace ⇒ Object
- #sin(angle) ⇒ Object
- #sinh(number) ⇒ Object
- #small(expressions) ⇒ Object
- #sqrt(number) ⇒ Object
- #sub(expressions) ⇒ Object
- #sup(expressions) ⇒ Object
- #tag_id(id) ⇒ Object
- #tan(angle) ⇒ Object
- #tanh(number) ⇒ Object
- #tb_href(target, string) ⇒ Object
- #tt(expressions) ⇒ Object
- #u(expressions) ⇒ Object
- #user(user) ⇒ Object
Instance Method Details
#%(*numbers) ⇒ Object
115 116 117 |
# File 'lib/teepee/commander.rb', line 115 def % *numbers ensure_numeric numbers.reduce :% end |
#*(*numbers) ⇒ Object
103 104 105 |
# File 'lib/teepee/commander.rb', line 103 def * *numbers ensure_numeric numbers.inject 1, :* end |
#**(*numbers) ⇒ Object
119 120 121 |
# File 'lib/teepee/commander.rb', line 119 def ** *numbers ensure_numeric numbers.reduce :** end |
#+(*numbers) ⇒ Object
91 92 93 |
# File 'lib/teepee/commander.rb', line 91 def + *numbers ensure_numeric numbers.inject 0, :+ end |
#-(*numbers) ⇒ Object
95 96 97 98 99 100 101 |
# File 'lib/teepee/commander.rb', line 95 def - *numbers if numbers.length == 1 ensure_numeric -numbers.first else ensure_numeric numbers.reduce :- end end |
#/(*numbers) ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/teepee/commander.rb', line 107 def / *numbers if numbers.length == 1 ensure_numeric 1 / numbers.first else ensure_numeric numbers.reduce :/ end end |
#acos(number) ⇒ Object
123 124 125 |
# File 'lib/teepee/commander.rb', line 123 def acos number ensure_numeric Math.acos number end |
#acosh(number) ⇒ Object
127 128 129 |
# File 'lib/teepee/commander.rb', line 127 def acosh number ensure_numeric Math.acosh number end |
#asin(number) ⇒ Object
131 132 133 |
# File 'lib/teepee/commander.rb', line 131 def asin number ensure_numeric Math.asin number end |
#asinh(number) ⇒ Object
135 136 137 |
# File 'lib/teepee/commander.rb', line 135 def asinh number ensure_numeric Math.asinh number end |
#atan(number) ⇒ Object
139 140 141 |
# File 'lib/teepee/commander.rb', line 139 def atan number ensure_numeric Math.atan number end |
#atanh(number) ⇒ Object
143 144 145 |
# File 'lib/teepee/commander.rb', line 143 def atanh number ensure_numeric Math.atanh number end |
#b(expressions) ⇒ Object
147 148 149 |
# File 'lib/teepee/commander.rb', line 147 def b expressions html_tag :b, expressions end |
#backslash ⇒ Object
151 152 153 |
# File 'lib/teepee/commander.rb', line 151 def backslash "\\" end |
#big(expressions) ⇒ Object
155 156 157 |
# File 'lib/teepee/commander.rb', line 155 def big expressions html_tag :big, expressions end |
#bookmarks_folder_id(id) ⇒ Object
159 160 161 |
# File 'lib/teepee/commander.rb', line 159 def bookmarks_folder_id id id_command_handler id, :Folder, "folder", "folders", "folders/bookmarks_inline", "bookmarks" end |
#br ⇒ Object
163 164 165 |
# File 'lib/teepee/commander.rb', line 163 def br "\n</br>\n" end |
#command_error(message) ⇒ Object
48 49 50 |
# File 'lib/teepee/commander.rb', line 48 def command_error %{<span style="color: red">[#{}]</span>} end |
#command_not_yet_implemented(command) ⇒ Object
52 53 54 |
# File 'lib/teepee/commander.rb', line 52 def command_not_yet_implemented command command_error "The command #{command} is not yet implemented." end |
#cos(angle) ⇒ Object
167 168 169 |
# File 'lib/teepee/commander.rb', line 167 def cos angle ensure_numeric Math.cos angle end |
#cosh(number) ⇒ Object
171 172 173 |
# File 'lib/teepee/commander.rb', line 171 def cosh number ensure_numeric Math.cosh number end |
#degrees2radians(degrees) ⇒ Object
175 176 177 |
# File 'lib/teepee/commander.rb', line 175 def degrees2radians degrees ensure_numeric degrees * Math::PI / 180.0 end |
#del(expressions) ⇒ Object
179 180 181 |
# File 'lib/teepee/commander.rb', line 179 def del expressions html_tag :del, expressions end |
#e ⇒ Object
183 184 185 |
# File 'lib/teepee/commander.rb', line 183 def e Math::E end |
#ensure_numeric(number) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/teepee/commander.rb', line 56 def ensure_numeric number if number.kind_of? Complex command_error "Complex numbers are not yet supported." elsif not number.kind_of? Numeric command_error "Non-numeric result." else number end end |
#erf(number) ⇒ Object
187 188 189 |
# File 'lib/teepee/commander.rb', line 187 def erf number ensure_numeric Math.erf number end |
#erfc(number) ⇒ Object
191 192 193 |
# File 'lib/teepee/commander.rb', line 191 def erfc number ensure_numeric Math.erfc number end |
#folder_id(id) ⇒ Object
195 196 197 |
# File 'lib/teepee/commander.rb', line 195 def folder_id id id_command_handler id, :Folder end |
#forum_id(id) ⇒ Object
199 200 201 |
# File 'lib/teepee/commander.rb', line 199 def forum_id id id_command_handler id, :Forum end |
#gamma(number) ⇒ Object
203 204 205 |
# File 'lib/teepee/commander.rb', line 203 def gamma number ensure_numeric Math.gamma number end |
#html_tag(tag, expressions) ⇒ Object
66 67 68 |
# File 'lib/teepee/commander.rb', line 66 def html_tag tag, expressions "<#{tag}>" + expressions.map(&:to_html).join + "</#{tag}>" end |
#hypot(numbers) ⇒ Object
215 216 217 |
# File 'lib/teepee/commander.rb', line 215 def hypot numbers ensure_numeric Math.sqrt numbers.map {|n| n**2} end |
#i ⇒ Object
207 208 209 |
# File 'lib/teepee/commander.rb', line 207 def i command_error "Complex numbers are not yet supported." end |
#id_command_handler(id, klass, singular = klass.to_s.camelcase_to_snakecase, plural = singular.pluralize, partial = "#{plural}/inline", view = "") ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/teepee/commander.rb', line 74 def id_command_handler(id, klass, singular = klass.to_s.camelcase_to_snakecase, plural = singular.pluralize, partial = "#{plural}/inline", view="") if not id command_error "#{singular}_id: error: no #{singular} ID specified" elsif not id.to_s =~ /\A[0-9]+\z/ command_error "#{singular}_id: error: invalid #{singular} ID specified" else tb_href "/#{plural}/#{id.to_s}/#{view}", "#{klass.to_s} ##{id.to_s}" end end |
#it(expressions) ⇒ Object
211 212 213 |
# File 'lib/teepee/commander.rb', line 211 def it expressions html_tag :i, expressions end |
#ld(n) ⇒ Object
219 220 221 |
# File 'lib/teepee/commander.rb', line 219 def ld n ensure_numeric Math.log2 n end |
#ldexp(fraction, exponent) ⇒ Object
223 224 225 |
# File 'lib/teepee/commander.rb', line 223 def ldexp fraction, exponent ensure_numeric Math.ldexp fraction, exponent end |
#left_brace ⇒ Object
227 228 229 |
# File 'lib/teepee/commander.rb', line 227 def left_brace "{" end |
#lgamma(n) ⇒ Object
231 232 233 |
# File 'lib/teepee/commander.rb', line 231 def lgamma n ensure_numeric Math::lgamma(n).first end |
#link_id(id) ⇒ Object
235 236 237 |
# File 'lib/teepee/commander.rb', line 235 def link_id id id_command_handler id, :Link end |
#ln(number) ⇒ Object
239 240 241 |
# File 'lib/teepee/commander.rb', line 239 def ln number ensure_numeric Math.log number end |
#log(base, number) ⇒ Object
243 244 245 246 247 248 249 250 |
# File 'lib/teepee/commander.rb', line 243 def log base, number if number.nil? number, base = base, number ensure_numeric Math.log number # default to natural logarithm else ensure_numeric Math.log number, base end end |
#log10(number) ⇒ Object
252 253 254 |
# File 'lib/teepee/commander.rb', line 252 def log10 number ensure_numeric Math.log10 number end |
#pi ⇒ Object
256 257 258 |
# File 'lib/teepee/commander.rb', line 256 def pi Math::PI end |
#radians2degrees(radians) ⇒ Object
260 261 262 |
# File 'lib/teepee/commander.rb', line 260 def radians2degrees radians ensure_numeric(radians * 180.0 / Math::PI) end |
#right_brace ⇒ Object
264 265 266 |
# File 'lib/teepee/commander.rb', line 264 def right_brace "}" end |
#sin(angle) ⇒ Object
268 269 270 |
# File 'lib/teepee/commander.rb', line 268 def sin angle ensure_numeric Math.sin angle end |
#sinh(number) ⇒ Object
272 273 274 |
# File 'lib/teepee/commander.rb', line 272 def sinh number ensure_numeric Math.sinh number end |
#small(expressions) ⇒ Object
276 277 278 |
# File 'lib/teepee/commander.rb', line 276 def small expressions html_tag :small, expressions end |
#sqrt(number) ⇒ Object
280 281 282 |
# File 'lib/teepee/commander.rb', line 280 def sqrt number ensure_numeric Math.sqrt number end |
#sub(expressions) ⇒ Object
284 285 286 |
# File 'lib/teepee/commander.rb', line 284 def sub expressions html_tag :sub, expressions end |
#sup(expressions) ⇒ Object
288 289 290 |
# File 'lib/teepee/commander.rb', line 288 def sup expressions html_tag :sup, expressions end |
#tag_id(id) ⇒ Object
292 293 294 |
# File 'lib/teepee/commander.rb', line 292 def tag_id id id_command_handler id, :Tag end |
#tan(angle) ⇒ Object
296 297 298 |
# File 'lib/teepee/commander.rb', line 296 def tan angle ensure_numeric Math.tan angle end |
#tanh(number) ⇒ Object
300 301 302 |
# File 'lib/teepee/commander.rb', line 300 def tanh number ensure_numeric Math.tanh number end |
#tb_href(target, string) ⇒ Object
70 71 72 |
# File 'lib/teepee/commander.rb', line 70 def tb_href target, string %{<a href="#{TB_COM}/#{target}">#{string}</a>} end |
#tt(expressions) ⇒ Object
304 305 306 |
# File 'lib/teepee/commander.rb', line 304 def tt expressions html_tag :tt, expressions end |
#u(expressions) ⇒ Object
308 309 310 |
# File 'lib/teepee/commander.rb', line 308 def u expressions html_tag :u, expressions end |
#user(user) ⇒ Object
312 313 314 315 316 317 318 |
# File 'lib/teepee/commander.rb', line 312 def user user if not user command_error "user: error: no user specified" else tb_href "users/#{user}", user.to_s end end |