{"action":"closed","number":34,"pull_request":{"url":"https://api.github.com/repos/Genki-S/ttnt/pulls/34","id":41647564,"html_url":"https://github.com/Genki-S/ttnt/pull/34","diff_url":"https://github.com/Genki-S/ttnt/pull/34.diff","patch_url":"https://github.com/Genki-S/ttnt/pull/34.patch","issue_url":"https://api.github.com/repos/Genki-S/ttnt/issues/34","number":34,"state":"closed","locked":false,"title":"Make storage file rakefile bound","user":{"login":"Genki-S","id":1609598,"avatar_url":"https://avatars.githubusercontent.com/u/1609598?v=3","gravatar_id":"","url":"https://api.github.com/users/Genki-S","html_url":"https://github.com/Genki-S","followers_url":"https://api.github.com/users/Genki-S/followers","following_url":"https://api.github.com/users/Genki-S/following{/other_user}","gists_url":"https://api.github.com/users/Genki-S/gists{/gist_id}","starred_url":"https://api.github.com/users/Genki-S/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Genki-S/subscriptions","organizations_url":"https://api.github.com/users/Genki-S/orgs","repos_url":"https://api.github.com/users/Genki-S/repos","events_url":"https://api.github.com/users/Genki-S/events{/privacy}","received_events_url":"https://api.github.com/users/Genki-S/received_events","type":"User","site_admin":false},"body":"Implementation of #32 \r\n\r\nI made `.ttnt` storage file resides along with `Rakefile`.\r\n\r\nhttps://github.com/Genki-S/ttnt/commit/2404ccdba91e9ba3723f29c85e0222ff44ed3112 introduces `TTNT.root_dir` method which points to the directory of nearest `Rakefile`, and use it for storage file name.\r\n\r\nI also changed paths in test-to-code mappings to start from `TTNT.root_dir`, so that irrelevant files from other gems in the same repository can be excluded from mappings. https://github.com/Genki-S/ttnt/commit/acdf4b877492d94d0256a05d841848bc3072eb38 (the use of `TTNT.root_dir` in `select_project_files` is the point)\r\n\r\nAnd as `.ttnt` can now resides not only in repository root but also in subdirectories, I had to change the logic of reading the contents of `.ttnt` from git history. I added a logic which walks through git tree searching `.ttnt` in subdirectories: https://github.com/Genki-S/ttnt/commit/15d5fa17a0277d6e164e0d3e44c4513ec52953ef\r\n\r\nFinally, I wrote integration test for changes in this PR (https://github.com/Genki-S/ttnt/commit/048c36561b2324087ab04cf0d05f67aa01c24ec6, https://github.com/Genki-S/ttnt/commit/08a07f03f3a5d686e58531db06cb55e298f77130).\r\n\r\n@robin850 could you review the code please?","created_at":"2015-08-05T06:39:53Z","updated_at":"2015-08-13T12:21:27Z","closed_at":"2015-08-13T12:21:27Z","merged_at":"2015-08-13T12:21:27Z","merge_commit_sha":"7cded63a103b8a90e6b7ef9466a4b4663e4fc474","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Genki-S/ttnt/pulls/34/commits","review_comments_url":"https://api.github.com/repos/Genki-S/ttnt/pulls/34/comments","review_comment_url":"https://api.github.com/repos/Genki-S/ttnt/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Genki-S/ttnt/issues/34/comments","statuses_url":"https://api.github.com/repos/Genki-S/ttnt/statuses/8d226b0acde3271b6ac712c3dae6c5c7e77c9b04","head":{"label":"Genki-S:make_storage_file_rakefile_bound","ref":"make_storage_file_rakefile_bound","sha":"8d226b0acde3271b6ac712c3dae6c5c7e77c9b04","user":{"login":"Genki-S","id":1609598,"avatar_url":"https://avatars.githubusercontent.com/u/1609598?v=3","gravatar_id":"","url":"https://api.github.com/users/Genki-S","html_url":"https://github.com/Genki-S","followers_url":"https://api.github.com/users/Genki-S/followers","following_url":"https://api.github.com/users/Genki-S/following{/other_user}","gists_url":"https://api.github.com/users/Genki-S/gists{/gist_id}","starred_url":"https://api.github.com/users/Genki-S/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Genki-S/subscriptions","organizations_url":"https://api.github.com/users/Genki-S/orgs","repos_url":"https://api.github.com/users/Genki-S/repos","events_url":"https://api.github.com/users/Genki-S/events{/privacy}","received_events_url":"https://api.github.com/users/Genki-S/received_events","type":"User","site_admin":false},"repo":{"id":36998728,"name":"ttnt","full_name":"Genki-S/ttnt","owner":{"login":"Genki-S","id":1609598,"avatar_url":"https://avatars.githubusercontent.com/u/1609598?v=3","gravatar_id":"","url":"https://api.github.com/users/Genki-S","html_url":"https://github.com/Genki-S","followers_url":"https://api.github.com/users/Genki-S/followers","following_url":"https://api.github.com/users/Genki-S/following{/other_user}","gists_url":"https://api.github.com/users/Genki-S/gists{/gist_id}","starred_url":"https://api.github.com/users/Genki-S/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Genki-S/subscriptions","organizations_url":"https://api.github.com/users/Genki-S/orgs","repos_url":"https://api.github.com/users/Genki-S/repos","events_url":"https://api.github.com/users/Genki-S/events{/privacy}","received_events_url":"https://api.github.com/users/Genki-S/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Genki-S/ttnt","description":"Test This, Not That! (Google Summer of Code 2015 project under Ruby on Rails)","fork":false,"url":"https://api.github.com/repos/Genki-S/ttnt","forks_url":"https://api.github.com/repos/Genki-S/ttnt/forks","keys_url":"https://api.github.com/repos/Genki-S/ttnt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Genki-S/ttnt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Genki-S/ttnt/teams","hooks_url":"https://api.github.com/repos/Genki-S/ttnt/hooks","issue_events_url":"https://api.github.com/repos/Genki-S/ttnt/issues/events{/number}","events_url":"https://api.github.com/repos/Genki-S/ttnt/events","assignees_url":"https://api.github.com/repos/Genki-S/ttnt/assignees{/user}","branches_url":"https://api.github.com/repos/Genki-S/ttnt/branches{/branch}","tags_url":"https://api.github.com/repos/Genki-S/ttnt/tags","blobs_url":"https://api.github.com/repos/Genki-S/ttnt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Genki-S/ttnt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Genki-S/ttnt/git/refs{/sha}","trees_url":"https://api.github.com/repos/Genki-S/ttnt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Genki-S/ttnt/statuses/{sha}","languages_url":"https://api.github.com/repos/Genki-S/ttnt/languages","stargazers_url":"https://api.github.com/repos/Genki-S/ttnt/stargazers","contributors_url":"https://api.github.com/repos/Genki-S/ttnt/contributors","subscribers_url":"https://api.github.com/repos/Genki-S/ttnt/subscribers","subscription_url":"https://api.github.com/repos/Genki-S/ttnt/subscription","commits_url":"https://api.github.com/repos/Genki-S/ttnt/commits{/sha}","git_commits_url":"https://api.github.com/repos/Genki-S/ttnt/git/commits{/sha}","comments_url":"https://api.github.com/repos/Genki-S/ttnt/comments{/number}","issue_comment_url":"https://api.github.com/repos/Genki-S/ttnt/issues/comments{/number}","contents_url":"https://api.github.com/repos/Genki-S/ttnt/contents/{+path}","compare_url":"https://api.github.com/repos/Genki-S/ttnt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Genki-S/ttnt/merges","archive_url":"https://api.github.com/repos/Genki-S/ttnt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Genki-S/ttnt/downloads","issues_url":"https://api.github.com/repos/Genki-S/ttnt/issues{/number}","pulls_url":"https://api.github.com/repos/Genki-S/ttnt/pulls{/number}","milestones_url":"https://api.github.com/repos/Genki-S/ttnt/milestones{/number}","notifications_url":"https://api.github.com/repos/Genki-S/ttnt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Genki-S/ttnt/labels{/name}","releases_url":"https://api.github.com/repos/Genki-S/ttnt/releases{/id}","created_at":"2015-06-06T23:47:45Z","updated_at":"2015-08-07T19:01:55Z","pushed_at":"2015-08-13T12:21:27Z","git_url":"git://github.com/Genki-S/ttnt.git","ssh_url":"git@github.com:Genki-S/ttnt.git","clone_url":"https://github.com/Genki-S/ttnt.git","svn_url":"https://github.com/Genki-S/ttnt","homepage":null,"size":625,"stargazers_count":13,"watchers_count":13,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":4,"forks":1,"open_issues":4,"watchers":13,"default_branch":"master"}},"base":{"label":"Genki-S:master","ref":"master","sha":"711f678c1df0c682d51a5c4b94cc263f2f8b30ca","user":{"login":"Genki-S","id":1609598,"avatar_url":"https://avatars.githubusercontent.com/u/1609598?v=3","gravatar_id":"","url":"https://api.github.com/users/Genki-S","html_url":"https://github.com/Genki-S","followers_url":"https://api.github.com/users/Genki-S/followers","following_url":"https://api.github.com/users/Genki-S/following{/other_user}","gists_url":"https://api.github.com/users/Genki-S/gists{/gist_id}","starred_url":"https://api.github.com/users/Genki-S/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Genki-S/subscriptions","organizations_url":"https://api.github.com/users/Genki-S/orgs","repos_url":"https://api.github.com/users/Genki-S/repos","events_url":"https://api.github.com/users/Genki-S/events{/privacy}","received_events_url":"https://api.github.com/users/Genki-S/received_events","type":"User","site_admin":false},"repo":{"id":36998728,"name":"ttnt","full_name":"Genki-S/ttnt","owner":{"login":"Genki-S","id":1609598,"avatar_url":"https://avatars.githubusercontent.com/u/1609598?v=3","gravatar_id":"","url":"https://api.github.com/users/Genki-S","html_url":"https://github.com/Genki-S","followers_url":"https://api.github.com/users/Genki-S/followers","following_url":"https://api.github.com/users/Genki-S/following{/other_user}","gists_url":"https://api.github.com/users/Genki-S/gists{/gist_id}","starred_url":"https://api.github.com/users/Genki-S/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Genki-S/subscriptions","organizations_url":"https://api.github.com/users/Genki-S/orgs","repos_url":"https://api.github.com/users/Genki-S/repos","events_url":"https://api.github.com/users/Genki-S/events{/privacy}","received_events_url":"https://api.github.com/users/Genki-S/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Genki-S/ttnt","description":"Test This, Not That! (Google Summer of Code 2015 project under Ruby on Rails)","fork":false,"url":"https://api.github.com/repos/Genki-S/ttnt","forks_url":"https://api.github.com/repos/Genki-S/ttnt/forks","keys_url":"https://api.github.com/repos/Genki-S/ttnt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Genki-S/ttnt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Genki-S/ttnt/teams","hooks_url":"https://api.github.com/repos/Genki-S/ttnt/hooks","issue_events_url":"https://api.github.com/repos/Genki-S/ttnt/issues/events{/number}","events_url":"https://api.github.com/repos/Genki-S/ttnt/events","assignees_url":"https://api.github.com/repos/Genki-S/ttnt/assignees{/user}","branches_url":"https://api.github.com/repos/Genki-S/ttnt/branches{/branch}","tags_url":"https://api.github.com/repos/Genki-S/ttnt/tags","blobs_url":"https://api.github.com/repos/Genki-S/ttnt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Genki-S/ttnt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Genki-S/ttnt/git/refs{/sha}","trees_url":"https://api.github.com/repos/Genki-S/ttnt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Genki-S/ttnt/statuses/{sha}","languages_url":"https://api.github.com/repos/Genki-S/ttnt/languages","stargazers_url":"https://api.github.com/repos/Genki-S/ttnt/stargazers","contributors_url":"https://api.github.com/repos/Genki-S/ttnt/contributors","subscribers_url":"https://api.github.com/repos/Genki-S/ttnt/subscribers","subscription_url":"https://api.github.com/repos/Genki-S/ttnt/subscription","commits_url":"https://api.github.com/repos/Genki-S/ttnt/commits{/sha}","git_commits_url":"https://api.github.com/repos/Genki-S/ttnt/git/commits{/sha}","comments_url":"https://api.github.com/repos/Genki-S/ttnt/comments{/number}","issue_comment_url":"https://api.github.com/repos/Genki-S/ttnt/issues/comments{/number}","contents_url":"https://api.github.com/repos/Genki-S/ttnt/contents/{+path}","compare_url":"https://api.github.com/repos/Genki-S/ttnt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Genki-S/ttnt/merges","archive_url":"https://api.github.com/repos/Genki-S/ttnt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Genki-S/ttnt/downloads","issues_url":"https://api.github.com/repos/Genki-S/ttnt/issues{/number}","pulls_url":"https://api.github.com/repos/Genki-S/ttnt/pulls{/number}","milestones_url":"https://api.github.com/repos/Genki-S/ttnt/milestones{/number}","notifications_url":"https://api.github.com/repos/Genki-S/ttnt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Genki-S/ttnt/labels{/name}","releases_url":"https://api.github.com/repos/Genki-S/ttnt/releases{/id}","created_at":"2015-06-06T23:47:45Z","updated_at":"2015-08-07T19:01:55Z","pushed_at":"2015-08-13T12:21:27Z","git_url":"git://github.com/Genki-S/ttnt.git","ssh_url":"git@github.com:Genki-S/ttnt.git","clone_url":"https://github.com/Genki-S/ttnt.git","svn_url":"https://github.com/Genki-S/ttnt","homepage":null,"size":625,"stargazers_count":13,"watchers_count":13,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":4,"forks":1,"open_issues":4,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Genki-S/ttnt/pulls/34"},"html":{"href":"https://github.com/Genki-S/ttnt/pull/34"},"issue":{"href":"https://api.github.com/repos/Genki-S/ttnt/issues/34"},"comments":{"href":"https://api.github.com/repos/Genki-S/ttnt/issues/34/comments"},"review_comments":{"href":"https://api.github.com/repos/Genki-S/ttnt/pulls/34/comments"},"review_comment":{"href":"https://api.github.com/repos/Genki-S/ttnt/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Genki-S/ttnt/pulls/34/commits"},"statuses":{"href":"https://api.github.com/repos/Genki-S/ttnt/statuses/8d226b0acde3271b6ac712c3dae6c5c7e77c9b04"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"robin850","id":354185,"avatar_url":"https://avatars.githubusercontent.com/u/354185?v=3","gravatar_id":"","url":"https://api.github.com/users/robin850","html_url":"https://github.com/robin850","followers_url":"https://api.github.com/users/robin850/followers","following_url":"https://api.github.com/users/robin850/following{/other_user}","gists_url":"https://api.github.com/users/robin850/gists{/gist_id}","starred_url":"https://api.github.com/users/robin850/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robin850/subscriptions","organizations_url":"https://api.github.com/users/robin850/orgs","repos_url":"https://api.github.com/users/robin850/repos","events_url":"https://api.github.com/users/robin850/events{/privacy}","received_events_url":"https://api.github.com/users/robin850/received_events","type":"User","site_admin":false},"comments":4,"review_comments":10,"commits":12,"additions":95,"deletions":18,"changed_files":8}}