{"action":"created","comment":{"url":"https://api.github.com/repos/stampit-org/stampit/pulls/comments/91928624","pull_request_review_id":12436696,"id":91928624,"diff_hunk":"@@ -275,6 +277,79 @@ MyStamp().clone().clone().clone().x === 42; // true\n ```\n \n \n+### stamp.composers(...args)\n+**(EXPERIMENTAL)**\n+\n+Take n functions or array(s) of functions and add the functions to the `deepConfiguration.composers` list of a new stamp. Creates new stamp. \n+* `@return {Object} stamp` The new stamp based on the original `this` stamp.\n+\n+Functions passed into `.composers()` are executed on the spot and every other time the new stamp or its derivatives are being composed. They are sort of a after-composition callbacks.\n+\n+If a composer function returns a stamp then it becomes the resulting stamp.\n+\n+Each function receives an options object with two properties:\n+```\n+{\n+  composables, // The list of composables being merged\n+  stamp        // The resulting stamp\n+}\n+```\n+\n+#### Examples\n+\n+Collect every composable the stamp was created from.\n+```js\n+const ComponentsMonitoring = stampit().composers(({stamp, composables}) => {\n+  const conf = stamp.compose.configuration || {};\n+  conf._wasComposedOf = _.uniq(composables.concat(conf._wasComposedOf));\n+  stamp.compose.configuration = conf;","path":"docs/API.md","position":45,"original_position":45,"commit_id":"96d0c9815d5e027907c01c68cf594b8428f800f0","original_commit_id":"faad5b68771b33edaf8c1dc87f6078edf320a310","user":{"login":"FredyC","id":1096340,"avatar_url":"https://avatars.githubusercontent.com/u/1096340?v=3","gravatar_id":"","url":"https://api.github.com/users/FredyC","html_url":"https://github.com/FredyC","followers_url":"https://api.github.com/users/FredyC/followers","following_url":"https://api.github.com/users/FredyC/following{/other_user}","gists_url":"https://api.github.com/users/FredyC/gists{/gist_id}","starred_url":"https://api.github.com/users/FredyC/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FredyC/subscriptions","organizations_url":"https://api.github.com/users/FredyC/orgs","repos_url":"https://api.github.com/users/FredyC/repos","events_url":"https://api.github.com/users/FredyC/events{/privacy}","received_events_url":"https://api.github.com/users/FredyC/received_events","type":"User","site_admin":false},"body":"> Below is the usage of our new infected compose. I would like to remind that Stamps are immutable. Every compose call creates a new Stamp.\r\n\r\nFrom your [Fun with stamps](https://medium.com/@koresar/fun-with-stamps-episode-8-tracking-and-overriding-composition-573aa85ba622#.bbn9swv1b) :)","created_at":"2016-12-12T11:24:24Z","updated_at":"2016-12-12T11:24:24Z","html_url":"https://github.com/stampit-org/stampit/pull/283#discussion_r91928624","pull_request_url":"https://api.github.com/repos/stampit-org/stampit/pulls/283","_links":{"self":{"href":"https://api.github.com/repos/stampit-org/stampit/pulls/comments/91928624"},"html":{"href":"https://github.com/stampit-org/stampit/pull/283#discussion_r91928624"},"pull_request":{"href":"https://api.github.com/repos/stampit-org/stampit/pulls/283"}}},"pull_request":{"url":"https://api.github.com/repos/stampit-org/stampit/pulls/283","id":97116054,"html_url":"https://github.com/stampit-org/stampit/pull/283","diff_url":"https://github.com/stampit-org/stampit/pull/283.diff","patch_url":"https://github.com/stampit-org/stampit/pull/283.patch","issue_url":"https://api.github.com/repos/stampit-org/stampit/issues/283","number":283,"state":"open","locked":false,"title":"Implement `composers` feature","user":{"login":"koresar","id":1622575,"avatar_url":"https://avatars.githubusercontent.com/u/1622575?v=3","gravatar_id":"","url":"https://api.github.com/users/koresar","html_url":"https://github.com/koresar","followers_url":"https://api.github.com/users/koresar/followers","following_url":"https://api.github.com/users/koresar/following{/other_user}","gists_url":"https://api.github.com/users/koresar/gists{/gist_id}","starred_url":"https://api.github.com/users/koresar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koresar/subscriptions","organizations_url":"https://api.github.com/users/koresar/orgs","repos_url":"https://api.github.com/users/koresar/repos","events_url":"https://api.github.com/users/koresar/events{/privacy}","received_events_url":"https://api.github.com/users/koresar/received_events","type":"User","site_admin":false},"body":"- Implement `composers` feature in a specs compatible way.\r\n- Move all internal function to the utils.js for simplicity.\r\n- Performance optimize object creation (create less closure objects)\r\n- Performance optimize composition (create less closure objects)","created_at":"2016-12-08T12:48:51Z","updated_at":"2016-12-12T11:24:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9ded87bb42400785ebdd554e314bbcc93ed9b9f6","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/stampit-org/stampit/pulls/283/commits","review_comments_url":"https://api.github.com/repos/stampit-org/stampit/pulls/283/comments","review_comment_url":"https://api.github.com/repos/stampit-org/stampit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/stampit-org/stampit/issues/283/comments","statuses_url":"https://api.github.com/repos/stampit-org/stampit/statuses/96d0c9815d5e027907c01c68cf594b8428f800f0","head":{"label":"stampit-org:composers","ref":"composers","sha":"96d0c9815d5e027907c01c68cf594b8428f800f0","user":{"login":"stampit-org","id":12635305,"avatar_url":"https://avatars.githubusercontent.com/u/12635305?v=3","gravatar_id":"","url":"https://api.github.com/users/stampit-org","html_url":"https://github.com/stampit-org","followers_url":"https://api.github.com/users/stampit-org/followers","following_url":"https://api.github.com/users/stampit-org/following{/other_user}","gists_url":"https://api.github.com/users/stampit-org/gists{/gist_id}","starred_url":"https://api.github.com/users/stampit-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stampit-org/subscriptions","organizations_url":"https://api.github.com/users/stampit-org/orgs","repos_url":"https://api.github.com/users/stampit-org/repos","events_url":"https://api.github.com/users/stampit-org/events{/privacy}","received_events_url":"https://api.github.com/users/stampit-org/received_events","type":"Organization","site_admin":false},"repo":{"id":8124664,"name":"stampit","full_name":"stampit-org/stampit","owner":{"login":"stampit-org","id":12635305,"avatar_url":"https://avatars.githubusercontent.com/u/12635305?v=3","gravatar_id":"","url":"https://api.github.com/users/stampit-org","html_url":"https://github.com/stampit-org","followers_url":"https://api.github.com/users/stampit-org/followers","following_url":"https://api.github.com/users/stampit-org/following{/other_user}","gists_url":"https://api.github.com/users/stampit-org/gists{/gist_id}","starred_url":"https://api.github.com/users/stampit-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stampit-org/subscriptions","organizations_url":"https://api.github.com/users/stampit-org/orgs","repos_url":"https://api.github.com/users/stampit-org/repos","events_url":"https://api.github.com/users/stampit-org/events{/privacy}","received_events_url":"https://api.github.com/users/stampit-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/stampit-org/stampit","description":"OOP is better with stamps: Composable object factories.","fork":false,"url":"https://api.github.com/repos/stampit-org/stampit","forks_url":"https://api.github.com/repos/stampit-org/stampit/forks","keys_url":"https://api.github.com/repos/stampit-org/stampit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stampit-org/stampit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stampit-org/stampit/teams","hooks_url":"https://api.github.com/repos/stampit-org/stampit/hooks","issue_events_url":"https://api.github.com/repos/stampit-org/stampit/issues/events{/number}","events_url":"https://api.github.com/repos/stampit-org/stampit/events","assignees_url":"https://api.github.com/repos/stampit-org/stampit/assignees{/user}","branches_url":"https://api.github.com/repos/stampit-org/stampit/branches{/branch}","tags_url":"https://api.github.com/repos/stampit-org/stampit/tags","blobs_url":"https://api.github.com/repos/stampit-org/stampit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stampit-org/stampit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stampit-org/stampit/git/refs{/sha}","trees_url":"https://api.github.com/repos/stampit-org/stampit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stampit-org/stampit/statuses/{sha}","languages_url":"https://api.github.com/repos/stampit-org/stampit/languages","stargazers_url":"https://api.github.com/repos/stampit-org/stampit/stargazers","contributors_url":"https://api.github.com/repos/stampit-org/stampit/contributors","subscribers_url":"https://api.github.com/repos/stampit-org/stampit/subscribers","subscription_url":"https://api.github.com/repos/stampit-org/stampit/subscription","commits_url":"https://api.github.com/repos/stampit-org/stampit/commits{/sha}","git_commits_url":"https://api.github.com/repos/stampit-org/stampit/git/commits{/sha}","comments_url":"https://api.github.com/repos/stampit-org/stampit/comments{/number}","issue_comment_url":"https://api.github.com/repos/stampit-org/stampit/issues/comments{/number}","contents_url":"https://api.github.com/repos/stampit-org/stampit/contents/{+path}","compare_url":"https://api.github.com/repos/stampit-org/stampit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stampit-org/stampit/merges","archive_url":"https://api.github.com/repos/stampit-org/stampit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stampit-org/stampit/downloads","issues_url":"https://api.github.com/repos/stampit-org/stampit/issues{/number}","pulls_url":"https://api.github.com/repos/stampit-org/stampit/pulls{/number}","milestones_url":"https://api.github.com/repos/stampit-org/stampit/milestones{/number}","notifications_url":"https://api.github.com/repos/stampit-org/stampit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stampit-org/stampit/labels{/name}","releases_url":"https://api.github.com/repos/stampit-org/stampit/releases{/id}","deployments_url":"https://api.github.com/repos/stampit-org/stampit/deployments","created_at":"2013-02-10T16:20:49Z","updated_at":"2016-12-12T10:35:09Z","pushed_at":"2016-12-12T11:11:31Z","git_url":"git://github.com/stampit-org/stampit.git","ssh_url":"git@github.com:stampit-org/stampit.git","clone_url":"https://github.com/stampit-org/stampit.git","svn_url":"https://github.com/stampit-org/stampit","homepage":"http://pjabook.com","size":1016,"stargazers_count":2241,"watchers_count":2241,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":96,"mirror_url":null,"open_issues_count":15,"forks":96,"open_issues":15,"watchers":2241,"default_branch":"master"}},"base":{"label":"stampit-org:master","ref":"master","sha":"725d68daa45481b75ff3d976e51a68431d88c719","user":{"login":"stampit-org","id":12635305,"avatar_url":"https://avatars.githubusercontent.com/u/12635305?v=3","gravatar_id":"","url":"https://api.github.com/users/stampit-org","html_url":"https://github.com/stampit-org","followers_url":"https://api.github.com/users/stampit-org/followers","following_url":"https://api.github.com/users/stampit-org/following{/other_user}","gists_url":"https://api.github.com/users/stampit-org/gists{/gist_id}","starred_url":"https://api.github.com/users/stampit-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stampit-org/subscriptions","organizations_url":"https://api.github.com/users/stampit-org/orgs","repos_url":"https://api.github.com/users/stampit-org/repos","events_url":"https://api.github.com/users/stampit-org/events{/privacy}","received_events_url":"https://api.github.com/users/stampit-org/received_events","type":"Organization","site_admin":false},"repo":{"id":8124664,"name":"stampit","full_name":"stampit-org/stampit","owner":{"login":"stampit-org","id":12635305,"avatar_url":"https://avatars.githubusercontent.com/u/12635305?v=3","gravatar_id":"","url":"https://api.github.com/users/stampit-org","html_url":"https://github.com/stampit-org","followers_url":"https://api.github.com/users/stampit-org/followers","following_url":"https://api.github.com/users/stampit-org/following{/other_user}","gists_url":"https://api.github.com/users/stampit-org/gists{/gist_id}","starred_url":"https://api.github.com/users/stampit-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stampit-org/subscriptions","organizations_url":"https://api.github.com/users/stampit-org/orgs","repos_url":"https://api.github.com/users/stampit-org/repos","events_url":"https://api.github.com/users/stampit-org/events{/privacy}","received_events_url":"https://api.github.com/users/stampit-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/stampit-org/stampit","description":"OOP is better with stamps: Composable object factories.","fork":false,"url":"https://api.github.com/repos/stampit-org/stampit","forks_url":"https://api.github.com/repos/stampit-org/stampit/forks","keys_url":"https://api.github.com/repos/stampit-org/stampit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stampit-org/stampit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stampit-org/stampit/teams","hooks_url":"https://api.github.com/repos/stampit-org/stampit/hooks","issue_events_url":"https://api.github.com/repos/stampit-org/stampit/issues/events{/number}","events_url":"https://api.github.com/repos/stampit-org/stampit/events","assignees_url":"https://api.github.com/repos/stampit-org/stampit/assignees{/user}","branches_url":"https://api.github.com/repos/stampit-org/stampit/branches{/branch}","tags_url":"https://api.github.com/repos/stampit-org/stampit/tags","blobs_url":"https://api.github.com/repos/stampit-org/stampit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stampit-org/stampit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stampit-org/stampit/git/refs{/sha}","trees_url":"https://api.github.com/repos/stampit-org/stampit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stampit-org/stampit/statuses/{sha}","languages_url":"https://api.github.com/repos/stampit-org/stampit/languages","stargazers_url":"https://api.github.com/repos/stampit-org/stampit/stargazers","contributors_url":"https://api.github.com/repos/stampit-org/stampit/contributors","subscribers_url":"https://api.github.com/repos/stampit-org/stampit/subscribers","subscription_url":"https://api.github.com/repos/stampit-org/stampit/subscription","commits_url":"https://api.github.com/repos/stampit-org/stampit/commits{/sha}","git_commits_url":"https://api.github.com/repos/stampit-org/stampit/git/commits{/sha}","comments_url":"https://api.github.com/repos/stampit-org/stampit/comments{/number}","issue_comment_url":"https://api.github.com/repos/stampit-org/stampit/issues/comments{/number}","contents_url":"https://api.github.com/repos/stampit-org/stampit/contents/{+path}","compare_url":"https://api.github.com/repos/stampit-org/stampit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stampit-org/stampit/merges","archive_url":"https://api.github.com/repos/stampit-org/stampit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stampit-org/stampit/downloads","issues_url":"https://api.github.com/repos/stampit-org/stampit/issues{/number}","pulls_url":"https://api.github.com/repos/stampit-org/stampit/pulls{/number}","milestones_url":"https://api.github.com/repos/stampit-org/stampit/milestones{/number}","notifications_url":"https://api.github.com/repos/stampit-org/stampit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stampit-org/stampit/labels{/name}","releases_url":"https://api.github.com/repos/stampit-org/stampit/releases{/id}","deployments_url":"https://api.github.com/repos/stampit-org/stampit/deployments","created_at":"2013-02-10T16:20:49Z","updated_at":"2016-12-12T10:35:09Z","pushed_at":"2016-12-12T11:11:31Z","git_url":"git://github.com/stampit-org/stampit.git","ssh_url":"git@github.com:stampit-org/stampit.git","clone_url":"https://github.com/stampit-org/stampit.git","svn_url":"https://github.com/stampit-org/stampit","homepage":"http://pjabook.com","size":1016,"stargazers_count":2241,"watchers_count":2241,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":96,"mirror_url":null,"open_issues_count":15,"forks":96,"open_issues":15,"watchers":2241,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/stampit-org/stampit/pulls/283"},"html":{"href":"https://github.com/stampit-org/stampit/pull/283"},"issue":{"href":"https://api.github.com/repos/stampit-org/stampit/issues/283"},"comments":{"href":"https://api.github.com/repos/stampit-org/stampit/issues/283/comments"},"review_comments":{"href":"https://api.github.com/repos/stampit-org/stampit/pulls/283/comments"},"review_comment":{"href":"https://api.github.com/repos/stampit-org/stampit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/stampit-org/stampit/pulls/283/commits"},"statuses":{"href":"https://api.github.com/repos/stampit-org/stampit/statuses/96d0c9815d5e027907c01c68cf594b8428f800f0"}}}}
{"actor":{"display_login":"FredyC"}}