{"action":"created","comment":{"url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/comments/302095022","pull_request_review_id":260131492,"id":302095022,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMwMjA5NTAyMg==","diff_hunk":"@@ -0,0 +1,176 @@\n+require File.expand_path(File.dirname(__FILE__) + '/neo')\n+\n+# Project: Create a Proxy Class\n+#\n+# In this assignment, create a proxy class (one is started for you\n+# below).  You should be able to initialize the proxy object with any\n+# object.  Any messages sent to the proxy object should be forwarded\n+# to the target object.  As each message is sent, the proxy should\n+# record the name of the method sent.\n+#\n+# The proxy class is started for you.  You will need to add a method\n+# missing handler and any other supporting methods.  The specification\n+# of the Proxy class is given in the AboutProxyObjectProject koan.\n+\n+class Proxy\n+  attr_accessor :messages\n+\n+  def initialize(target_object)\n+    @object = target_object\n+    @messages = []\n+  end\n+\n+  def method_missing(method_name, *args, &block)\n+    if @object.respond_to?(method_name)\n+      messages << method_name\n+      @object.send(method_name, *args, &block)\n+    else\n+      super\n+    end\n+  end\n+\n+  def called?(method_name)\n+    messages.include? method_name\n+  end\n+\n+  def number_of_times_called(method_name)\n+    @messages.count method_name\n+  end\n+\n+  def respond_to_missing?\n+    true\n+  end\n+end\n+\n+# The proxy object should pass the following Koan:\n+#\n+class AboutProxyObjectProject < Neo::Koan\n+  def test_proxy_method_returns_wrapped_object\n+    # NOTE: The Television class is defined below\n+    tv = Proxy.new(Television.new)\n+\n+    # HINT: Proxy class is defined above, may need tweaking...\n+\n+    assert tv.instance_of?(Proxy)\n+  end\n+\n+  def test_tv_methods_still_perform_their_function\n+    tv = Proxy.new(Television.new)\n+\n+    tv.channel = 10\n+    tv.power\n+\n+    assert_equal 10, tv.channel\n+    assert tv.on?\n+  end\n+\n+  def test_proxy_records_messages_sent_to_tv\n+    tv = Proxy.new(Television.new)\n+\n+    tv.power","path":"3729/0/about_proxy_object_project.rb","position":70,"original_position":70,"commit_id":"fc2afb626a768032802af92b57495388346c1839","original_commit_id":"fc2afb626a768032802af92b57495388346c1839","user":{"login":"hound[bot]","id":30008653,"node_id":"MDM6Qm90MzAwMDg2NTM=","avatar_url":"https://avatars1.githubusercontent.com/in/3598?v=4","gravatar_id":"","url":"https://api.github.com/users/hound%5Bbot%5D","html_url":"https://github.com/apps/hound","followers_url":"https://api.github.com/users/hound%5Bbot%5D/followers","following_url":"https://api.github.com/users/hound%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/hound%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/hound%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hound%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/hound%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/hound%5Bbot%5D/repos","events_url":"https://api.github.com/users/hound%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/hound%5Bbot%5D/received_events","type":"Bot","site_admin":false},"body":"FeatureEnvy: AboutProxyObjectProject#test_proxy_records_messages_sent_to_tv refers to 'tv' more than self (maybe move it to another class?). [More info](https://github.com/troessner/reek/blob/v5.0.2/docs/Feature-Envy.md).","created_at":"2019-07-10T14:26:51Z","updated_at":"2019-07-10T14:26:52Z","html_url":"https://github.com/rubizza-camp/summer-2019/pull/152#discussion_r302095022","pull_request_url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/comments/302095022"},"html":{"href":"https://github.com/rubizza-camp/summer-2019/pull/152#discussion_r302095022"},"pull_request":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152"}}},"pull_request":{"url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152","id":295676298,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjk1Njc2Mjk4","html_url":"https://github.com/rubizza-camp/summer-2019/pull/152","diff_url":"https://github.com/rubizza-camp/summer-2019/pull/152.diff","patch_url":"https://github.com/rubizza-camp/summer-2019/pull/152.patch","issue_url":"https://api.github.com/repos/rubizza-camp/summer-2019/issues/152","number":152,"state":"open","locked":false,"title":"3729-0","user":{"login":"Nikivi","id":17377397,"node_id":"MDQ6VXNlcjE3Mzc3Mzk3","avatar_url":"https://avatars2.githubusercontent.com/u/17377397?v=4","gravatar_id":"","url":"https://api.github.com/users/Nikivi","html_url":"https://github.com/Nikivi","followers_url":"https://api.github.com/users/Nikivi/followers","following_url":"https://api.github.com/users/Nikivi/following{/other_user}","gists_url":"https://api.github.com/users/Nikivi/gists{/gist_id}","starred_url":"https://api.github.com/users/Nikivi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nikivi/subscriptions","organizations_url":"https://api.github.com/users/Nikivi/orgs","repos_url":"https://api.github.com/users/Nikivi/repos","events_url":"https://api.github.com/users/Nikivi/events{/privacy}","received_events_url":"https://api.github.com/users/Nikivi/received_events","type":"User","site_admin":false},"body":"## Номер\r\n3729\r\n\r\n## Номер задания\r\n0\r\n\r\n## Ссылка на видео с демо\r\nhttps://youtu.be/l2pgVeP7rtk\r\n\r\n## Комментарии\r\nКоаны поправлены\r\n","created_at":"2019-07-09T09:54:23Z","updated_at":"2019-07-10T14:26:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c442c800c3aa70b47c70bc0ad0cd055603901547","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152/commits","review_comments_url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152/comments","review_comment_url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rubizza-camp/summer-2019/issues/152/comments","statuses_url":"https://api.github.com/repos/rubizza-camp/summer-2019/statuses/fc2afb626a768032802af92b57495388346c1839","head":{"label":"Nikivi:0","ref":"0","sha":"fc2afb626a768032802af92b57495388346c1839","user":{"login":"Nikivi","id":17377397,"node_id":"MDQ6VXNlcjE3Mzc3Mzk3","avatar_url":"https://avatars2.githubusercontent.com/u/17377397?v=4","gravatar_id":"","url":"https://api.github.com/users/Nikivi","html_url":"https://github.com/Nikivi","followers_url":"https://api.github.com/users/Nikivi/followers","following_url":"https://api.github.com/users/Nikivi/following{/other_user}","gists_url":"https://api.github.com/users/Nikivi/gists{/gist_id}","starred_url":"https://api.github.com/users/Nikivi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nikivi/subscriptions","organizations_url":"https://api.github.com/users/Nikivi/orgs","repos_url":"https://api.github.com/users/Nikivi/repos","events_url":"https://api.github.com/users/Nikivi/events{/privacy}","received_events_url":"https://api.github.com/users/Nikivi/received_events","type":"User","site_admin":false},"repo":{"id":195743880,"node_id":"MDEwOlJlcG9zaXRvcnkxOTU3NDM4ODA=","name":"summer-2019","full_name":"Nikivi/summer-2019","private":false,"owner":{"login":"Nikivi","id":17377397,"node_id":"MDQ6VXNlcjE3Mzc3Mzk3","avatar_url":"https://avatars2.githubusercontent.com/u/17377397?v=4","gravatar_id":"","url":"https://api.github.com/users/Nikivi","html_url":"https://github.com/Nikivi","followers_url":"https://api.github.com/users/Nikivi/followers","following_url":"https://api.github.com/users/Nikivi/following{/other_user}","gists_url":"https://api.github.com/users/Nikivi/gists{/gist_id}","starred_url":"https://api.github.com/users/Nikivi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nikivi/subscriptions","organizations_url":"https://api.github.com/users/Nikivi/orgs","repos_url":"https://api.github.com/users/Nikivi/repos","events_url":"https://api.github.com/users/Nikivi/events{/privacy}","received_events_url":"https://api.github.com/users/Nikivi/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Nikivi/summer-2019","description":"Rubizza 2019 Summer homeworks storage","fork":true,"url":"https://api.github.com/repos/Nikivi/summer-2019","forks_url":"https://api.github.com/repos/Nikivi/summer-2019/forks","keys_url":"https://api.github.com/repos/Nikivi/summer-2019/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Nikivi/summer-2019/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Nikivi/summer-2019/teams","hooks_url":"https://api.github.com/repos/Nikivi/summer-2019/hooks","issue_events_url":"https://api.github.com/repos/Nikivi/summer-2019/issues/events{/number}","events_url":"https://api.github.com/repos/Nikivi/summer-2019/events","assignees_url":"https://api.github.com/repos/Nikivi/summer-2019/assignees{/user}","branches_url":"https://api.github.com/repos/Nikivi/summer-2019/branches{/branch}","tags_url":"https://api.github.com/repos/Nikivi/summer-2019/tags","blobs_url":"https://api.github.com/repos/Nikivi/summer-2019/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Nikivi/summer-2019/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Nikivi/summer-2019/git/refs{/sha}","trees_url":"https://api.github.com/repos/Nikivi/summer-2019/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Nikivi/summer-2019/statuses/{sha}","languages_url":"https://api.github.com/repos/Nikivi/summer-2019/languages","stargazers_url":"https://api.github.com/repos/Nikivi/summer-2019/stargazers","contributors_url":"https://api.github.com/repos/Nikivi/summer-2019/contributors","subscribers_url":"https://api.github.com/repos/Nikivi/summer-2019/subscribers","subscription_url":"https://api.github.com/repos/Nikivi/summer-2019/subscription","commits_url":"https://api.github.com/repos/Nikivi/summer-2019/commits{/sha}","git_commits_url":"https://api.github.com/repos/Nikivi/summer-2019/git/commits{/sha}","comments_url":"https://api.github.com/repos/Nikivi/summer-2019/comments{/number}","issue_comment_url":"https://api.github.com/repos/Nikivi/summer-2019/issues/comments{/number}","contents_url":"https://api.github.com/repos/Nikivi/summer-2019/contents/{+path}","compare_url":"https://api.github.com/repos/Nikivi/summer-2019/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Nikivi/summer-2019/merges","archive_url":"https://api.github.com/repos/Nikivi/summer-2019/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Nikivi/summer-2019/downloads","issues_url":"https://api.github.com/repos/Nikivi/summer-2019/issues{/number}","pulls_url":"https://api.github.com/repos/Nikivi/summer-2019/pulls{/number}","milestones_url":"https://api.github.com/repos/Nikivi/summer-2019/milestones{/number}","notifications_url":"https://api.github.com/repos/Nikivi/summer-2019/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Nikivi/summer-2019/labels{/name}","releases_url":"https://api.github.com/repos/Nikivi/summer-2019/releases{/id}","deployments_url":"https://api.github.com/repos/Nikivi/summer-2019/deployments","created_at":"2019-07-08T05:41:15Z","updated_at":"2019-07-09T14:58:37Z","pushed_at":"2019-07-10T14:26:33Z","git_url":"git://github.com/Nikivi/summer-2019.git","ssh_url":"git@github.com:Nikivi/summer-2019.git","clone_url":"https://github.com/Nikivi/summer-2019.git","svn_url":"https://github.com/Nikivi/summer-2019","homepage":"https://rubizza.com","size":712,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rubizza-camp:master","ref":"master","sha":"845c906395ca080fa30bc33790d7babf22fca769","user":{"login":"rubizza-camp","id":40864986,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwODY0OTg2","avatar_url":"https://avatars1.githubusercontent.com/u/40864986?v=4","gravatar_id":"","url":"https://api.github.com/users/rubizza-camp","html_url":"https://github.com/rubizza-camp","followers_url":"https://api.github.com/users/rubizza-camp/followers","following_url":"https://api.github.com/users/rubizza-camp/following{/other_user}","gists_url":"https://api.github.com/users/rubizza-camp/gists{/gist_id}","starred_url":"https://api.github.com/users/rubizza-camp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubizza-camp/subscriptions","organizations_url":"https://api.github.com/users/rubizza-camp/orgs","repos_url":"https://api.github.com/users/rubizza-camp/repos","events_url":"https://api.github.com/users/rubizza-camp/events{/privacy}","received_events_url":"https://api.github.com/users/rubizza-camp/received_events","type":"Organization","site_admin":false},"repo":{"id":194091304,"node_id":"MDEwOlJlcG9zaXRvcnkxOTQwOTEzMDQ=","name":"summer-2019","full_name":"rubizza-camp/summer-2019","private":false,"owner":{"login":"rubizza-camp","id":40864986,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwODY0OTg2","avatar_url":"https://avatars1.githubusercontent.com/u/40864986?v=4","gravatar_id":"","url":"https://api.github.com/users/rubizza-camp","html_url":"https://github.com/rubizza-camp","followers_url":"https://api.github.com/users/rubizza-camp/followers","following_url":"https://api.github.com/users/rubizza-camp/following{/other_user}","gists_url":"https://api.github.com/users/rubizza-camp/gists{/gist_id}","starred_url":"https://api.github.com/users/rubizza-camp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubizza-camp/subscriptions","organizations_url":"https://api.github.com/users/rubizza-camp/orgs","repos_url":"https://api.github.com/users/rubizza-camp/repos","events_url":"https://api.github.com/users/rubizza-camp/events{/privacy}","received_events_url":"https://api.github.com/users/rubizza-camp/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/rubizza-camp/summer-2019","description":"Rubizza 2019 Summer homeworks storage","fork":false,"url":"https://api.github.com/repos/rubizza-camp/summer-2019","forks_url":"https://api.github.com/repos/rubizza-camp/summer-2019/forks","keys_url":"https://api.github.com/repos/rubizza-camp/summer-2019/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rubizza-camp/summer-2019/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rubizza-camp/summer-2019/teams","hooks_url":"https://api.github.com/repos/rubizza-camp/summer-2019/hooks","issue_events_url":"https://api.github.com/repos/rubizza-camp/summer-2019/issues/events{/number}","events_url":"https://api.github.com/repos/rubizza-camp/summer-2019/events","assignees_url":"https://api.github.com/repos/rubizza-camp/summer-2019/assignees{/user}","branches_url":"https://api.github.com/repos/rubizza-camp/summer-2019/branches{/branch}","tags_url":"https://api.github.com/repos/rubizza-camp/summer-2019/tags","blobs_url":"https://api.github.com/repos/rubizza-camp/summer-2019/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rubizza-camp/summer-2019/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rubizza-camp/summer-2019/git/refs{/sha}","trees_url":"https://api.github.com/repos/rubizza-camp/summer-2019/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rubizza-camp/summer-2019/statuses/{sha}","languages_url":"https://api.github.com/repos/rubizza-camp/summer-2019/languages","stargazers_url":"https://api.github.com/repos/rubizza-camp/summer-2019/stargazers","contributors_url":"https://api.github.com/repos/rubizza-camp/summer-2019/contributors","subscribers_url":"https://api.github.com/repos/rubizza-camp/summer-2019/subscribers","subscription_url":"https://api.github.com/repos/rubizza-camp/summer-2019/subscription","commits_url":"https://api.github.com/repos/rubizza-camp/summer-2019/commits{/sha}","git_commits_url":"https://api.github.com/repos/rubizza-camp/summer-2019/git/commits{/sha}","comments_url":"https://api.github.com/repos/rubizza-camp/summer-2019/comments{/number}","issue_comment_url":"https://api.github.com/repos/rubizza-camp/summer-2019/issues/comments{/number}","contents_url":"https://api.github.com/repos/rubizza-camp/summer-2019/contents/{+path}","compare_url":"https://api.github.com/repos/rubizza-camp/summer-2019/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rubizza-camp/summer-2019/merges","archive_url":"https://api.github.com/repos/rubizza-camp/summer-2019/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rubizza-camp/summer-2019/downloads","issues_url":"https://api.github.com/repos/rubizza-camp/summer-2019/issues{/number}","pulls_url":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls{/number}","milestones_url":"https://api.github.com/repos/rubizza-camp/summer-2019/milestones{/number}","notifications_url":"https://api.github.com/repos/rubizza-camp/summer-2019/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rubizza-camp/summer-2019/labels{/name}","releases_url":"https://api.github.com/repos/rubizza-camp/summer-2019/releases{/id}","deployments_url":"https://api.github.com/repos/rubizza-camp/summer-2019/deployments","created_at":"2019-06-27T12:29:20Z","updated_at":"2019-07-10T14:07:34Z","pushed_at":"2019-07-10T14:26:35Z","git_url":"git://github.com/rubizza-camp/summer-2019.git","ssh_url":"git@github.com:rubizza-camp/summer-2019.git","clone_url":"https://github.com/rubizza-camp/summer-2019.git","svn_url":"https://github.com/rubizza-camp/summer-2019","homepage":"https://rubizza.com","size":774,"stargazers_count":5,"watchers_count":5,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":81,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":46,"license":null,"forks":81,"open_issues":46,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152"},"html":{"href":"https://github.com/rubizza-camp/summer-2019/pull/152"},"issue":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/issues/152"},"comments":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/issues/152/comments"},"review_comments":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152/comments"},"review_comment":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/pulls/152/commits"},"statuses":{"href":"https://api.github.com/repos/rubizza-camp/summer-2019/statuses/fc2afb626a768032802af92b57495388346c1839"}},"author_association":"NONE"}}
{"actor":{"display_login":"hound"}}