{"action":"created","issue":{"url":"https://api.github.com/repos/fnando/i18n-js/issues/326","labels_url":"https://api.github.com/repos/fnando/i18n-js/issues/326/labels{/name}","comments_url":"https://api.github.com/repos/fnando/i18n-js/issues/326/comments","events_url":"https://api.github.com/repos/fnando/i18n-js/issues/326/events","html_url":"https://github.com/fnando/i18n-js/pull/326","id":75895676,"number":326,"title":"Refactor/configuration","user":{"login":"PikachuEXE","id":1018543,"avatar_url":"https://avatars.githubusercontent.com/u/1018543?v=3","gravatar_id":"","url":"https://api.github.com/users/PikachuEXE","html_url":"https://github.com/PikachuEXE","followers_url":"https://api.github.com/users/PikachuEXE/followers","following_url":"https://api.github.com/users/PikachuEXE/following{/other_user}","gists_url":"https://api.github.com/users/PikachuEXE/gists{/gist_id}","starred_url":"https://api.github.com/users/PikachuEXE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PikachuEXE/subscriptions","organizations_url":"https://api.github.com/users/PikachuEXE/orgs","repos_url":"https://api.github.com/users/PikachuEXE/repos","events_url":"https://api.github.com/users/PikachuEXE/events{/privacy}","received_events_url":"https://api.github.com/users/PikachuEXE/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/fnando/i18n-js/labels/kind/refactor","name":"kind/refactor","color":"fbca04"},{"url":"https://api.github.com/repos/fnando/i18n-js/labels/status/feedback%20required","name":"status/feedback required","color":"5319e7"}],"state":"open","locked":false,"assignee":{"login":"PikachuEXE","id":1018543,"avatar_url":"https://avatars.githubusercontent.com/u/1018543?v=3","gravatar_id":"","url":"https://api.github.com/users/PikachuEXE","html_url":"https://github.com/PikachuEXE","followers_url":"https://api.github.com/users/PikachuEXE/followers","following_url":"https://api.github.com/users/PikachuEXE/following{/other_user}","gists_url":"https://api.github.com/users/PikachuEXE/gists{/gist_id}","starred_url":"https://api.github.com/users/PikachuEXE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PikachuEXE/subscriptions","organizations_url":"https://api.github.com/users/PikachuEXE/orgs","repos_url":"https://api.github.com/users/PikachuEXE/repos","events_url":"https://api.github.com/users/PikachuEXE/events{/privacy}","received_events_url":"https://api.github.com/users/PikachuEXE/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/fnando/i18n-js/milestones/1","html_url":"https://github.com/fnando/i18n-js/milestones/3.0.0","labels_url":"https://api.github.com/repos/fnando/i18n-js/milestones/1/labels","id":610054,"number":1,"title":"3.0.0","description":"# Main Objectives\r\n- Make `rewrite` branch good for release","creator":{"login":"PikachuEXE","id":1018543,"avatar_url":"https://avatars.githubusercontent.com/u/1018543?v=3","gravatar_id":"","url":"https://api.github.com/users/PikachuEXE","html_url":"https://github.com/PikachuEXE","followers_url":"https://api.github.com/users/PikachuEXE/followers","following_url":"https://api.github.com/users/PikachuEXE/following{/other_user}","gists_url":"https://api.github.com/users/PikachuEXE/gists{/gist_id}","starred_url":"https://api.github.com/users/PikachuEXE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PikachuEXE/subscriptions","organizations_url":"https://api.github.com/users/PikachuEXE/orgs","repos_url":"https://api.github.com/users/PikachuEXE/repos","events_url":"https://api.github.com/users/PikachuEXE/events{/privacy}","received_events_url":"https://api.github.com/users/PikachuEXE/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":8,"state":"open","created_at":"2014-03-26T02:39:12Z","updated_at":"2015-05-13T08:17:11Z","due_on":null,"closed_at":null},"comments":19,"created_at":"2015-05-13T08:17:11Z","updated_at":"2015-06-05T03:27:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/fnando/i18n-js/pulls/326","html_url":"https://github.com/fnando/i18n-js/pull/326","diff_url":"https://github.com/fnando/i18n-js/pull/326.diff","patch_url":"https://github.com/fnando/i18n-js/pull/326.patch"},"body":"# Background\r\n- Too many config related accessors attached to `I18n::JS`\r\n- Engine support is requested (#262)\r\n\r\n# Breaking changes\r\n- Configuring through YML replaced by pure Ruby way (for now, YML can be re-added later)\r\n- Configuration methods moved (they might be referenced already)\r\n\r\n# Why pure Ruby first not YML?\r\n- Had [a PR for support of ERB in YML file](https://github.com/fnando/i18n-js/pull/224)  \r\n  Meaning *some* people wants dynamic config generation  \r\n- Pure ruby way can support \"engine\" (or other gems trying to config this gem)  \r\n  YML can also do that, but seems a bit complex (See #295)  \r\n- Usage of special ruby objects, like `Regexp`, is easier in Ruby  \r\n  Also if there is a config to support  \r\n- YML is good for static deep nested structure data, like locales  \r\n  The most deep nested key in this gem's config is `translations`  \r\n  Meaning the current config structure is not very deep nested, less need for YML  \r\n  \r\n\r\n# TODO\r\n- [x] Extract configuration into a separate class\r\n- [x] Make the gem configurable with Pure Ruby\r\n- [ ] Rename some config options\r\n- [ ] Provide YAML support (for backward compatibility)\r\n- [ ] Wait for response (loop)\r\n- [ ] Update doc\r\n- [ ] Update CHANGELOG\r\n\r\n# Config options to be checked for renaming\r\n- [x] `export_i18n_js_dir_path` => `i18n_js_export_path`\r\n- [x] `sort_translation_keys`\r\n- [x] `fallbacks`\r\n- [ ] `translations`\r\n\r\n# Similar PR\r\n- #295 \r\n- #319 "},"comment":{"url":"https://api.github.com/repos/fnando/i18n-js/issues/comments/109153275","html_url":"https://github.com/fnando/i18n-js/pull/326#issuecomment-109153275","issue_url":"https://api.github.com/repos/fnando/i18n-js/issues/326","id":109153275,"user":{"login":"johnnyshields","id":27655,"avatar_url":"https://avatars.githubusercontent.com/u/27655?v=3","gravatar_id":"","url":"https://api.github.com/users/johnnyshields","html_url":"https://github.com/johnnyshields","followers_url":"https://api.github.com/users/johnnyshields/followers","following_url":"https://api.github.com/users/johnnyshields/following{/other_user}","gists_url":"https://api.github.com/users/johnnyshields/gists{/gist_id}","starred_url":"https://api.github.com/users/johnnyshields/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnnyshields/subscriptions","organizations_url":"https://api.github.com/users/johnnyshields/orgs","repos_url":"https://api.github.com/users/johnnyshields/repos","events_url":"https://api.github.com/users/johnnyshields/events{/privacy}","received_events_url":"https://api.github.com/users/johnnyshields/received_events","type":"User","site_admin":false},"created_at":"2015-06-05T03:27:56Z","updated_at":"2015-06-05T03:27:56Z","body":"about filtering logic, my PR here https://github.com/fnando/i18n-js/pull/319 was a first step to cleaning up all this logic--I think the first thing to do is to move it out of the `I18n::JS` module and into a new temporary module called `I18n::JS::Exporter`. We can then break the `Exporter` into even smaller classes."}}