{"action":"created","issue":{"url":"https://api.github.com/repos/omniscientjs/immstruct/issues/30","labels_url":"https://api.github.com/repos/omniscientjs/immstruct/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/omniscientjs/immstruct/issues/30/comments","events_url":"https://api.github.com/repos/omniscientjs/immstruct/issues/30/events","html_url":"https://github.com/omniscientjs/immstruct/pull/30","id":56732827,"number":30,"title":".reference() for neverending cursors","user":{"login":"torgeir","id":118202,"avatar_url":"https://avatars.githubusercontent.com/u/118202?v=3","gravatar_id":"","url":"https://api.github.com/users/torgeir","html_url":"https://github.com/torgeir","followers_url":"https://api.github.com/users/torgeir/followers","following_url":"https://api.github.com/users/torgeir/following{/other_user}","gists_url":"https://api.github.com/users/torgeir/gists{/gist_id}","starred_url":"https://api.github.com/users/torgeir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/torgeir/subscriptions","organizations_url":"https://api.github.com/users/torgeir/orgs","repos_url":"https://api.github.com/users/torgeir/repos","events_url":"https://api.github.com/users/torgeir/events{/privacy}","received_events_url":"https://api.github.com/users/torgeir/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":23,"created_at":"2015-02-05T21:31:52Z","updated_at":"2015-02-07T16:22:10Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/omniscientjs/immstruct/pulls/30","html_url":"https://github.com/omniscientjs/immstruct/pull/30","diff_url":"https://github.com/omniscientjs/immstruct/pull/30.diff","patch_url":"https://github.com/omniscientjs/immstruct/pull/30.patch"},"body":"A PR is easier for cooperation"},"comment":{"url":"https://api.github.com/repos/omniscientjs/immstruct/issues/comments/73370707","html_url":"https://github.com/omniscientjs/immstruct/pull/30#issuecomment-73370707","issue_url":"https://api.github.com/repos/omniscientjs/immstruct/issues/30","id":73370707,"user":{"login":"Dashed","id":139499,"avatar_url":"https://avatars.githubusercontent.com/u/139499?v=3","gravatar_id":"","url":"https://api.github.com/users/Dashed","html_url":"https://github.com/Dashed","followers_url":"https://api.github.com/users/Dashed/followers","following_url":"https://api.github.com/users/Dashed/following{/other_user}","gists_url":"https://api.github.com/users/Dashed/gists{/gist_id}","starred_url":"https://api.github.com/users/Dashed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dashed/subscriptions","organizations_url":"https://api.github.com/users/Dashed/orgs","repos_url":"https://api.github.com/users/Dashed/repos","events_url":"https://api.github.com/users/Dashed/events{/privacy}","received_events_url":"https://api.github.com/users/Dashed/received_events","type":"User","site_admin":false},"created_at":"2015-02-07T16:22:10Z","updated_at":"2015-02-07T16:22:10Z","body":"@skevy An EventEmitter is already used indirectly here: https://github.com/omniscientjs/immstruct/blob/8d7eba17e2ed19651f768ba58589b5915efdeeef/src/structure.js#L39-L44\r\n\r\nTo elaborate, `Structure.reference(keyPath)` is a more abstract concept wherein it creates and returns an everlasting cursor. An everlasting cursor holds a cursor of the same `keyPath` internally, and keeps that cursor fresh every time value at `keyPath` changes. Traditionally, cursors would become stale.\r\n\r\nWe add features to an everlasting cursor; such as observation. Through the everlasting cursor, we can 'observe' the internal cursor. That's why `.on` semantics (EventEmitter) isn't really used.\r\n\r\n"}}