{"action":"closed","issue":{"url":"https://api.github.com/repos/exercism/xruby/issues/530","repository_url":"https://api.github.com/repos/exercism/xruby","labels_url":"https://api.github.com/repos/exercism/xruby/issues/530/labels{/name}","comments_url":"https://api.github.com/repos/exercism/xruby/issues/530/comments","events_url":"https://api.github.com/repos/exercism/xruby/issues/530/events","html_url":"https://github.com/exercism/xruby/issues/530","id":198890979,"number":530,"title":"Add generator for \"say\"","user":{"login":"tommyschaefer","id":784253,"avatar_url":"https://avatars.githubusercontent.com/u/784253?v=3","gravatar_id":"","url":"https://api.github.com/users/tommyschaefer","html_url":"https://github.com/tommyschaefer","followers_url":"https://api.github.com/users/tommyschaefer/followers","following_url":"https://api.github.com/users/tommyschaefer/following{/other_user}","gists_url":"https://api.github.com/users/tommyschaefer/gists{/gist_id}","starred_url":"https://api.github.com/users/tommyschaefer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tommyschaefer/subscriptions","organizations_url":"https://api.github.com/users/tommyschaefer/orgs","repos_url":"https://api.github.com/users/tommyschaefer/repos","events_url":"https://api.github.com/users/tommyschaefer/events{/privacy}","received_events_url":"https://api.github.com/users/tommyschaefer/received_events","type":"User","site_admin":false},"labels":[{"id":355881612,"url":"https://api.github.com/repos/exercism/xruby/labels/good%20first%20patch","name":"good first patch","color":"159818","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/exercism/xruby/milestones/1","html_url":"https://github.com/exercism/xruby/milestone/1","labels_url":"https://api.github.com/repos/exercism/xruby/milestones/1/labels","id":2227899,"number":1,"title":"Test Generator","description":"","creator":{"login":"kotp","id":16747,"avatar_url":"https://avatars.githubusercontent.com/u/16747?v=3","gravatar_id":"","url":"https://api.github.com/users/kotp","html_url":"https://github.com/kotp","followers_url":"https://api.github.com/users/kotp/followers","following_url":"https://api.github.com/users/kotp/following{/other_user}","gists_url":"https://api.github.com/users/kotp/gists{/gist_id}","starred_url":"https://api.github.com/users/kotp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kotp/subscriptions","organizations_url":"https://api.github.com/users/kotp/orgs","repos_url":"https://api.github.com/users/kotp/repos","events_url":"https://api.github.com/users/kotp/events{/privacy}","received_events_url":"https://api.github.com/users/kotp/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":3,"state":"open","created_at":"2017-01-04T11:54:25Z","updated_at":"2017-02-12T21:29:09Z","due_on":"2017-01-31T08:00:00Z","closed_at":null},"comments":4,"created_at":"2017-01-05T07:14:58Z","updated_at":"2017-02-12T21:29:09Z","closed_at":"2017-02-12T21:29:09Z","body":"The exercise `say` should use generated tests (#396).\r\n\r\nCanonical data for this exercise has already been created in [exercism/x-common](https://github.com/exercism/x-common) and can be viewed [here](https://github.com/exercism/x-common/blob/master/exercises/say/canonical-data.json).\r\n\r\n`Say` does not currently use bookkeeping, so you will need to add a version file at `exercises/say/.meta/.version` and add the following to `exercises/say/example.rb`:\r\n\r\n```ruby\r\nmodule BookKeeping\r\n  VERSION = 1\r\nend\r\n```\r\n\r\nTo generate tests you will need to create a generator at `lib/say_cases.rb` and a template at `exercises/say/example.tt`.\r\n\r\nAll generators currently adhere to a common public interface, and must define the following three methods:\r\n\r\n- `test_name` - Returns the name of the test (i.e `test_one_equals_one`)\r\n- `workload` - Returns the main syntax for the test. This will vary depending on the test generator and its underlying implementation\r\n- `skipped` - Returns skip syntax (i.e. `skip` or `# skip`)\r\n\r\nThe `wordy` exercise can be used as an example while building this generator:\r\n- [Canonical Data](https://github.com/exercism/x-common/blob/master/exercises/wordy/canonical-data.json)\r\n- [Tests](https://github.com/exercism/xruby/blob/master/exercises/wordy/wordy_test.rb)\r\n- [Template](https://github.com/exercism/xruby/blob/master/exercises/wordy/example.tt)\r\n- [Generator](https://github.com/exercism/xruby/blob/master/lib/wordy_cases.rb)\r\n\r\nFor additional information on generated tests, consult the [Generated Test Suites](https://github.com/exercism/xruby/blob/master/README.md#generated-test-suites) section of the README.\r\n\r\nAs always, if you get stuck, let us know and we'll be happy to help! :smile:"}}
{"actor":{"display_login":"tommyschaefer"}}