Skip to content

Instantly share code, notes, and snippets.

def he = new Character {
name = "David"
hair = dark.as(theNight) + long + messy
shoulders = wide.as(aCar)
}
def excalibur = new Sword(giant, sharp, magical)
he.grab(excalibur)
class Golondrina
def energia=(unaEnergia)
@energia = unaEnergia;
end
def energia
@energia
end
def volar
@energia = @energia - 10
end
@pablitar
pablitar / join_point_metodos_accessor.rb
Created October 14, 2013 17:23
Porción de un framework de aspectos
require_relative '../src/join_point_metodos'
class JoinPointMetodosAccessor < JoinPointMetodos
def evaluar(metodo)
setter = Proc.new { |nombre| nombre + '=' }
getter = Proc.new { |nombre| nombre.delete('=') }
if is_setter(metodo.name.to_s)
self.esta_el_otro_accessor?(getter,metodo)
else
@pablitar
pablitar / mixins_test.rb
Created November 2, 2013 00:25
Un pequeño ejemplo de mixins, mínimamente funcional
module DynamicObject
def values
@values ||= {}
end
def method_missing(name,*args)
if name.to_s.end_with?('=')
self.assign_value(name.to_s[0..-2].to_sym,args[0])
else
def continuity(Character he, Object theNovel) {
at(storyTime.minus(aFew.days)) {
he {
read theNovel
putAside what: theNovel becauseOf: (1 to some).collect {
new BusinessConference(urgent: true)
}
}
}
/* @author: pablitar
* Based upon Continuity of the Parks by Julio Cortázar
* License: CC BY 4.0
*/
def continuity(Character he, Object theNovel) {
at(storyTime.minus(aFew.days)) {
he {
read theNovel
putAside what: theNovel becauseOf: (1 to some).collect {
import scala.util.Random
/**
* Created by pablitar on 17/05/16.
*/
//La aplicación de escritorio sería interesante que fuera una app de scala lisa y llana
object PewPewApp extends VainillaApp(new PewPewGame())
//Extender la superclase sería debido a que es probable que haya un ciclo de vida.
def entrenar(tablon: Tablon, criterio: (Equipo,Equipo) => Boolean): Equipo = {
def streamMision(equipoActual:Equipo, unTablon: Tablon):Stream[Mision] = {
equipoActual.elegirMision(unTablon, criterio) match {
case Some(m) =>
Stream.cons(m, streamMision(
m.realizarTareas(equipoActual).get, unTablon.sacarMision(m)))
case _ => Stream.empty
}
}
package ar.pablitar.random
import java.util.Random
import java.util.List
class RandomExamples {
static val random = new Random
package holascala
object ConsolaDeCafe {
abstract class ConPrecio {
def precio: Double
}
class Cafe extends ConPrecio {
def precio: Double = 10
}