8000 GitHub - EC-TSJ/event
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

EC-TSJ/event

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event

Home Build Status Coverage Status Go Report Card

EN README

Event es una librería para gestionar los eventos.

GoDoc

Funciones Principales


type event struct {

	count  int
	name   string
	events map[string][]interface{}

}

Interface INodeEventTarget, y objeto NodeEventTarget con métodos:

  • NodeEventTarget(string) INodeEventTarget
  • On(string, interface{}) error
  • Once(string, interface{}) error
  • AddListener(string, interface{}) error
  • Emit(string, ...interface{}) error
  • EventNames() []string
  • RemoveListener(string, int)
  • RemoveAllListeners(...string)
  • Off(string, int)
  • ListenerCount(string) int

Interface IEventEmitter, y objeto EventEmitter con métodos:

  • EventEmitter(string) IEventEmitter
  • evento newListener
  • evento removeListener
  • On(string, interface{}) error
  • Once(string, interface{}) error
  • AddListener(string, interface{}) error
  • Emit(string, ...interface{}) error
  • Has(string) bool
  • EventNames() []string
  • RemoveListener(string)
  • RemoveEvent(...string)
  • Off(...string)
  • ListenerCount(string) int
  • GetMaxListeners() int
  • SetMaxListeners(int)
  • Listeners(string) []interface{}
  • PrependListener(string, interface{})

Objeto event, con métodos:

  • DefaultMaxListeners(i int)
  • GetEventListeners(d Dispatcher, eventName string) []TListener
  • ListenerId(d Dispatcher, eventName string) (lista []string)
  • ListenerCount(d Dispatcher, eventName string) int
  • SetMaxListeners(n int, dsp ...EventEmitter)

Interface IEventTarget, con métodos:

  • AddEventListener(string, interface{}, bool) error
  • DispatchEvent(string, ...interface{})
  • RemoveEventListener(string, int)

Interface IEvent y objeto Eventer, con métodos:

  • StopPropagation()
  • IsPropagationStopped() bool
  • Cancelable(bool)
  • PreventDefault()
  • DefaultPrevented() bool
  • ReturnValue() bool
  • Target() IEventTarget

Ejemplos

Ejemplo 1

type (
	Listener interface {
		Name() string
		Handle(e event.Eventer) error
	}
)

type (
	fooEvent struct {
		event.Event

		i, j int
	}

	fooListener struct {
		name string
	}
)

func NewFooEvent(i, j int) event.Eventer {
	fmt.Println("Hola 1")
	return &fooEvent{i: i, j: j}
}

func NewFooListener() Listener {
	return &fooListener{
		name: "my.foo.event",
	}
}

func (l *fooListener) Name() string {
	return l.name
}

func (l *fooListener) Handle(e event.Eventer) error {
	ev := e.(*fooEvent)
	ev.StopPropagation()

	fmt.Println("Fire", ev.i+ev.j)
	return nil
}

