git_hub_bub 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ module GitHubBub
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,38 @@
1
+ require 'securerandom'
2
+ require 'json'
3
+ require 'uri'
4
+ require 'cgi'
5
+
6
+ require 'excon'
7
+ require 'rrrretry'
8
+
9
+ require 'git_hub_bub/request'
10
+ require 'git_hub_bub/response'
11
+
12
+ module GitHubBub
13
+ class << self
14
+ def head(*args)
15
+ Request.head(*args)
16
+ end
17
+
18
+ def get(*args)
19
+ Request.get(*args)
20
+ end
21
+
22
+ def post(*args)
23
+ Request.post(*args)
24
+ end
25
+
26
+ def put(*args)
27
+ Request.put(*args)
28
+ end
29
+
30
+ def patch(*args)
31
+ Request.patch(*args)
32
+ end
33
+
34
+ def delete(*args)
35
+ Request.delete(*args)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,113 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.github.com/repos/<OWNER>/<REPO>/labels?color=FFFFFF&name=test
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"test","color":"FFFFFF"}'
9
+ headers:
10
+ Accept:
11
+ - application/vnd.github.3.raw+json
12
+ User-Agent:
13
+ - f7baade8a8014c3aa0fa31a172f51a37
14
+ Authorization:
15
+ - token <GITHUB_API_KEY>
16
+ response:
17
+ status:
18
+ code: 201
19
+ message: ''
20
+ headers:
21
+ Server:
22
+ - GitHub.com
23
+ Date:
24
+ - Tue, 21 May 2013 20:03:27 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Connection:
28
+ - keep-alive
29
+ Status:
30
+ - 201 Created
31
+ X-Ratelimit-Limit:
32
+ - '5000'
33
+ X-Ratelimit-Remaining:
34
+ - '4990'
35
+ X-Oauth-Scopes:
36
+ - user, public_repo, repo, gist
37
+ X-Accepted-Oauth-Scopes:
38
+ - repo, public_repo
39
+ Location:
40
+ - https://api.github.com/repos/<OWNER>/<REPO>/labels/test
41
+ X-Github-Media-Type:
42
+ - github.beta; param=3.raw; format=json
43
+ X-Content-Type-Options:
44
+ - nosniff
45
+ Content-Length:
46
+ - '97'
47
+ Access-Control-Allow-Credentials:
48
+ - 'true'
49
+ Access-Control-Expose-Headers:
50
+ - Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes
51
+ Access-Control-Allow-Origin:
52
+ - '*'
53
+ Etag:
54
+ - '"b770f09e29b13b0c3a3be4ef42fea299"'
55
+ Cache-Control:
56
+ - max-age=0, private, must-revalidate
57
+ body:
58
+ encoding: UTF-8
59
+ string: '{"url":"https://api.github.com/repos/<OWNER>/<REPO>/labels/test","name":"test","color":"FFFFFF"}'
60
+ http_version:
61
+ recorded_at: Tue, 21 May 2013 20:03:37 GMT
62
+ - request:
63
+ method: delete
64
+ uri: https://api.github.com/repos/<OWNER>/<REPO>/labels/test
65
+ body:
66
+ encoding: UTF-8
67
+ string: '{}'
68
+ headers:
69
+ Accept:
70
+ - application/vnd.github.3.raw+json
71
+ User-Agent:
72
+ - f7baade8a8014c3aa0fa31a172f51a37
73
+ Authorization:
74
+ - token <GITHUB_API_KEY>
75
+ response:
76
+ status:
77
+ code: 204
78
+ message: ''
79
+ headers:
80
+ Server:
81
+ - GitHub.com
82
+ Date:
83
+ - Tue, 21 May 2013 20:03:28 GMT
84
+ Connection:
85
+ - keep-alive
86
+ Status:
87
+ - 204 No Content
88
+ X-Ratelimit-Limit:
89
+ - '5000'
90
+ X-Ratelimit-Remaining:
91
+ - '4989'
92
+ X-Oauth-Scopes:
93
+ - user, public_repo, repo, gist
94
+ X-Accepted-Oauth-Scopes:
95
+ - repo, public_repo
96
+ X-Github-Media-Type:
97
+ - github.beta; param=3.raw; format=json
98
+ X-Content-Type-Options:
99
+ - nosniff
100
+ Access-Control-Allow-Credentials:
101
+ - 'true'
102
+ Access-Control-Expose-Headers:
103
+ - Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes
104
+ Access-Control-Allow-Origin:
105
+ - '*'
106
+ Vary:
107
+ - Accept-Encoding
108
+ body:
109
+ encoding: UTF-8
110
+ string: ''
111
+ http_version:
112
+ recorded_at: Tue, 21 May 2013 20:03:38 GMT
113
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,298 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/repos/rails/rails/issues
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.github.3.raw+json
12
+ User-Agent:
13
+ - f7baade8a8014c3aa0fa31a172f51a37
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - GitHub.com
21
+ Date:
22
+ - Tue, 21 May 2013 20:03:28 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Ratelimit-Limit:
30
+ - '60'
31
+ X-Ratelimit-Remaining:
32
+ - '58'
33
+ Vary:
34
+ - Accept, Accept-Encoding
35
+ Cache-Control:
36
+ - public, max-age=60, s-maxage=60
37
+ Last-Modified:
38
+ - Tue, 21 May 2013 20:00:16 GMT
39
+ Etag:
40
+ - '"2268fc642d2daf7ef400b588da20134b"'
41
+ X-Github-Media-Type:
42
+ - github.beta; param=3.raw; format=json
43
+ Link:
44
+ - <https://api.github.com/repositories/8514/issues?page=2>; rel="next", <https://api.github.com/repositories/8514/issues?page=18>;
45
+ rel="last"
46
+ X-Content-Type-Options:
47
+ - nosniff
48
+ Content-Length:
49
+ - '72039'
50
+ Access-Control-Allow-Credentials:
51
+ - 'true'
52
+ Access-Control-Expose-Headers:
53
+ - Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes
54
+ Access-Control-Allow-Origin:
55
+ - '*'
56
+ body:
57
+ encoding: UTF-8
58
+ string: '[{"url":"https://api.github.com/repos/rails/rails/issues/10715","labels_url":"https://api.github.com/repos/rails/rails/issues/10715/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10715/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10715/events","html_url":"https://github.com/rails/rails/issues/10715","id":14586452,"number":10715,"title":"name
59
+ change active_record => base_klass","user":{"login":"neerajdotname","id":6399,"avatar_url":"https://secure.gravatar.com/avatar/934f858e451cf9b771996b2940cd696b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"934f858e451cf9b771996b2940cd696b","url":"https://api.github.com/users/neerajdotname","html_url":"https://github.com/neerajdotname","followers_url":"https://api.github.com/users/neerajdotname/followers","following_url":"https://api.github.com/users/neerajdotname/following{/other_user}","gists_url":"https://api.github.com/users/neerajdotname/gists{/gist_id}","starred_url":"https://api.github.com/users/neerajdotname/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neerajdotname/subscriptions","organizations_url":"https://api.github.com/users/neerajdotname/orgs","repos_url":"https://api.github.com/users/neerajdotname/repos","events_url":"https://api.github.com/users/neerajdotname/events{/privacy}","received_events_url":"https://api.github.com/users/neerajdotname/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-21T19:34:08Z","updated_at":"2013-05-21T19:34:08Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10715","diff_url":"https://github.com/rails/rails/pull/10715.diff","patch_url":"https://github.com/rails/rails/pull/10715.patch"},"body":"In
60
+ Reflection instance active_record holds the information about\r\nthe base
61
+ class.\r\n\r\nThe name `active_record` throws me off a little bit because
62
+ the\r\nname suggests that it holds an instance of the model class. While\r\nit
63
+ holds a model class itself.\r\n\r\nThis PR changes the name active_record
64
+ => base_klass.\r\n\r\nAll the tests are passing.\r\n\r\n/cc @tenderlove "},{"url":"https://api.github.com/repos/rails/rails/issues/10714","labels_url":"https://api.github.com/repos/rails/rails/issues/10714/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10714/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10714/events","html_url":"https://github.com/rails/rails/issues/10714","id":14580793,"number":10714,"title":"Extract
65
+ tests code out from AR''s base_test.rb","user":{"login":"tkhr","id":1095842,"avatar_url":"https://secure.gravatar.com/avatar/653400f191791e1bcb454c05bfc14ed0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"653400f191791e1bcb454c05bfc14ed0","url":"https://api.github.com/users/tkhr","html_url":"https://github.com/tkhr","followers_url":"https://api.github.com/users/tkhr/followers","following_url":"https://api.github.com/users/tkhr/following{/other_user}","gists_url":"https://api.github.com/users/tkhr/gists{/gist_id}","starred_url":"https://api.github.com/users/tkhr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkhr/subscriptions","organizations_url":"https://api.github.com/users/tkhr/orgs","repos_url":"https://api.github.com/users/tkhr/repos","events_url":"https://api.github.com/users/tkhr/events{/privacy}","received_events_url":"https://api.github.com/users/tkhr/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-21T17:42:02Z","updated_at":"2013-05-21T17:42:02Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10714","diff_url":"https://github.com/rails/rails/pull/10714.diff","patch_url":"https://github.com/rails/rails/pull/10714.patch"},"body":"Check
66
+ commit message/description for further info :) "},{"url":"https://api.github.com/repos/rails/rails/issues/10713","labels_url":"https://api.github.com/repos/rails/rails/issues/10713/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10713/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10713/events","html_url":"https://github.com/rails/rails/issues/10713","id":14576812,"number":10713,"title":"Fix
67
+ the `:primary_key` option for `has_many` associations.","user":{"login":"senny","id":5402,"avatar_url":"https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3d698e2872c07061a455d9e250861235","url":"https://api.github.com/users/senny","html_url":"https://github.com/senny","followers_url":"https://api.github.com/users/senny/followers","following_url":"https://api.github.com/users/senny/following{/other_user}","gists_url":"https://api.github.com/users/senny/gists{/gist_id}","starred_url":"https://api.github.com/users/senny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/senny/subscriptions","organizations_url":"https://api.github.com/users/senny/orgs","repos_url":"https://api.github.com/users/senny/repos","events_url":"https://api.github.com/users/senny/events{/privacy}","received_events_url":"https://api.github.com/users/senny/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-21T16:20:37Z","updated_at":"2013-05-21T17:48:00Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10713","diff_url":"https://github.com/rails/rails/pull/10713.diff","patch_url":"https://github.com/rails/rails/pull/10713.patch"},"body":"Fixes
68
+ #10693\r\n\r\nWhen removing records from a `has_many` association it used\r\nthe
69
+ `primary_key` defined on the association.\r\n\r\nOur test suite didn''t fail
70
+ because on all occurences of `:primary_key`,\r\nthe specified column was available
71
+ in both tables. This prevented the\r\ncode from raising an exception but it
72
+ still behaved badly.\r\n\r\nI added a test-case to prevent regressions that
73
+ failed with:\r\n\r\n```\r\n 1) Error:\r\nHasManyAssociationsTest#test_has_many_assignment_with_custom_primary_key:\r\nActiveRecord::StatementInvalid:
74
+ SQLite3::SQLException: no such column: essays.first_name: UPDATE \"essays\"
75
+ SET \"writer_id\" = NULL WHERE \"essays\".\"writer_id\" = ? AND \"essays\".\"first_name\"
76
+ IS NULL\r\n```"},{"url":"https://api.github.com/repos/rails/rails/issues/10712","labels_url":"https://api.github.com/repos/rails/rails/issues/10712/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10712/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10712/events","html_url":"https://github.com/rails/rails/issues/10712","id":14574244,"number":10712,"title":"Use
77
+ .railsrc while creating new plugin if available. Fixes #10700","user":{"login":"prathamesh-sonpatki","id":621238,"avatar_url":"https://secure.gravatar.com/avatar/1b0973b64704738dbc8ce24d8382bb1f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"1b0973b64704738dbc8ce24d8382bb1f","url":"https://api.github.com/users/prathamesh-sonpatki","html_url":"https://github.com/prathamesh-sonpatki","followers_url":"https://api.github.com/users/prathamesh-sonpatki/followers","following_url":"https://api.github.com/users/prathamesh-sonpatki/following{/other_user}","gists_url":"https://api.github.com/users/prathamesh-sonpatki/gists{/gist_id}","starred_url":"https://api.github.com/users/prathamesh-sonpatki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prathamesh-sonpatki/subscriptions","organizations_url":"https://api.github.com/users/prathamesh-sonpatki/orgs","repos_url":"https://api.github.com/users/prathamesh-sonpatki/repos","events_url":"https://api.github.com/users/prathamesh-sonpatki/events{/privacy}","received_events_url":"https://api.github.com/users/prathamesh-sonpatki/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2013-05-21T15:36:32Z","updated_at":"2013-05-21T18:44:13Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10712","diff_url":"https://github.com/rails/rails/pull/10712.diff","patch_url":"https://github.com/rails/rails/pull/10712.patch"},"body":"-
78
+ Fixes #10700"},{"url":"https://api.github.com/repos/rails/rails/issues/10710","labels_url":"https://api.github.com/repos/rails/rails/issues/10710/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10710/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10710/events","html_url":"https://github.com/rails/rails/issues/10710","id":14565246,"number":10710,"title":"Remove
79
+ column restrictions for `#count`, let the database raise if the SQL is invalid.","user":{"login":"senny","id":5402,"avatar_url":"https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3d698e2872c07061a455d9e250861235","url":"https://api.github.com/users/senny","html_url":"https://github.com/senny","followers_url":"https://api.github.com/users/senny/followers","following_url":"https://api.github.com/users/senny/following{/other_user}","gists_url":"https://api.github.com/users/senny/gists{/gist_id}","starred_url":"https://api.github.com/users/senny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/senny/subscriptions","organizations_url":"https://api.github.com/users/senny/orgs","repos_url":"https://api.github.com/users/senny/repos","events_url":"https://api.github.com/users/senny/events{/privacy}","received_events_url":"https://api.github.com/users/senny/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/activerecord","name":"activerecord","color":"0b02e1"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-21T12:40:33Z","updated_at":"2013-05-21T12:41:49Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10710","diff_url":"https://github.com/rails/rails/pull/10710.diff","patch_url":"https://github.com/rails/rails/pull/10710.patch"},"body":"Fixes
80
+ #5554\r\n\r\nPreviously the code path for `#count` used some [validation logic](https://github.com/rails/rails/blob/54122067acaad39b277a5363c6d11d6804c7bf6b/activerecord/lib/active_record/relation/calculations.rb#L389-L394)
81
+ and used to fall back on `#count(:all)`. This prevented the execution of some
82
+ specific count queries.\r\n\r\nThis patch gets rid of the validation logic
83
+ and let''s the database decide if the query is valid or not. One backwards
84
+ incompatible result of this patch is the following:\r\n\r\n```ruby\r\nrelation
85
+ = User.select(\"id, name\")\r\n\r\n# later in the code\r\nrelation.count\r\n```\r\n\r\nThis
86
+ count will now blow up because it you can''t count on two columns. The solution
87
+ is to specify the counting column explicitly:\r\n\r\n```ruby\r\nrelation.count(:all)\r\n```"},{"url":"https://api.github.com/repos/rails/rails/issues/10709","labels_url":"https://api.github.com/repos/rails/rails/issues/10709/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10709/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10709/events","html_url":"https://github.com/rails/rails/issues/10709","id":14560507,"number":10709,"title":"Wrong
88
+ use of :primary_key reflection option","user":{"login":"KrzysztofMadejski","id":849975,"avatar_url":"https://secure.gravatar.com/avatar/821cc737d014ae30cfc558b2a5bfb02f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"821cc737d014ae30cfc558b2a5bfb02f","url":"https://api.github.com/users/KrzysztofMadejski","html_url":"https://github.com/KrzysztofMadejski","followers_url":"https://api.github.com/users/KrzysztofMadejski/followers","following_url":"https://api.github.com/users/KrzysztofMadejski/following{/other_user}","gists_url":"https://api.github.com/users/KrzysztofMadejski/gists{/gist_id}","starred_url":"https://api.github.com/users/KrzysztofMadejski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KrzysztofMadejski/subscriptions","organizations_url":"https://api.github.com/users/KrzysztofMadejski/orgs","repos_url":"https://api.github.com/users/KrzysztofMadejski/repos","events_url":"https://api.github.com/users/KrzysztofMadejski/events{/privacy}","received_events_url":"https://api.github.com/users/KrzysztofMadejski/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/activerecord","name":"activerecord","color":"0b02e1"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-21T10:18:51Z","updated_at":"2013-05-21T10:52:54Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"In
89
+ activerecord-3.2.13/lib/active_record/reflection.rb:215 (AssociationReflection#association_primary_key)\r\noptions[:primary_key]
90
+ is used as if it was an array, but documentation states it should be a method.\r\n\r\nshould
91
+ look similar to:\r\n\r\n def association_primary_key(klass = nil)\r\n if
92
+ options[:primary_key]\r\n self.send options[:primary_key]\r\n else\r\n primary_key(klass
93
+ || self.klass)\r\n end\r\n end\r\n\r\n"},{"url":"https://api.github.com/repos/rails/rails/issues/10708","labels_url":"https://api.github.com/repos/rails/rails/issues/10708/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10708/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10708/events","html_url":"https://github.com/rails/rails/issues/10708","id":14559479,"number":10708,"title":"Rake.application
94
+ may be undefined when Rake is defined.","user":{"login":"os97673","id":450628,"avatar_url":"https://secure.gravatar.com/avatar/3ceac591523dcd469d5ad996a954c68d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"3ceac591523dcd469d5ad996a954c68d","url":"https://api.github.com/users/os97673","html_url":"https://github.com/os97673","followers_url":"https://api.github.com/users/os97673/followers","following_url":"https://api.github.com/users/os97673/following{/other_user}","gists_url":"https://api.github.com/users/os97673/gists{/gist_id}","starred_url":"https://api.github.com/users/os97673/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/os97673/subscriptions","organizations_url":"https://api.github.com/users/os97673/orgs","repos_url":"https://api.github.com/users/os97673/repos","events_url":"https://api.github.com/users/os97673/events{/privacy}","received_events_url":"https://api.github.com/users/os97673/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-21T09:49:16Z","updated_at":"2013-05-21T10:01:02Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10708","diff_url":"https://github.com/rails/rails/pull/10708.diff","patch_url":"https://github.com/rails/rails/pull/10708.patch"},"body":"The
95
+ code expects that as soon as Rake module is defined, Rake.application is defined
96
+ too. But this may not be true.\r\nE.g. RubyMine''s loggers are defined under
97
+ Rake::TeamCity module and so Rake module is defined, but Rake.application
98
+ isn''t"},{"url":"https://api.github.com/repos/rails/rails/issues/10707","labels_url":"https://api.github.com/repos/rails/rails/issues/10707/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10707/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10707/events","html_url":"https://github.com/rails/rails/issues/10707","id":14558805,"number":10707,"title":"call
99
+ _normalize_callback_options if options is not empty","user":{"login":"acapilleri","id":46208,"avatar_url":"https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0cd98f4e263d306bc455ca750c31443f","url":"https://api.github.com/users/acapilleri","html_url":"https://github.com/acapilleri","followers_url":"https://api.github.com/users/acapilleri/followers","following_url":"https://api.github.com/users/acapilleri/following{/other_user}","gists_url":"https://api.github.com/users/acapilleri/gists{/gist_id}","starred_url":"https://api.github.com/users/acapilleri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acapilleri/subscriptions","organizations_url":"https://api.github.com/users/acapilleri/orgs","repos_url":"https://api.github.com/users/acapilleri/repos","events_url":"https://api.github.com/users/acapilleri/events{/privacy}","received_events_url":"https://api.github.com/users/acapilleri/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2013-05-21T09:31:29Z","updated_at":"2013-05-21T15:38:28Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10707","diff_url":"https://github.com/rails/rails/pull/10707.diff","patch_url":"https://github.com/rails/rails/pull/10707.patch"},"body":"avoid
100
+ unnecessary calls of at least three functions"},{"url":"https://api.github.com/repos/rails/rails/issues/10704","labels_url":"https://api.github.com/repos/rails/rails/issues/10704/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10704/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10704/events","html_url":"https://github.com/rails/rails/issues/10704","id":14557280,"number":10704,"title":"Model
101
+ generator coupled to Migration generator","user":{"login":"frankapimenta","id":497761,"avatar_url":"https://secure.gravatar.com/avatar/d8aae6bb205ba190b1710a17d4f1b800?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d8aae6bb205ba190b1710a17d4f1b800","url":"https://api.github.com/users/frankapimenta","html_url":"https://github.com/frankapimenta","followers_url":"https://api.github.com/users/frankapimenta/followers","following_url":"https://api.github.com/users/frankapimenta/following{/other_user}","gists_url":"https://api.github.com/users/frankapimenta/gists{/gist_id}","starred_url":"https://api.github.com/users/frankapimenta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frankapimenta/subscriptions","organizations_url":"https://api.github.com/users/frankapimenta/orgs","repos_url":"https://api.github.com/users/frankapimenta/repos","events_url":"https://api.github.com/users/frankapimenta/events{/privacy}","received_events_url":"https://api.github.com/users/frankapimenta/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2013-05-21T08:47:42Z","updated_at":"2013-05-21T13:37:32Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"when
102
+ running model generator it creates a table for the model unless the option
103
+ to skip it is passed.\r\n\r\nwhen looking at the code of model generator it
104
+ looks like model generator is coupled to migration generator code by using
105
+ migration_template method.\r\n\r\nthe code is this:\r\n\r\n def create_migration_file\r\n return
106
+ unless options[:migration] && options[:parent].nil?\r\n attributes.each
107
+ { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? } if
108
+ options[:indexes] == false\r\n migration_template \"../../migration/templates/create_table_migration.rb\",
109
+ \"db/migrate/create_#{table_name}.rb\"\r\n end\r\n\r\n I think that the
110
+ migration generator should be the only one creating migration files. I think
111
+ that model generator should invoke migration generator instead of just creating
112
+ the migration file by using a method (#migration_template) that belongs to
113
+ the module Rails::Generators:Migration (included in ActiveRecord::Generators::Base
114
+ class)\r\n\r\nsomething like this would make more sense:\r\n\r\nhook_for :migration
115
+ do |instance, generator|\r\n # options control\r\n invoke generator, [\"create_#{instance.name.underscore.pluralize\"]\r\nend\r\n\r\nhowever
116
+ it is not working because the ARGV is empty (somehow in between args are
117
+ being cleared) and the options are not being piped somehow. \r\n\r\ninvoke
118
+ method prototype is: invoke(namespace, args=ARGV, config={})\r\n\r\nDoes this
119
+ make sense or there is a reason that things are like this because of Thor?
120
+ \r\n(I have few understanding of thor)"},{"url":"https://api.github.com/repos/rails/rails/issues/10703","labels_url":"https://api.github.com/repos/rails/rails/issues/10703/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10703/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10703/events","html_url":"https://github.com/rails/rails/issues/10703","id":14556927,"number":10703,"title":"Ruby
121
+ 1.9 hashes in save(validate: true)","user":{"login":"divineforest","id":22360,"avatar_url":"https://secure.gravatar.com/avatar/2fae2cf102cfaeab3d1b37bf11537617?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"2fae2cf102cfaeab3d1b37bf11537617","url":"https://api.github.com/users/divineforest","html_url":"https://github.com/divineforest","followers_url":"https://api.github.com/users/divineforest/followers","following_url":"https://api.github.com/users/divineforest/following{/other_user}","gists_url":"https://api.github.com/users/divineforest/gists{/gist_id}","starred_url":"https://api.github.com/users/divineforest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/divineforest/subscriptions","organizations_url":"https://api.github.com/users/divineforest/orgs","repos_url":"https://api.github.com/users/divineforest/repos","events_url":"https://api.github.com/users/divineforest/events{/privacy}","received_events_url":"https://api.github.com/users/divineforest/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-21T08:37:09Z","updated_at":"2013-05-21T16:01:30Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10703","diff_url":"https://github.com/rails/rails/pull/10703.diff","patch_url":"https://github.com/rails/rails/pull/10703.patch"},"body":""},{"url":"https://api.github.com/repos/rails/rails/issues/10701","labels_url":"https://api.github.com/repos/rails/rails/issues/10701/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10701/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10701/events","html_url":"https://github.com/rails/rails/issues/10701","id":14551322,"number":10701,"title":"Routing
122
+ regression between beta1 and rc1?","user":{"login":"steveklabnik","id":27786,"avatar_url":"https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"233c279c012ebac792aaa805f966cbc7","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/regression","name":"regression","color":"e10c02"},{"url":"https://api.github.com/repos/rails/rails/labels/needs+feedback","name":"needs
123
+ feedback","color":"ededed"},{"url":"https://api.github.com/repos/rails/rails/labels/routing","name":"routing","color":"e102d8"}],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2013-05-21T04:51:20Z","updated_at":"2013-05-21T10:54:08Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I
124
+ know there was some recent changes to routes, but this (very common) code
125
+ _did_ work on beta1, but fails on rc1:\r\n\r\n```\r\nget \"/signin\", to:
126
+ \"sessions#new\", as: \"signin\"\r\npost \"/signin\", to: \"sessions#create\",
127
+ as: \"signin\"\r\n```\r\n\r\nwith\r\n\r\n```rake\r\n$ bin/rake routes\r\nrake
128
+ aborted!\r\nInvalid route name, already in use: ''signin''\r\nYou may have
129
+ defined two routes with the same name using the `:as` option, or you may be
130
+ overriding a route already defined by a resource with the same naming. For
131
+ the latter, you can restrict the routes created with `resources` as explained
132
+ here:\r\nhttp://guides.rubyonrails.org/routing.html#restricting-the-routes-created\r\n```"},{"url":"https://api.github.com/repos/rails/rails/issues/10700","labels_url":"https://api.github.com/repos/rails/rails/issues/10700/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10700/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10700/events","html_url":"https://github.com/rails/rails/issues/10700","id":14549846,"number":10700,"title":"`rails
133
+ plugin new` does not respect railsrc files","user":{"login":"jimmycuadra","id":122457,"avatar_url":"https://secure.gravatar.com/avatar/8893e2e206c0377ff776d2535887d23f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"8893e2e206c0377ff776d2535887d23f","url":"https://api.github.com/users/jimmycuadra","html_url":"https://github.com/jimmycuadra","followers_url":"https://api.github.com/users/jimmycuadra/followers","following_url":"https://api.github.com/users/jimmycuadra/following{/other_user}","gists_url":"https://api.github.com/users/jimmycuadra/gists{/gist_id}","starred_url":"https://api.github.com/users/jimmycuadra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jimmycuadra/subscriptions","organizations_url":"https://api.github.com/users/jimmycuadra/orgs","repos_url":"https://api.github.com/users/jimmycuadra/repos","events_url":"https://api.github.com/users/jimmycuadra/events{/privacy}","received_events_url":"https://api.github.com/users/jimmycuadra/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/railties","name":"railties","color":"8BE06E"}],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2013-05-21T03:59:19Z","updated_at":"2013-05-21T15:36:32Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Using
134
+ Rails 4.0.0.rc1, and given the following railsrc file:\r\n\r\n```\r\n$ cat
135
+ ~/.railsrc\r\n--skip-bundle\r\n--skip-test-unit\r\n```\r\n\r\nRunning:\r\n\r\n```\r\n$
136
+ rails plugin new foo\r\n create \r\n create README.rdoc\r\n create Rakefile\r\n create foo.gemspec\r\n create MIT-LICENSE\r\n create .gitignore\r\n create Gemfile\r\n create lib/foo.rb\r\n create lib/tasks/foo_tasks.rake\r\n create lib/foo/version.rb\r\n create test/test_helper.rb\r\n create test/foo_test.rb\r\n append Rakefile\r\n vendor_app test/dummy\r\n run bundle
137
+ install\r\n```\r\n\r\nExpected: Test::Unit files should be skipped and `bundle
138
+ install` should not be run.\r\n\r\nActual: Test::unit files were created and
139
+ `bundle install` was run.\r\n\r\nI also tried with the following two invocations:\r\n\r\n```\r\n$
140
+ rails plugin new foo --rc=~/.railsrc\r\n$ rails plugin new foo --rc ~/.railsrc\r\n```\r\n\r\nThe
141
+ results were the same. The railsrc file is readable, and takes effect when
142
+ running the normal `rails new` command."},{"url":"https://api.github.com/repos/rails/rails/issues/10698","labels_url":"https://api.github.com/repos/rails/rails/issues/10698/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10698/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10698/events","html_url":"https://github.com/rails/rails/issues/10698","id":14544688,"number":10698,"title":"Backport
143
+ minitest 5 to 4-0-stable","user":{"login":"tenderlove","id":3124,"avatar_url":"https://secure.gravatar.com/avatar/f29327647a9cff5c69618bae420792ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f29327647a9cff5c69618bae420792ea","url":"https://api.github.com/users/tenderlove","html_url":"https://github.com/tenderlove","followers_url":"https://api.github.com/users/tenderlove/followers","following_url":"https://api.github.com/users/tenderlove/following{/other_user}","gists_url":"https://api.github.com/users/tenderlove/gists{/gist_id}","starred_url":"https://api.github.com/users/tenderlove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tenderlove/subscriptions","organizations_url":"https://api.github.com/users/tenderlove/orgs","repos_url":"https://api.github.com/users/tenderlove/repos","events_url":"https://api.github.com/users/tenderlove/events{/privacy}","received_events_url":"https://api.github.com/users/tenderlove/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-20T23:40:35Z","updated_at":"2013-05-21T17:22:04Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10698","diff_url":"https://github.com/rails/rails/pull/10698.diff","patch_url":"https://github.com/rails/rails/pull/10698.patch"},"body":"This
144
+ pull request backports minitest 5 to 4-0-stable."},{"url":"https://api.github.com/repos/rails/rails/issues/10694","labels_url":"https://api.github.com/repos/rails/rails/issues/10694/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10694/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10694/events","html_url":"https://github.com/rails/rails/issues/10694","id":14534225,"number":10694,"title":"Fix
145
+ regression in has_secure_password.","user":{"login":"steveklabnik","id":27786,"avatar_url":"https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"233c279c012ebac792aaa805f966cbc7","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":11,"created_at":"2013-05-20T19:14:39Z","updated_at":"2013-05-21T16:01:05Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10694","diff_url":"https://github.com/rails/rails/pull/10694.diff","patch_url":"https://github.com/rails/rails/pull/10694.patch"},"body":"If
146
+ the confirmation was blank, but the password wasn''t, it would still save.\r\n\r\nSent
147
+ via a PR for feedback. Password stuff is tricky.\r\n\r\n/cc @josevalim, @senny"},{"url":"https://api.github.com/repos/rails/rails/issues/10693","labels_url":"https://api.github.com/repos/rails/rails/issues/10693/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10693/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10693/events","html_url":"https://github.com/rails/rails/issues/10693","id":14514513,"number":10693,"title":"ActiveRecord
148
+ occasionally fails to assign associations when non-default foreign_key used","user":{"login":"slivu","id":1230455,"avatar_url":"https://secure.gravatar.com/avatar/431eccb8e2c45e43221e5aa52f304857?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"431eccb8e2c45e43221e5aa52f304857","url":"https://api.github.com/users/slivu","html_url":"https://github.com/slivu","followers_url":"https://api.github.com/users/slivu/followers","following_url":"https://api.github.com/users/slivu/following{/other_user}","gists_url":"https://api.github.com/users/slivu/gists{/gist_id}","starred_url":"https://api.github.com/users/slivu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slivu/subscriptions","organizations_url":"https://api.github.com/users/slivu/orgs","repos_url":"https://api.github.com/users/slivu/repos","events_url":"https://api.github.com/users/slivu/events{/privacy}","received_events_url":"https://api.github.com/users/slivu/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/activerecord","name":"activerecord","color":"0b02e1"}],"state":"open","assignee":null,"milestone":null,"comments":5,"created_at":"2013-05-20T10:28:44Z","updated_at":"2013-05-21T16:43:58Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Somehow
149
+ it using correct key only once...\r\n\r\n```\r\nSQLite3::SQLException: no
150
+ such column: cities.code:\r\nUPDATE \"cities\" SET \"state_code\" = NULL WHERE\r\n\"cities\".\"state_code\"
151
+ = ''W'' AND\r\n\"cities\".\"code\" IS NULL\r\n```\r\n\r\nNot sure why it is
152
+ attaching `\"cities\".\"code\" IS NULL`\r\n\r\nIt happens only when state
153
+ already has some cities attached and\r\ni''m trying to set new cities using
154
+ `#cities=`\r\n\r\nHere is how to repeat:\r\n\r\n```ruby\r\nrequire ''logger''\r\nrequire
155
+ ''active_record''\r\n\r\nActiveRecord::Base.logger = Logger.new(STDERR)\r\nActiveRecord::Base.establish_connection(\r\n adapter: \"sqlite3\",\r\n database:
156
+ \":memory:\"\r\n)\r\n\r\nActiveRecord::Schema.define do\r\n create_table
157
+ :states do |table|\r\n table.column :name, :string\r\n table.column
158
+ :code, :string\r\n end\r\n add_index :states, :code\r\n\r\n create_table
159
+ :cities do |table|\r\n table.column :name, :string\r\n table.column
160
+ :state_code, :string\r\n end\r\n add_index :cities, :state_code\r\nend\r\n\r\nclass
161
+ State < ActiveRecord::Base\r\n has_many :cities, foreign_key: :state_code,
162
+ primary_key: :code\r\nend\r\n\r\nclass City < ActiveRecord::Base\r\n belongs_to
163
+ :state, foreign_key: :state_code, primary_key: :code\r\nend\r\n\r\nstates
164
+ = (1..10).to_a.inject([]) do |s,n|\r\n s << State.create(name: n.to_s, code:
165
+ (''A''..''Z'').to_a.sample)\r\nend\r\n\r\ncities = (1..10).to_a.inject([])
166
+ do |c,n|\r\n c << City.create(name: n.to_s, state: states.sample)\r\nend\r\n\r\nstate,
167
+ state_cities = states.sample, cities.sample(5)\r\nstate_cities_n = state.cities.size\r\np
168
+ state, state_cities\r\nbegin\r\n state.cities = state_cities\r\nrescue =>
169
+ e\r\n puts '''', ''==='', e.message, ''==='', ''''\r\nend\r\nstate.save!\r\nstate.reload\r\np
170
+ [state_cities_n, state.cities.size]\r\n```\r\n\r\n\r\n\r\n\r\n"},{"url":"https://api.github.com/repos/rails/rails/issues/10690","labels_url":"https://api.github.com/repos/rails/rails/issues/10690/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10690/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10690/events","html_url":"https://github.com/rails/rails/issues/10690","id":14506210,"number":10690,"title":"Remove
171
+ attributes_protected_by_default reference","user":{"login":"robertomiranda","id":505427,"avatar_url":"https://secure.gravatar.com/avatar/22f7e57c00559503a7da07eb1e93fe88?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"22f7e57c00559503a7da07eb1e93fe88","url":"https://api.github.com/users/robertomiranda","html_url":"https://github.com/robertomiranda","followers_url":"https://api.github.com/users/robertomiranda/followers","following_url":"https://api.github.com/users/robertomiranda/following{/other_user}","gists_url":"https://api.github.com/users/robertomiranda/gists{/gist_id}","starred_url":"https://api.github.com/users/robertomiranda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robertomiranda/subscriptions","organizations_url":"https://api.github.com/users/robertomiranda/orgs","repos_url":"https://api.github.com/users/robertomiranda/repos","events_url":"https://api.github.com/users/robertomiranda/events{/privacy}","received_events_url":"https://api.github.com/users/robertomiranda/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2013-05-20T03:39:49Z","updated_at":"2013-05-20T04:02:06Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10690","diff_url":"https://github.com/rails/rails/pull/10690.diff","patch_url":"https://github.com/rails/rails/pull/10690.patch"},"body":"Remove
172
+ attributes_protected_by_default reference, since MassAssignmentSecurity was
173
+ removed from ActiveModel f8c9a4d3e88181"},{"url":"https://api.github.com/repos/rails/rails/issues/10689","labels_url":"https://api.github.com/repos/rails/rails/issues/10689/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10689/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10689/events","html_url":"https://github.com/rails/rails/issues/10689","id":14505062,"number":10689,"title":"#becomes!
174
+ sets sti_value properly","user":{"login":"jwaldrip","id":43164,"avatar_url":"https://secure.gravatar.com/avatar/ca94b06e32f746968f0aec970a702a0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"ca94b06e32f746968f0aec970a702a0c","url":"https://api.github.com/users/jwaldrip","html_url":"https://github.com/jwaldrip","followers_url":"https://api.github.com/users/jwaldrip/followers","following_url":"https://api.github.com/users/jwaldrip/following{/other_user}","gists_url":"https://api.github.com/users/jwaldrip/gists{/gist_id}","starred_url":"https://api.github.com/users/jwaldrip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwaldrip/subscriptions","organizations_url":"https://api.github.com/users/jwaldrip/orgs","repos_url":"https://api.github.com/users/jwaldrip/repos","events_url":"https://api.github.com/users/jwaldrip/events{/privacy}","received_events_url":"https://api.github.com/users/jwaldrip/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-20T02:23:44Z","updated_at":"2013-05-20T02:23:44Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10689","diff_url":"https://github.com/rails/rails/pull/10689.diff","patch_url":"https://github.com/rails/rails/pull/10689.patch"},"body":"So
175
+ the tests and docs weren''y very clear in how this was supposed to work. But
176
+ wouldn''t it make sense that it should work with the following change. If
177
+ so, I will add the tests and add an entry to the changelog."},{"url":"https://api.github.com/repos/rails/rails/issues/10687","labels_url":"https://api.github.com/repos/rails/rails/issues/10687/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10687/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10687/events","html_url":"https://github.com/rails/rails/issues/10687","id":14502156,"number":10687,"title":"Allow
178
+ selection of the eRuby implementation for templating.","user":{"login":"GICodeWarrior","id":19803,"avatar_url":"https://secure.gravatar.com/avatar/880b0cdaa92232b8914645438b0a1b7c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"880b0cdaa92232b8914645438b0a1b7c","url":"https://api.github.com/users/GICodeWarrior","html_url":"https://github.com/GICodeWarrior","followers_url":"https://api.github.com/users/GICodeWarrior/followers","following_url":"https://api.github.com/users/GICodeWarrior/following{/other_user}","gists_url":"https://api.github.com/users/GICodeWarrior/gists{/gist_id}","starred_url":"https://api.github.com/users/GICodeWarrior/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GICodeWarrior/subscriptions","organizations_url":"https://api.github.com/users/GICodeWarrior/orgs","repos_url":"https://api.github.com/users/GICodeWarrior/repos","events_url":"https://api.github.com/users/GICodeWarrior/events{/privacy}","received_events_url":"https://api.github.com/users/GICodeWarrior/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-19T21:51:22Z","updated_at":"2013-05-19T21:51:22Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10687","diff_url":"https://github.com/rails/rails/pull/10687.diff","patch_url":"https://github.com/rails/rails/pull/10687.patch"},"body":"This
179
+ presents an avenue for configuration of Erubis enhancers as well. It\r\nis
180
+ an alternative to the following reverted pull request.\r\nhttps://github.com/rails/rails/pull/7033"},{"url":"https://api.github.com/repos/rails/rails/issues/10686","labels_url":"https://api.github.com/repos/rails/rails/issues/10686/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10686/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10686/events","html_url":"https://github.com/rails/rails/issues/10686","id":14498378,"number":10686,"title":"Fix
181
+ error due to Time.at ","user":{"login":"vipulnsward","id":567626,"avatar_url":"https://secure.gravatar.com/avatar/f459742822cf8347e83d5c445378a934?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f459742822cf8347e83d5c445378a934","url":"https://api.github.com/users/vipulnsward","html_url":"https://github.com/vipulnsward","followers_url":"https://api.github.com/users/vipulnsward/followers","following_url":"https://api.github.com/users/vipulnsward/following{/other_user}","gists_url":"https://api.github.com/users/vipulnsward/gists{/gist_id}","starred_url":"https://api.github.com/users/vipulnsward/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vipulnsward/subscriptions","organizations_url":"https://api.github.com/users/vipulnsward/orgs","repos_url":"https://api.github.com/users/vipulnsward/repos","events_url":"https://api.github.com/users/vipulnsward/events{/privacy}","received_events_url":"https://api.github.com/users/vipulnsward/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-19T16:30:35Z","updated_at":"2013-05-19T16:30:35Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10686","diff_url":"https://github.com/rails/rails/pull/10686.diff","patch_url":"https://github.com/rails/rails/pull/10686.patch"},"body":"In
182
+ changes to fix https://bugs.ruby-lang.org/issues/8173. `Time.at` now requires
183
+ an object to implement `to_int`. Aliasing `to_int` to `to_i` fixes this."},{"url":"https://api.github.com/repos/rails/rails/issues/10685","labels_url":"https://api.github.com/repos/rails/rails/issues/10685/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10685/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10685/events","html_url":"https://github.com/rails/rails/issues/10685","id":14498307,"number":10685,"title":"ActiveSupport::Dependencies.const_missing
184
+ can choose incorrect from_mod","user":{"login":"trevorturk","id":402,"avatar_url":"https://secure.gravatar.com/avatar/c0b6fb3807d7d4f255463ed168c75897?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"c0b6fb3807d7d4f255463ed168c75897","url":"https://api.github.com/users/trevorturk","html_url":"https://github.com/trevorturk","followers_url":"https://api.github.com/users/trevorturk/followers","following_url":"https://api.github.com/users/trevorturk/following{/other_user}","gists_url":"https://api.github.com/users/trevorturk/gists{/gist_id}","starred_url":"https://api.github.com/users/trevorturk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trevorturk/subscriptions","organizations_url":"https://api.github.com/users/trevorturk/orgs","repos_url":"https://api.github.com/users/trevorturk/repos","events_url":"https://api.github.com/users/trevorturk/events{/privacy}","received_events_url":"https://api.github.com/users/trevorturk/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":2,"created_at":"2013-05-19T16:24:59Z","updated_at":"2013-05-19T17:41:50Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I
185
+ noticed an issue while using the MailView gem, which someone discovered a
186
+ few months ago: https://github.com/37signals/mail_view/issues/37\r\n\r\nI
187
+ traced the issue down to this commit: https://github.com/rails/rails/commit/2ed325a3e90fc17c2d52a26bd1799b5f4e4bdf88\r\n\r\nThe
188
+ issue manifests as an exception \"A copy of <name> has been removed from the
189
+ module tree but is still active!\" ...which is coming from here: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/dependencies.rb#L444-L446\r\n\r\nThe
190
+ MailView gem asks you to put a mailer in `app/mailers` like so:\r\n\r\n```ruby\r\nclass
191
+ MessagePreview < MailView\r\n def example\r\n ExampleMailer.example\r\n end\r\nend\r\n```\r\n\r\nIf
192
+ you change any model or controller in your application, you are forced to
193
+ `touch tmp/restart.txt` to avoid raising the exception. I''m able to work
194
+ around the issue by using the double-colon thingamajig to ensure we''re at
195
+ the top namespace:\r\n\r\n```ruby\r\nclass MessagePreview < MailView\r\n def
196
+ example\r\n ::ExampleMailer.example\r\n end\r\nend\r\n```\r\n\r\n...but
197
+ notice it''s done on the mailer. I did some debugging and noticed something
198
+ strange in `load_missing_constant` like so:\r\n\r\n```ruby\r\nload_missing_constant(from_mod,
199
+ const_name)\r\nfrom_mod = MessagePreview\r\nconst_name = ExampleMailer\r\n```\r\n\r\nSo,
200
+ I believe `Dependencies` is (incorrectly?) assuming that `ExampleMailer` is
201
+ defined in `MessagePreview` when it is just a regular mailer defined like
202
+ so:\r\n\r\n```ruby\r\nclass ExampleMailer < ApplicationMailer\r\n def example\r\n end\r\nend\r\n```\r\n\r\n...which,
203
+ I believe was changed by this commit: https://github.com/rails/rails/commit/2ed325a3e90fc17c2d52a26bd1799b5f4e4bdf88\r\n\r\nI''m
204
+ not sure if this is a bug with Rails or with MailView, to be honest. I haven''t
205
+ looked at the ActiveSupport::Dependencies code until now. Something seems
206
+ fishy, though, so I thought I should open an issue here to get some more :eyes:
207
+ on it. \r\n\r\n/cc @fxn \r\n\r\n"},{"url":"https://api.github.com/repos/rails/rails/issues/10682","labels_url":"https://api.github.com/repos/rails/rails/issues/10682/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10682/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10682/events","html_url":"https://github.com/rails/rails/issues/10682","id":14491022,"number":10682,"title":"Adds
208
+ a class level #destroy! method, which raises an","user":{"login":"fabiokr","id":21800,"avatar_url":"https://secure.gravatar.com/avatar/67ac8dcae2fde06e9b4833e9d3796e4c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"67ac8dcae2fde06e9b4833e9d3796e4c","url":"https://api.github.com/users/fabiokr","html_url":"https://github.com/fabiokr","followers_url":"https://api.github.com/users/fabiokr/followers","following_url":"https://api.github.com/users/fabiokr/following{/other_user}","gists_url":"https://api.github.com/users/fabiokr/gists{/gist_id}","starred_url":"https://api.github.com/users/fabiokr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabiokr/subscriptions","organizations_url":"https://api.github.com/users/fabiokr/orgs","repos_url":"https://api.github.com/users/fabiokr/repos","events_url":"https://api.github.com/users/fabiokr/events{/privacy}","received_events_url":"https://api.github.com/users/fabiokr/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-19T01:48:16Z","updated_at":"2013-05-19T01:48:16Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10682","diff_url":"https://github.com/rails/rails/pull/10682.diff","patch_url":"https://github.com/rails/rails/pull/10682.patch"},"body":"4faaa811614b408
209
+ instroduces the instance level `#destroy!` method, which raises ActiveRecord::RecordNotDestroyed
210
+ on failure. \r\n\r\nThis PR adds a class level `destroy!` method, which delegates
211
+ to the instance `destroy!` method. That way, one can do `Model.destroy!(id)`."},{"url":"https://api.github.com/repos/rails/rails/issues/10681","labels_url":"https://api.github.com/repos/rails/rails/issues/10681/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10681/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10681/events","html_url":"https://github.com/rails/rails/issues/10681","id":14489482,"number":10681,"title":"autosave_association
212
+ issue that occurs when table has unique index (3.2.x backport)","user":{"login":"jholton","id":733873,"avatar_url":"https://secure.gravatar.com/avatar/f6f9bd18dcbce19b4e0d9c6cba2cf329?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f6f9bd18dcbce19b4e0d9c6cba2cf329","url":"https://api.github.com/users/jholton","html_url":"https://github.com/jholton","followers_url":"https://api.github.com/users/jholton/followers","following_url":"https://api.github.com/users/jholton/following{/other_user}","gists_url":"https://api.github.com/users/jholton/gists{/gist_id}","starred_url":"https://api.github.com/users/jholton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jholton/subscriptions","organizations_url":"https://api.github.com/users/jholton/orgs","repos_url":"https://api.github.com/users/jholton/repos","events_url":"https://api.github.com/users/jholton/events{/privacy}","received_events_url":"https://api.github.com/users/jholton/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-18T22:22:28Z","updated_at":"2013-05-18T22:22:28Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10681","diff_url":"https://github.com/rails/rails/pull/10681.diff","patch_url":"https://github.com/rails/rails/pull/10681.patch"},"body":"This
213
+ is a backport of #10417\r\n\r\nThe issue:\r\nPer the comments in pull #3329,
214
+ \r\nIf you have a table with a unique field index, and you mark a record for
215
+ destruction, and you build a new record with the same value as the unique
216
+ field, then when you call save, a database level unique index error will be
217
+ thrown.\r\n\r\nThis happens because the record destruction happens after record
218
+ creation.\r\n\r\nIn this pull request, I moved the record destruction ahead
219
+ of the record creation."},{"url":"https://api.github.com/repos/rails/rails/issues/10679","labels_url":"https://api.github.com/repos/rails/rails/issues/10679/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10679/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10679/events","html_url":"https://github.com/rails/rails/issues/10679","id":14487813,"number":10679,"title":"Improper
220
+ generator syntax for controller, model and scaffold within a module","user":{"login":"AJ-Acevedo","id":953092,"avatar_url":"https://secure.gravatar.com/avatar/13935313a12b251732345172e91557d6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"13935313a12b251732345172e91557d6","url":"https://api.github.com/users/AJ-Acevedo","html_url":"https://github.com/AJ-Acevedo","followers_url":"https://api.github.com/users/AJ-Acevedo/followers","following_url":"https://api.github.com/users/AJ-Acevedo/following{/other_user}","gists_url":"https://api.github.com/users/AJ-Acevedo/gists{/gist_id}","starred_url":"https://api.github.com/users/AJ-Acevedo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AJ-Acevedo/subscriptions","organizations_url":"https://api.github.com/users/AJ-Acevedo/orgs","repos_url":"https://api.github.com/users/AJ-Acevedo/repos","events_url":"https://api.github.com/users/AJ-Acevedo/events{/privacy}","received_events_url":"https://api.github.com/users/AJ-Acevedo/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-18T19:35:28Z","updated_at":"2013-05-18T19:51:46Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I
221
+ have a few concerns about the way the rails generator creates a controller,
222
+ model, helper and a scaffold within a nested module. \r\n\r\n1. If you generate
223
+ a controller `rails g controller bar/post index` and the `bar` module is
224
+ not previously defined, rails will output an ''uninitialized constant'' error.\r\n2.
225
+ The generator does not follow the ruby idiom for nesting modules.\r\n3. Using
226
+ the generator with a module requires a lot of refactoring to clean up the
227
+ code.\r\n\r\n\r\nAccording to `rails g controller --help`:\r\n\r\n*To create
228
+ a controller within a module, specify the controller name as a\r\n path
229
+ like ''parent_module/controller_name''.*\r\n\r\n\r\n**STEPS TO REPRODUCE:**\r\n`$
230
+ rails plugin new foo --mountable`\r\n`$ rails g controller bar/post index
231
+ `\r\n\r\n```ruby\r\n# foo/app/controllers/foo/bar/post_controller.rb\r\nrequire_dependency
232
+ \"foo/application_controller\"\r\n\r\nmodule Foo\r\n class Bar::PostController
233
+ < ApplicationController\r\n def index\r\n end\r\n end\r\nend\r\n```\r\n\r\nThe
234
+ proper syntax for generating a controller within a module should be:\r\n\r\n```ruby\r\n#
235
+ foo/app/controllers/foo/bar/post_controller.rb\r\nrequire_dependency \"foo/application_controller\"\r\n\r\nmodule
236
+ Foo\r\n module Bar\r\n class PostController < ApplicationController\r\n def
237
+ index\r\n end\r\n end\r\n end\r\nend\r\n```\r\n\r\nI have verified
238
+ this behavior with the generator for controller, model, helper and scaffold."},{"url":"https://api.github.com/repos/rails/rails/issues/10677","labels_url":"https://api.github.com/repos/rails/rails/issues/10677/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10677/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10677/events","html_url":"https://github.com/rails/rails/issues/10677","id":14482957,"number":10677,"title":"Indexing
239
+ or Unindexing single columns of a single table via migration generator","user":{"login":"frankapimenta","id":497761,"avatar_url":"https://secure.gravatar.com/avatar/d8aae6bb205ba190b1710a17d4f1b800?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"d8aae6bb205ba190b1710a17d4f1b800","url":"https://api.github.com/users/frankapimenta","html_url":"https://github.com/frankapimenta","followers_url":"https://api.github.com/users/frankapimenta/followers","following_url":"https://api.github.com/users/frankapimenta/following{/other_user}","gists_url":"https://api.github.com/users/frankapimenta/gists{/gist_id}","starred_url":"https://api.github.com/users/frankapimenta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frankapimenta/subscriptions","organizations_url":"https://api.github.com/users/frankapimenta/orgs","repos_url":"https://api.github.com/users/frankapimenta/repos","events_url":"https://api.github.com/users/frankapimenta/events{/privacy}","received_events_url":"https://api.github.com/users/frankapimenta/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/railties","name":"railties","color":"8BE06E"}],"state":"open","assignee":null,"milestone":null,"comments":13,"created_at":"2013-05-18T12:36:48Z","updated_at":"2013-05-21T19:25:20Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10677","diff_url":"https://github.com/rails/rails/pull/10677.diff","patch_url":"https://github.com/rails/rails/pull/10677.patch"},"body":"Sometimes
240
+ happens that later in the development process one realizes that a few columns
241
+ of a particular table should have been indexed.\r\n\r\nThis pull request easies
242
+ the addition and removal of indexes of single columns on/from a single table
243
+ by using the migration generator via CLI\r\n\r\nThe changelog as well as the
244
+ code provides the cases of use.\r\n\r\nLooking forward to your feedback.\r\n\r\nFrank
245
+ Pimenta"},{"url":"https://api.github.com/repos/rails/rails/issues/10673","labels_url":"https://api.github.com/repos/rails/rails/issues/10673/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10673/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10673/events","html_url":"https://github.com/rails/rails/issues/10673","id":14476727,"number":10673,"title":"Add
246
+ ability to specify how a class is converted to Arel predicate when passed
247
+ to where","user":{"login":"sgrif","id":1529387,"avatar_url":"https://secure.gravatar.com/avatar/0f674817f8c6e149518f0a4b4ad3d560?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"0f674817f8c6e149518f0a4b4ad3d560","url":"https://api.github.com/users/sgrif","html_url":"https://github.com/sgrif","followers_url":"https://api.github.com/users/sgrif/followers","following_url":"https://api.github.com/users/sgrif/following{/other_user}","gists_url":"https://api.github.com/users/sgrif/gists{/gist_id}","starred_url":"https://api.github.com/users/sgrif/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgrif/subscriptions","organizations_url":"https://api.github.com/users/sgrif/orgs","repos_url":"https://api.github.com/users/sgrif/repos","events_url":"https://api.github.com/users/sgrif/events{/privacy}","received_events_url":"https://api.github.com/users/sgrif/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/activerecord","name":"activerecord","color":"0b02e1"}],"state":"open","assignee":null,"milestone":null,"comments":13,"created_at":"2013-05-18T00:27:00Z","updated_at":"2013-05-20T17:22:34Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10673","diff_url":"https://github.com/rails/rails/pull/10673.diff","patch_url":"https://github.com/rails/rails/pull/10673.patch"},"body":"This
248
+ adds the ability for rails apps or gems to have granular control\r\nover how
249
+ a domain object is converted to sql. One simple use case would\r\nbe to add
250
+ support for Regexp. Another simple case would be something\r\nlike the following:\r\n\r\n class
251
+ DateRange < Struct.new(:start, :end)\r\n def include?(date)\r\n (start..end).cover?(date)\r\n end\r\n end\r\n\r\n class
252
+ DateRangePredicate\r\n def call(attribute, range)\r\n attribute.in(range.start..range.end)\r\n end\r\n end\r\n\r\n ActiveRecord::PredicateBuilder.register_handler(DateRange,
253
+ DateRangePredicate.new)\r\n\r\nMore complex cases might include taking a currency
254
+ object and converting\r\nit from EUR to USD before performing the query.\r\n\r\nBy
255
+ moving the existing handlers to this format, we were also able to\r\nnicely
256
+ refactor a rather nasty method in PredicateBuilder.\r\n\r\nThis would also
257
+ make it fairly simple to add make it possible to define special handling for
258
+ individual columns (e.g. for things like database level encryption, which
259
+ currently requires massive hacking to perform). That''s probably suited for
260
+ a separate pull request, though."},{"url":"https://api.github.com/repos/rails/rails/issues/10670","labels_url":"https://api.github.com/repos/rails/rails/issues/10670/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10670/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10670/events","html_url":"https://github.com/rails/rails/issues/10670","id":14469198,"number":10670,"title":"Change
261
+ find_or_create to do INSERT before SELECT","user":{"login":"jcoglan","id":9265,"avatar_url":"https://secure.gravatar.com/avatar/81eec7f220df03d5b8cadf106a2c14c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"81eec7f220df03d5b8cadf106a2c14c5","url":"https://api.github.com/users/jcoglan","html_url":"https://github.com/jcoglan","followers_url":"https://api.github.com/users/jcoglan/followers","following_url":"https://api.github.com/users/jcoglan/following{/other_user}","gists_url":"https://api.github.com/users/jcoglan/gists{/gist_id}","starred_url":"https://api.github.com/users/jcoglan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcoglan/subscriptions","organizations_url":"https://api.github.com/users/jcoglan/orgs","repos_url":"https://api.github.com/users/jcoglan/repos","events_url":"https://api.github.com/users/jcoglan/events{/privacy}","received_events_url":"https://api.github.com/users/jcoglan/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2013-05-17T20:04:04Z","updated_at":"2013-05-17T22:56:06Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10670","diff_url":"https://github.com/rails/rails/pull/10670.diff","patch_url":"https://github.com/rails/rails/pull/10670.patch"},"body":"This
262
+ makes find_or_create() safe to use with concurrent requests by\r\nrelying
263
+ on unique indexes to raise errors if the INSERT fails. By doing\r\nthe SELECT
264
+ first, we leave this method open to the same race conditions\r\nthat affect
265
+ uniqueness validation."},{"url":"https://api.github.com/repos/rails/rails/issues/10669","labels_url":"https://api.github.com/repos/rails/rails/issues/10669/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10669/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10669/events","html_url":"https://github.com/rails/rails/issues/10669","id":14464110,"number":10669,"title":"Merging
266
+ scopes with joins clauses written as text fails","user":{"login":"iwiznia","id":521248,"avatar_url":"https://secure.gravatar.com/avatar/f81560e8e8743d0df6a467b88df31bbc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"f81560e8e8743d0df6a467b88df31bbc","url":"https://api.github.com/users/iwiznia","html_url":"https://github.com/iwiznia","followers_url":"https://api.github.com/users/iwiznia/followers","following_url":"https://api.github.com/users/iwiznia/following{/other_user}","gists_url":"https://api.github.com/users/iwiznia/gists{/gist_id}","starred_url":"https://api.github.com/users/iwiznia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iwiznia/subscriptions","organizations_url":"https://api.github.com/users/iwiznia/orgs","repos_url":"https://api.github.com/users/iwiznia/repos","events_url":"https://api.github.com/users/iwiznia/events{/privacy}","received_events_url":"https://api.github.com/users/iwiznia/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/rails/rails/labels/activerecord","name":"activerecord","color":"0b02e1"}],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-17T17:56:55Z","updated_at":"2013-05-17T18:03:25Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"This
267
+ is related to the issue: #3002 and the pull requests: #5494, #10164, #10303.\r\nI''m
268
+ testing this in master branch.\r\n\r\nI have a failing test here: https://github.com/iwiznia/rails/commit/d12343fe4fd65b94f48bb0df5a99177cd8d6ba20\r\nI
269
+ don''t know if I need to open a pull request just with a failing test or just
270
+ report it here.\r\n\r\nBasically, this works:\r\n```ruby\r\nspecial_comments_with_ratings
271
+ = SpecialComment.joins(:ratings)\r\nposts_with_special_comments_with_ratings
272
+ = Post.joins(:special_comments).merge(special_comments_with_ratings)\r\n```\r\nAnd
273
+ this fails with \"ActiveRecord::ConfigurationError: Association named ''INNER
274
+ JOIN \"ratings\" ON \"comments\".id = \"ratings\".comment_id'' was not found
275
+ on Post; perhaps you misspelled it?\":\r\n```ruby\r\nspecial_comments_with_ratings
276
+ = SpecialComment.joins(\"INNER JOIN #{Rating.quoted_table_name} ON #{SpecialComment.quoted_table_name}.id
277
+ = #{Rating.quoted_table_name}.comment_id\")\r\nposts_with_special_comments_with_ratings
278
+ = Post.joins(:special_comments).merge(special_comments_with_ratings)\r\n```\r\n\r\nIt
279
+ seems that this was working and got broken somewhere (I''m basing this on
280
+ this comment https://github.com/rails/rails/pull/5494#issuecomment-5262803
281
+ that states that merging a join using :symbol didn''t work but it did work
282
+ when sending a string, now the opposite is true).\r\n\r\n(I don''t know how
283
+ to fix the issue, so if anyone can point me in the right direction maybe I
284
+ can give it a try..."},{"url":"https://api.github.com/repos/rails/rails/issues/10668","labels_url":"https://api.github.com/repos/rails/rails/issues/10668/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10668/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10668/events","html_url":"https://github.com/rails/rails/issues/10668","id":14462901,"number":10668,"title":"Bad
285
+ encoding when presenting the lines of a posted text file","user":{"login":"pedrogaspar","id":471214,"avatar_url":"https://secure.gravatar.com/avatar/61631dfeacc216221bd64f3cc0012a9f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"61631dfeacc216221bd64f3cc0012a9f","url":"https://api.github.com/users/pedrogaspar","html_url":"https://github.com/pedrogaspar","followers_url":"https://api.github.com/users/pedrogaspar/followers","following_url":"https://api.github.com/users/pedrogaspar/following{/other_user}","gists_url":"https://api.github.com/users/pedrogaspar/gists{/gist_id}","starred_url":"https://api.github.com/users/pedrogaspar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pedrogaspar/subscriptions","organizations_url":"https://api.github.com/users/pedrogaspar/orgs","repos_url":"https://api.github.com/users/pedrogaspar/repos","events_url":"https://api.github.com/users/pedrogaspar/events{/privacy}","received_events_url":"https://api.github.com/users/pedrogaspar/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-17T17:25:10Z","updated_at":"2013-05-17T17:25:10Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Having
286
+ a form that submits a file, when reading with:\r\n\r\n file = params[:file]\r\n @file
287
+ = file.read\r\n\r\nand presenting in a view\r\n\r\n <%= @file %>\r\n\r\nShows
288
+ the error: _incompatible character encodings: ASCII-8BIT and UTF-8_\r\n\r\nBut
289
+ if we read with\r\n\r\n file = File.read(params[:file].path)\r\n\r\nIt
290
+ works."},{"url":"https://api.github.com/repos/rails/rails/issues/10667","labels_url":"https://api.github.com/repos/rails/rails/issues/10667/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10667/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10667/events","html_url":"https://github.com/rails/rails/issues/10667","id":14462059,"number":10667,"title":"Eliminate
291
+ minitest warnings","user":{"login":"rubys","id":4815,"avatar_url":"https://secure.gravatar.com/avatar/e2dda5e47fccc5ff0daa87debf48162b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"e2dda5e47fccc5ff0daa87debf48162b","url":"https://api.github.com/users/rubys","html_url":"https://github.com/rubys","followers_url":"https://api.github.com/users/rubys/followers","following_url":"https://api.github.com/users/rubys/following{/other_user}","gists_url":"https://api.github.com/users/rubys/gists{/gist_id}","starred_url":"https://api.github.com/users/rubys/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubys/subscriptions","organizations_url":"https://api.github.com/users/rubys/orgs","repos_url":"https://api.github.com/users/rubys/repos","events_url":"https://api.github.com/users/rubys/events{/privacy}","received_events_url":"https://api.github.com/users/rubys/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-17T17:04:44Z","updated_at":"2013-05-17T17:04:44Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10667","diff_url":"https://github.com/rails/rails/pull/10667.diff","patch_url":"https://github.com/rails/rails/pull/10667.patch"},"body":"See
292
+ https://github.com/seattlerb/minitest/commit/9a57c520ceac76abfe6105866f8548a94eb357b6#L15R8"},{"url":"https://api.github.com/repos/rails/rails/issues/10666","labels_url":"https://api.github.com/repos/rails/rails/issues/10666/labels{/name}","comments_url":"https://api.github.com/repos/rails/rails/issues/10666/comments","events_url":"https://api.github.com/repos/rails/rails/issues/10666/events","html_url":"https://github.com/rails/rails/issues/10666","id":14451788,"number":10666,"title":"make
293
+ \"rails dbconsole\" work with activerecord-postgis-adapter","user":{"login":"YanhaoYang","id":1280056,"avatar_url":"https://secure.gravatar.com/avatar/b72e52690b1e7225824a48afa3813e9a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"b72e52690b1e7225824a48afa3813e9a","url":"https://api.github.com/users/YanhaoYang","html_url":"https://github.com/YanhaoYang","followers_url":"https://api.github.com/users/YanhaoYang/followers","following_url":"https://api.github.com/users/YanhaoYang/following{/other_user}","gists_url":"https://api.github.com/users/YanhaoYang/gists{/gist_id}","starred_url":"https://api.github.com/users/YanhaoYang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YanhaoYang/subscriptions","organizations_url":"https://api.github.com/users/YanhaoYang/orgs","repos_url":"https://api.github.com/users/YanhaoYang/repos","events_url":"https://api.github.com/users/YanhaoYang/events{/privacy}","received_events_url":"https://api.github.com/users/YanhaoYang/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-05-17T13:19:34Z","updated_at":"2013-05-17T13:19:34Z","closed_at":null,"pull_request":{"html_url":"https://github.com/rails/rails/pull/10666","diff_url":"https://github.com/rails/rails/pull/10666.diff","patch_url":"https://github.com/rails/rails/pull/10666.patch"},"body":"It''s
294
+ a minor change. I only added \"postgis\" to the \"when\" clause to make it
295
+ recognize \"postgis\"."}]'
296
+ http_version:
297
+ recorded_at: Tue, 21 May 2013 20:03:39 GMT
298
+ recorded_with: VCR 2.5.0