{"action":"created","issue":{"url":"https://api.github.com/repos/Ellypse/Ellyb/issues/12","repository_url":"https://api.github.com/repos/Ellypse/Ellyb","labels_url":"https://api.github.com/repos/Ellypse/Ellyb/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/Ellypse/Ellyb/issues/12/comments","events_url":"https://api.github.com/repos/Ellypse/Ellyb/issues/12/events","html_url":"https://github.com/Ellypse/Ellyb/pull/12","id":303787778,"number":12,"title":"Merge TRP3 Function and String Interpolation Utilities","user":{"login":"Meorawr","id":287102,"avatar_url":"https://avatars3.githubusercontent.com/u/287102?v=4","gravatar_id":"","url":"https://api.github.com/users/Meorawr","html_url":"https://github.com/Meorawr","followers_url":"https://api.github.com/users/Meorawr/followers","following_url":"https://api.github.com/users/Meorawr/following{/other_user}","gists_url":"https://api.github.com/users/Meorawr/gists{/gist_id}","starred_url":"https://api.github.com/users/Meorawr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Meorawr/subscriptions","organizations_url":"https://api.github.com/users/Meorawr/orgs","repos_url":"https://api.github.com/users/Meorawr/repos","events_url":"https://api.github.com/users/Meorawr/events{/privacy}","received_events_url":"https://api.github.com/users/Meorawr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-03-09T10:07:49Z","updated_at":"2018-03-09T16:56:41Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/Ellypse/Ellyb/pulls/12","html_url":"https://github.com/Ellypse/Ellyb/pull/12","diff_url":"https://github.com/Ellypse/Ellyb/pull/12.diff","patch_url":"https://github.com/Ellypse/Ellyb/pull/12.patch"},"body":"Based off the `feature/pooled_class` branch due to the dependency upon that.\r\n\r\nThis adds `Strings.interpolate(formatString: string, replacements: table)` to provide a more powerful `string.format` that includes support for named replacements in the form `%KEY$specifier`.\r\n\r\n```lua\r\nlocal result = Strings.interpolate(\"Elsa is %ELSA_AGE$03d years old.\", { ELSA_AGE = 21 });\r\n-- Result: \"Elsa is 021 years old.\"\r\n```\r\n\r\nThere's also a new `Funcs` utility area for function utilities, right now there's just `Funcs.bind(fn: function, value: any)` which creates a closure that'll forward `value` to `fn` as the first argument, followed by the arguments to the closure itself.\r\n\r\n```lua\r\nlocal function praise(name)\r\n    print(name .. \" is the best damn Disney princess of all time.\");\r\nend\r\n\r\nlocal bound = Funcs.bind(praise, \"Elsa\");\r\nbound();\r\n-- Outputs: \"Elsa is the best damn Disney princess of all time.\"\r\n```"},"comment":{"url":"https://api.github.com/repos/Ellypse/Ellyb/issues/comments/371872611","html_url":"https://github.com/Ellypse/Ellyb/pull/12#issuecomment-371872611","issue_url":"https://api.github.com/repos/Ellypse/Ellyb/issues/12","id":371872611,"user":{"login":"Ellypse","id":9035119,"avatar_url":"https://avatars3.githubusercontent.com/u/9035119?v=4","gravatar_id":"","url":"https://api.github.com/users/Ellypse","html_url":"https://github.com/Ellypse","followers_url":"https://api.github.com/users/Ellypse/followers","following_url":"https://api.github.com/users/Ellypse/following{/other_user}","gists_url":"https://api.github.com/users/Ellypse/gists{/gist_id}","starred_url":"https://api.github.com/users/Ellypse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ellypse/subscriptions","organizations_url":"https://api.github.com/users/Ellypse/orgs","repos_url":"https://api.github.com/users/Ellypse/repos","events_url":"https://api.github.com/users/Ellypse/events{/privacy}","received_events_url":"https://api.github.com/users/Ellypse/received_events","type":"User","site_admin":false},"created_at":"2018-03-09T16:56:41Z","updated_at":"2018-03-09T16:56:41Z","author_association":"OWNER","body":"Open question: for now the library's modules have names like `ColorManager` instead of `ColorMgr` or `Strings` instead of `Str`. What do you think of having your `Funcs` module be called `Functions` (the name with an uppercase is not reserved)?"}}
{"actor":{"display_login":"Ellypse"}}