func main() {
	e := event.New()
	e.Once("my.event.name.1", func() error {
		fmt.Println("Fire event")
		return nil
	})

	e.On("my.event.name.2", func(text string) error {
		fmt.Println("Fire", text)
		return nil
	})

	e.On("my.event.name.2", func(text string) error {
		fmt.Println("Fire YPP", text)
		return nil
	})

	e.On("my.event.name.3", func(i, j int) error {
		fmt.Println("Fire", i+j)
		return nil
	})

	e.On("my.event.name.4", func(name string, params ...string) error {
		fmt.Println(name, params)
		return nil
	})

	fmt.Println(handler.ListenerCount("my.event.name.2"))
	fmt.Println(handler.ListenerCount("my.event.name.1"))
	fmt.Println(handler.GetMaxListeners())
	handler.SetMaxListeners(7)
	fmt.Println(handler.GetMaxListeners())
	newlistener := handler.Listeners("my.event.name.2")
	fmt.Println(newlistener)
	newlistener[0].(func(string) error)("Joer")


	e.Emit("my.event.name.1")                           // Print: Fire event
	e.Emit("my.event.name.1", "joder")                  // Print: Fire event
	e.Emit("my.event.name.2", "some event")             // Print: Fire some event
	e.Emit("my.event.name.3", 1, 2)                     // Print: Fire 3
	e.Emit("my.event.name.4", "params:", "a", "b", "c") // Print: params: [a b c]
	e.Emit("my.event.name.2", "some event")             // Print: Fire some event
	e.Emit("my.event.name.3", 1, 2)                     // Print: Fire 3
	e.Emit("my.event.name.4", "params:", "a", "b", "c") // Print: params: [a b c]
	fmt.Println(e.EventNames())

	collect := []Listener{
		NewFooListener(),
	}

	// Registration
	for _, l := range collect {
		e.On(l.Name(), l.Handle)
	}

	// Call
	e.Emit("my.foo.event", NewFooEvent(1, 2))
}
Ejemplo 2

	//event.Debug = true


	handler := event.New("Handler")

	handler.On("newListener", func(event, fn string) error {
		s := fmt.Sprintf("Evento: '%s', Listener: '%s'. Dado de ALTA.", event, fn)
		logr.Info(s)
		fmt.Println(s)
		return nil
	})

	handler.Once("my.event.name.1", func() error {
		fmt.Println("Fire event")
		return errors.New("mmm")
	})

	handler.On("my.event.name.2", func(text string) error {
		fmt.Println("Fire", text)
		return nil
	})

	handler.Once("my.event.name.2", func(text string) error {
		fmt.Println("Fire YEXY", text)
		return nil
	})

	handler.PrependListener("my.event.name.2", func(text string) error {
		fmt.Println("Fire TERCERA", text)
		return nil
	})

	handler.Once("my.event.name.2", func(text string) error {
		fmt.Println("Fire CUARTA", text)
		return nil
	})

	handler.On("my.event.name.3", func(i, j int) error {
		fmt.Println("Fire", i+j)
		return nil
	})

	handler.On("my.event.name.4", func(name string, params ...string) error {
		fmt.Println("Fire", name, params)
		return nil
	})

	handler.On("removeListener", func(fn string) error {
		s := fmt.Sprintf("Listener: '%s'. Dado de BAJA.", fn)
		logr.Info(s)
		fmt.Println(s)
		return nil
	})

	fmt.Println(handler.ListenersCount("my.event.name.2"))
	fmt.Println(handler.ListenersCount("my.event.name.1"))
	fmt.Println(handler.GetMaxListeners())
	handler.SetMaxListeners(7)
	fmt.Println(handler.GetMaxListeners())
	newlistener := handler.Listeners("my.event.name.2")
	fmt.Println(newlistener)
	newlistener[0].Fn.(func(string) error)("Joer")

	if handler.Has("my.event.name.1") {
		handler.Emit("my.event.name.1") // Print: Fire even and bye
	} // Print: Fire even)
	if handler.Has("my.event.name.1") {
		handler.Emit("my.event.name.1")
	}
	handler.Emit("my.event.name.1")
	handler.Emit("my.event.name.2", "ya some event")          // Print: Fire some event
	handler.Emit("my.event.name.3", 1, 2)                     // Print: Fire 3
	handler.Emit("my.event.name.4", "params:", "a", "b", "v") // Print: params: [a b c]
	fmt.Println(handler.EventNames())
	handler.RemoveEvent()
	handler = event.New("Handler")
	handler.Emit("__End__")
Ejemplo 3

type (
	Listener interface {
		Name() string
		Handle(event.Eventer) error
	}
)

type (
	fooEvent struct {
		event.Event

		i, j int
	}

	fooListener struct {
		name string
	}
)

func NewFooEvent(i, j int) event.Eventer {
	fmt.Println("FooEvent")
	return &fooEvent{i: i, j: j}
}

func NewFooListener() Listener {
	return &fooListener{
		name: "my.foo.event",
	}
}

func (l *fooListener) Name() string {
	return l.name
}

func (l *fooListener) Handle(e event.Eventer) error {
	ev := e.(*fooEvent)
	ev.Cancelable(true)
	if ev.PreventDefault() {
		return nil
	}
	//ev.StopPropagation()

	fmt.Println("Fire", ev.i+ev.j)
	return nil
}

func Handle(e event.Eventer) error {
	ev := e.(*fooEvent)
	//ev.StopPropagation()

	fmt.Println("LaHostia", ev.i+ev.j)
	return nil
}

func main() {
	handler := event.New("Handler")
	l := NewFooListener()
	handler.On(l.Name(), l.Handle)
	handler.On(l.Name(), Handle)
	handler.On(l.Name(), func(e event.Eventer) error {
		fmt.Print("Joder")
		return nil
	})

	// Call
	handler.Emit("my.foo.event", &fooEvent{i: 2, j: 5})
}
Ejemplo 4.

type (
	Listener interface {
		Name() string
		Handle(event.Eventer) error
	}
)

type (
	fooEvent struct {
		event.Event

		i, j int
	}

	fooListener struct {
		name string
	}
)


func (l *fooListener) Name() string {
	return l.name
}

func (l *fooListene
64FF
r) Handle(e event.Eventer) error {
	ev := e.(*fooEvent)
	//ev.StopPropagation()

	fmt.Println("Fire", ev.i+ev.j)
	return nil
}

func Handle(e event.Eventer) error {
	ev := e.(*fooEvent)

	fmt.Println("LaHostia", ev.i+ev.j)
	return nil
}

func main() {
	handler := event.New("Handler")
	l := &fooListener{name: "my.foo.event"}

	handler.On(l.Name(), l.Handle)
	handler.On(l.Name(), Handle)
	handler.On(l.Name(), func(e event.Eventer) error {
		fmt.Println("Joder")
		return nil
	})
	handler.On("Magnolia", func(e event.Eventer) error {
		fmt.Println("YAVA")
		return nil
	})

	kal := &fooEvent{i: 4, j: 6}
	kal.Cancelable(false)
	kal.PreventDefault()
	kk := &event.Event{}

	// Call
	handler.Emit("my.foo.event", kal)
	handler.Emit("my.foo.event", kk)
	handler.Emit("Magnolia", &fooEvent{i: 2, j: 5})

Notas

LICENSE

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0