{"action":"created","comment":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments/33229676","id":33229676,"diff_hunk":"@@ -46,41 +46,394 @@ code-style will be used.\n ## Performing side effects with signals\n \n ### Observation\n+\n+Signals can be observed with the `observe` function. It takes a `Sink` as argument to which any future events are sent. \n+\n+```Swift\n+signal.observe(Signal.Observer { event in\n+    switch event {\n+    case let .Next(next):\n+        println(\"Next: \\(next)\")\n+    case let .Error(error):\n+        println(\"Error: \\(error)\")\n+    case .Completed:\n+        println(\"Completed\")\n+    case .Interrupted:\n+        println(\"Interrupted\")\n+    }\n+})\n+```\n+\n+Alternatively, callbacks for the `Next`, `Error`, `Completed` and `Interrupted` events can be provided which will be called when a corresponding event occurs.\n+\n+```Swift\n+signal.observe(next: { next in\n+        println(\"Next: \\(next)\")\n+    }, error: { error in\n+        println(\"Error: \\(error)\")\n+    }, completed: {\n+        println(\"Completed\")\n+    }, interrupted: {\n+        println(\"Interrupted\")\n+    }\n+)\n+```\n+\n+`observe` is also available as operator that can be used with [|>](#pipe)\n+\n ### Injecting effects\n \n+Side effects can be injected on a `SignalProducer` with the `on` operator without actually subscribing to it. \n+\n+```Swift\n+let producer = signalProducer\n+    |> on(started: {\n+        println(\"Started\")\n+        }, event: { event in\n+            println(\"Event: \\(event)\")\n+        }, error: { error in\n+            println(\"Error: \\(error)\")\n+        }, completed: {\n+            println(\"Completed\")\n+        }, interrupted: {\n+            println(\"Interrupted\")\n+        }, terminated: {\n+            println(\"Terminated\")\n+        }, disposed: {\n+            println(\"Disposed\")\n+        }, next: { next in\n+            println(\"Next: \\(next)\")\n+    })\n+```\n+\n+Note, that nothing will be printed until `producer` is started (possibly somewhere else).\n \n ## Operator composition\n \n-### Lifting\n ### Pipe\n \n+The `|>` operator can be used to apply a signal operator to a signal. Multiple operators can be chained after each other using the `|>` operator\n+\n+```Swift\n+intSignal\n+    |> filter { num in num % 2 == 0 }\n+    |> map(toString)\n+    |> observe(next: { string in println(string) })\n+```\n+\n+### Lifting\n+\n+Signal operators can be _lifted_ to operate upon `SignalProducer`s instead using the `lift` operator.\n+In other words, this will create a new `SignalProducer` which will apply the given signal operator to _every_ signal created from the incoming `SignalProducer`s\n+just if the operator had been applied to each signal yielded from `start()`.\n+\n+The `|>` operator implicitly lifts signal operators, when used with `SignalProducer`s.\n \n ## Transforming signals\n \n+These operators transform a signal into a new signal.\n+\n ### Mapping\n+\n+The `map` operator is used to transform the values in a signal, creating a new signal with the results.\n+\n+```Swift\n+let (signal, sink) = Signal<String, NoError>.pipe()\n+signal\n+    |> map { string in string.uppercaseString }\n+    |> observe(next: { println($0) })\n+\n+sendNext(sink, \"a\")     // Prints A\n+sendNext(sink, \"b\")     // Prints B\n+sendNext(sink, \"c\")     // Prints C\n+```\n+\n+\n ### Filtering\n+\n+The `filter` operator is used to include only values in a signal that satisfy a predicate\n+\n+```Swift\n+let (signal, sink) = Signal<Int, NoError>.pipe()\n+signal\n+    |> filter { number in number % 2 == 0 }\n+    |> observe(next: { println($0) })\n+\n+sendNext(sink, 1)     // Not printed\n+sendNext(sink, 2)     // Prints 2\n+sendNext(sink, 3)     // Not printed\n+sendNext(sink, 4)     // prints 4\n+```\n+\n ### Reducing\n \n+The `reduce` operator is used to aggregate a signals value into a single combine value. Note, that the final value is only sent after the source signal completes.\n+\n+```Swift\n+let (signal, sink) = Signal<Int, NoError>.pipe()\n+\n+signal\n+    |> reduce(1) { $0 * $1 }\n+    |> observe(next: { println($0) })\n+\n+sendNext(sink, 1)     // nothing printed\n+sendNext(sink, 2)     // nothing printed\n+sendNext(sink, 3)     // nothing printed\n+sendCompleted(sink)   // prints 6\n+```\n+\n \n ## Combining signals\n \n+These operators combine multiple signals into a single new signal.\n+\n ### Combining latest values\n+\n+The `combineLatest` function combines the latest values of two (or more) signals. The resulting signal will only send a the first value after both inputs have sent at least one value each. After that, each value on either of the inputs will cause a new value on the output.\n+\n+```Swift\n+let (numbersSignal, numbersSink) = Signal<Int, NoError>.pipe()\n+let (lettersSignal, lettersSink) = Signal<String, NoError>.pipe()\n+\n+combineLatest(numbersSignal, lettersSignal)\n+    |> observe(next: { println($0) },\n+          completed: { println(\"Completed\") })\n+\n+sendNext(numbersSink, 0)    // nothing printed\n+sendNext(numbersSink, 1)    // nothing printed\n+sendNext(lettersSink, \"A\")  // prints (1, A)\n+sendNext(numbersSink, 2)    // prints (2, A)\n+sendCompleted(numbersSink)  // nothing printed\n+sendNext(lettersSink, \"B\")  // prints (2, B)\n+sendNext(lettersSink, \"C\")  // prints (2, C)\n+sendCompleted(lettersSink)  // prints \"Completed\"\n+```\n+\n+The `combineLatestWith` operator works in the same way, but as an operator.\n+\n ### Zipping\n \n+The `zip` function combines values of two signals into pairs. The elements of any Nth pair are the Nth elements of the two input signals. That means the output signal will always wait for both input signals to send and output.\n+\n+```Swift\n+let (numbersSignal, numbersSink) = Signal<Int, NoError>.pipe()\n+let (lettersSignal, lettersSink) = Signal<String, NoError>.pipe()\n+\n+zip(numbersSignal, lettersSignal)\n+    |> observe(next: { println($0) },\n+          completed: { println(\"Completed\") })\n+\n+sendNext(numbersSink, 0)    // nothing printed\n+sendNext(numbersSink, 1)    // nothing printed\n+sendNext(lettersSink, \"A\")  // prints (1, A)\n+sendNext(numbersSink, 2)    // prints (2, A)\n+sendCompleted(numbersSink)  // nothing printed\n+sendNext(lettersSink, \"B\")  // prints (2, B)\n+sendNext(lettersSink, \"C\")  // prints (2, C) & \"Completed\"\n+\n+```\n+\n+The `zipWith` operator works in the same way, but as an operator.\n \n ## Flattening producers\n \n-### Concatenating\n+The `flatten` operators transforms a `SignalProducer`-of-`SignalProducer`s into a single `SignalProducer`.\n+There are multiple different semantics of the operation which can be chosen as a `FlattenStrategy`.\n+\n+To understand, why there are different strategies and how they compare to each other, take a look at this example and\n+imagine the column offsets as time:\n+\n+```Swift\n+let values = [\n+// imagine column offset as time\n+[ 1,    2,      3 ],\n+   [ 4,      5,     6 ],\n+         [ 7,     8 ],\n+]\n+\n+let merge =\n+[ 1, 4, 2, 7,5, 3,8,6 ]\n+\n+let concat = \n+[ 1,    2,      3,4,      5,     6,7,     8]\n+\n+let latest =\n+[ 1, 4,    7,     8 ]\n+```\n+\n+Note, how the values interleave and which values are even included in the resulting array.\n+\n+\n ### Merging\n+\n+The `.Merge` strategy works by immediately forwarding every events of the inner `SignalProducer`s to the outer `SignalProducer`.\n+\n+```Swift\n+let (numbersSignal, numbersSink) = SignalProducer<AnyObject, NoError>.buffer(5)","path":"Documentation/BasicOperators.md","position":229,"original_position":229,"commit_id":"989c8c830bfed3b631aa6d235d3c29688c0b5d3b","original_commit_id":"989c8c830bfed3b631aa6d235d3c29688c0b5d3b","user":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"body":"sure","created_at":"2015-06-25T07:49:02Z","updated_at":"2015-06-25T07:49:02Z","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2063#discussion_r33229676","pull_request_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063","_links":{"self":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments/33229676"},"html":{"href":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2063#discussion_r33229676"},"pull_request":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063"}}},"pull_request":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063","id":36887329,"html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2063","diff_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2063.diff","patch_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2063.patch","issue_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/2063","number":2063,"state":"open","locked":false,"title":"Documentation: Basic Operators","user":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"body":"This adds descriptions and examples for the basic operators to the existing stub. \r\n\r\nI have tried to keep the examples short and similar to the [legacy ObjC Version of this Document](https://github.com/ReactiveCocoa/ReactiveCocoa/blob/swift-development/Documentation/Legacy/BasicOperators.md#injecting-effects)\r\n\r\nThe examples have been written and tested in a playground, so they should work correctly.\r\n\r\nI was also playing around with the idea of providing these examples in a playground, but how that would work specifically is not clear to me (Needs extra workspace with RAC Framework built, how to separate the different Examples?). If you like the idea, I can play around with that later in a separate PR. then again, the rest of the still missing documentation may be more important...\r\n\r\nThis refs #1486 ","created_at":"2015-06-03T22:59:57Z","updated_at":"2015-06-25T07:49:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1120e7b46f1863ecbb585da3aa1d7499578c0afa","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063/commits","review_comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063/comments","review_comment_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/2063/comments","statuses_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/989c8c830bfed3b631aa6d235d3c29688c0b5d3b","head":{"label":"iv-mexx:feature/operators","ref":"feature/operators","sha":"989c8c830bfed3b631aa6d235d3c29688c0b5d3b","user":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"repo":{"id":35776395,"name":"ReactiveCocoa","full_name":"iv-mexx/ReactiveCocoa","owner":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iv-mexx/ReactiveCocoa","description":"A framework for composing and transforming streams of values","fork":true,"url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa","forks_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/forks","keys_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/teams","hooks_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/hooks","issue_events_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/issues/events{/number}","events_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/events","assignees_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/assignees{/user}","branches_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/branches{/branch}","tags_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/tags","blobs_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/git/refs{/sha}","trees_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/statuses/{sha}","languages_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/languages","stargazers_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/stargazers","contributors_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/contributors","subscribers_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/subscribers","subscription_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/subscription","commits_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/commits{/sha}","git_commits_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/git/commits{/sha}","comments_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/comments{/number}","issue_comment_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/issues/comments{/number}","contents_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/contents/{+path}","compare_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/merges","archive_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/downloads","issues_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/issues{/number}","pulls_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/pulls{/number}","milestones_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/milestones{/number}","notifications_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/labels{/name}","releases_url":"https://api.github.com/repos/iv-mexx/ReactiveCocoa/releases{/id}","created_at":"2015-05-17T17:55:52Z","updated_at":"2015-05-17T17:55:55Z","pushed_at":"2015-06-09T09:21:01Z","git_url":"git://github.com/iv-mexx/ReactiveCocoa.git","ssh_url":"git@github.com:iv-mexx/ReactiveCocoa.git","clone_url":"https://github.com/iv-mexx/ReactiveCocoa.git","svn_url":"https://github.com/iv-mexx/ReactiveCocoa","homepage":"","size":13587,"stargazers_count":0,"watchers_count":0,"language":"Objective-C","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"swift-development"}},"base":{"label":"ReactiveCocoa:swift-development","ref":"swift-development","sha":"12110113b02b22c7d3a1e7aa423d76340eb19157","user":{"login":"ReactiveCocoa","id":3422977,"avatar_url":"https://avatars.githubusercontent.com/u/3422977?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveCocoa","html_url":"https://github.com/ReactiveCocoa","followers_url":"https://api.github.com/users/ReactiveCocoa/followers","following_url":"https://api.github.com/users/ReactiveCocoa/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveCocoa/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveCocoa/subscriptions","organizations_url":"https://api.github.com/users/ReactiveCocoa/orgs","repos_url":"https://api.github.com/users/ReactiveCocoa/repos","events_url":"https://api.github.com/users/ReactiveCocoa/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveCocoa/received_events","type":"Organization","site_admin":false},"repo":{"id":3606624,"name":"ReactiveCocoa","full_name":"ReactiveCocoa/ReactiveCocoa","owner":{"login":"ReactiveCocoa","id":3422977,"avatar_url":"https://avatars.githubusercontent.com/u/3422977?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveCocoa","html_url":"https://github.com/ReactiveCocoa","followers_url":"https://api.github.com/users/ReactiveCocoa/followers","following_url":"https://api.github.com/users/ReactiveCocoa/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveCocoa/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveCocoa/subscriptions","organizations_url":"https://api.github.com/users/ReactiveCocoa/orgs","repos_url":"https://api.github.com/users/ReactiveCocoa/repos","events_url":"https://api.github.com/users/ReactiveCocoa/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveCocoa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa","description":"A framework for composing and transforming streams of values","fork":false,"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa","forks_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/forks","keys_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/teams","hooks_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/hooks","issue_events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/events{/number}","events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/events","assignees_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/assignees{/user}","branches_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/branches{/branch}","tags_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/tags","blobs_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/{sha}","languages_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/languages","stargazers_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/stargazers","contributors_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contributors","subscribers_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscribers","subscription_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscription","commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contents/{+path}","compare_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/merges","archive_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/downloads","issues_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues{/number}","pulls_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls{/number}","milestones_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones{/number}","notifications_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/labels{/name}","releases_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/releases{/id}","created_at":"2012-03-02T22:11:24Z","updated_at":"2015-06-25T06:51:34Z","pushed_at":"2015-06-24T21:28:40Z","git_url":"git://github.com/ReactiveCocoa/ReactiveCocoa.git","ssh_url":"git@github.com:ReactiveCocoa/ReactiveCocoa.git","clone_url":"https://github.com/ReactiveCocoa/ReactiveCocoa.git","svn_url":"https://github.com/ReactiveCocoa/ReactiveCocoa","homepage":"","size":122103,"stargazers_count":8712,"watchers_count":8712,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1335,"mirror_url":null,"open_issues_count":124,"forks":1335,"open_issues":124,"watchers":8712,"default_branch":"swift-development"}},"_links":{"self":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063"},"html":{"href":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2063"},"issue":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/2063"},"comments":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/2063/comments"},"review_comments":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063/comments"},"review_comment":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/2063/commits"},"statuses":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/989c8c830bfed3b631aa6d235d3c29688c0b5d3b"}}}}