{"action":"created","comment":{"url":"https://api.github.com/repos/altmetric/urn/pulls/comments/56657535","id":56657535,"diff_hunk":"@@ -2,6 +2,43 @@\n All notable changes to this project will be documented in this file. This\n project adheres to [Semantic Versioning](http://semver.org/).\n \n+## Current\n+### Changed\n+- Only return `URN` instances for valid `URN`s at creation. Raise `URN::InvalidURNError` otherwise.\n+- `#normalize` returns a normalized `URN` object instead of its `String` representation. You can get the normalized `String` representation with `.normalize.to_s`\n+- Do not allow hexadecimal numbers from 0 to 20. See [RFC2141](https://www.ietf.org/rfc/rfc2141.txt) section \"2.4 Excluded characters\".\n+\n+### Added\n+- Shortcut method (`URN()`) at creation:\n+```ruby\n+urn = URN('URN:Name:Spec')\n+#=> #<URN:0x007fd97a835558 @urn=\"URN:Name:Spec\">\n+```\n+- `REGEX` into the API documentation\n+- `#nid` returns the namespace identifier part.\n+```ruby\n+urn = URN('URN:Name:Spec')","path":"CHANGELOG.md","position":19,"original_position":19,"commit_id":"460e4aa5409fe83472de75f8e19a580ff7d5fd74","original_commit_id":"460e4aa5409fe83472de75f8e19a580ff7d5fd74","user":{"login":"ascastro","id":67388,"avatar_url":"https://avatars.githubusercontent.com/u/67388?v=3","gravatar_id":"","url":"https://api.github.com/users/ascastro","html_url":"https://github.com/ascastro","followers_url":"https://api.github.com/users/ascastro/followers","following_url":"https://api.github.com/users/ascastro/following{/other_user}","gists_url":"https://api.github.com/users/ascastro/gists{/gist_id}","starred_url":"https://api.github.com/users/ascastro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ascastro/subscriptions","organizations_url":"https://api.github.com/users/ascastro/orgs","repos_url":"https://api.github.com/users/ascastro/repos","events_url":"https://api.github.com/users/ascastro/events{/privacy}","received_events_url":"https://api.github.com/users/ascastro/received_events","type":"User","site_admin":false},"body":"I think we are missing the `.nid` here","created_at":"2016-03-18T13:48:15Z","updated_at":"2016-03-18T13:48:15Z","html_url":"https://github.com/altmetric/urn/pull/12#discussion_r56657535","pull_request_url":"https://api.github.com/repos/altmetric/urn/pulls/12","_links":{"self":{"href":"https://api.github.com/repos/altmetric/urn/pulls/comments/56657535"},"html":{"href":"https://github.com/altmetric/urn/pull/12#discussion_r56657535"},"pull_request":{"href":"https://api.github.com/repos/altmetric/urn/pulls/12"}}},"pull_request":{"url":"https://api.github.com/repos/altmetric/urn/pulls/12","id":63374566,"html_url":"https://github.com/altmetric/urn/pull/12","diff_url":"https://github.com/altmetric/urn/pull/12.diff","patch_url":"https://github.com/altmetric/urn/pull/12.patch","issue_url":"https://api.github.com/repos/altmetric/urn/issues/12","number":12,"state":"open","locked":false,"title":"Release 2.0","user":{"login":"jbilbo","id":111434,"avatar_url":"https://avatars.githubusercontent.com/u/111434?v=3","gravatar_id":"","url":"https://api.github.com/users/jbilbo","html_url":"https://github.com/jbilbo","followers_url":"https://api.github.com/users/jbilbo/followers","following_url":"https://api.github.com/users/jbilbo/following{/other_user}","gists_url":"https://api.github.com/users/jbilbo/gists{/gist_id}","starred_url":"https://api.github.com/users/jbilbo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbilbo/subscriptions","organizations_url":"https://api.github.com/users/jbilbo/orgs","repos_url":"https://api.github.com/users/jbilbo/repos","events_url":"https://api.github.com/users/jbilbo/events{/privacy}","received_events_url":"https://api.github.com/users/jbilbo/received_events","type":"User","site_admin":false},"body":"**Note**: These are the changes planned for the 2.0, which I'd like to release this Monday 21st March 2016.\r\n\r\n### Changed\r\n- Only return `URN` instances for valid `URN`s at creation. Raise `URN::InvalidURNError` otherwise.\r\n- `#normalize` returns a normalized `URN` object instead of its `String` representation. You can get the normalized `String` representation with `.normalize.to_s`\r\n- Do not allow hexadecimal numbers from 0 to 20. See [RFC2141](https://www.ietf.org/rfc/rfc2141.txt) section \"2.4 Excluded characters\".\r\n\r\n### Added\r\n- Shortcut method (`URN()`) at creation:\r\n```ruby\r\nurn = URN('URN:Name:Spec')\r\n#=> #<URN:0x007fd97a835558 @urn=\"URN:Name:Spec\">\r\n```\r\n- `REGEX` into the API documentation\r\n- `#nid` returns the namespace identifier part.\r\n```ruby\r\nurn = URN('URN:Name:Spec')\r\n#=> \"NameSpace\"\r\n```\r\n- `#nss` returns the namespace specific string part.\r\n```ruby\r\nurn = URN('URN:Name:Spec')\r\n#=> \"Identifier\"\r\n```\r\n- `#to_s` returns the `String` representation.\r\n```ruby\r\nURN('URN:Name:Spec').to_s\r\n#=> \"URN:Name:Spec\"\r\n```\r\n- `#===(other)` returns true if the URN objects are equivalent. This method normalizes both URNs before doing the comparison, and allows comparison against Strings.\r\n- `#==(other)` returns true if the URN objects are equivalent. This method normalizes both URNs before doing the comparison.\r\n- `#eql?(other)` returns true if the URN objects are equal. This method does NOT normalize either URN before doing the comparison.\r\n- `.extract(str)` attempts to parse and merge a set of URNs. If no `block` is given, then returns the result as an `Array`. Else it calls `block` for each element in result and returns `nil`.\r\n\r\n### Removed\r\n- `#valid?`. Validity check is now at object creation time, therefore all instances of `URN` are valid.","created_at":"2016-03-18T13:34:41Z","updated_at":"2016-03-18T13:48:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dc0b841815f41471177417b25c8320a16efd4135","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/altmetric/urn/pulls/12/commits","review_comments_url":"https://api.github.com/repos/altmetric/urn/pulls/12/comments","review_comment_url":"https://api.github.com/repos/altmetric/urn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/altmetric/urn/issues/12/comments","statuses_url":"https://api.github.com/repos/altmetric/urn/statuses/460e4aa5409fe83472de75f8e19a580ff7d5fd74","head":{"label":"altmetric:2.0","ref":"2.0","sha":"460e4aa5409fe83472de75f8e19a580ff7d5fd74","user":{"login":"altmetric","id":4312914,"avatar_url":"https://avatars.githubusercontent.com/u/4312914?v=3","gravatar_id":"","url":"https://api.github.com/users/altmetric","html_url":"https://github.com/altmetric","followers_url":"https://api.github.com/users/altmetric/followers","following_url":"https://api.github.com/users/altmetric/following{/other_user}","gists_url":"https://api.github.com/users/altmetric/gists{/gist_id}","starred_url":"https://api.github.com/users/altmetric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/altmetric/subscriptions","organizations_url":"https://api.github.com/users/altmetric/orgs","repos_url":"https://api.github.com/users/altmetric/repos","events_url":"https://api.github.com/users/altmetric/events{/privacy}","received_events_url":"https://api.github.com/users/altmetric/received_events","type":"Organization","site_admin":false},"repo":{"id":52893509,"name":"urn","full_name":"altmetric/urn","owner":{"login":"altmetric","id":4312914,"avatar_url":"https://avatars.githubusercontent.com/u/4312914?v=3","gravatar_id":"","url":"https://api.github.com/users/altmetric","html_url":"https://github.com/altmetric","followers_url":"https://api.github.com/users/altmetric/followers","following_url":"https://api.github.com/users/altmetric/following{/other_user}","gists_url":"https://api.github.com/users/altmetric/gists{/gist_id}","starred_url":"https://api.github.com/users/altmetric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/altmetric/subscriptions","organizations_url":"https://api.github.com/users/altmetric/orgs","repos_url":"https://api.github.com/users/altmetric/repos","events_url":"https://api.github.com/users/altmetric/events{/privacy}","received_events_url":"https://api.github.com/users/altmetric/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/altmetric/urn","description":"Ruby library to validate and normalize URNs according to RFC 2141.","fork":false,"url":"https://api.github.com/repos/altmetric/urn","forks_url":"https://api.github.com/repos/altmetric/urn/forks","keys_url":"https://api.github.com/repos/altmetric/urn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/altmetric/urn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/altmetric/urn/teams","hooks_url":"https://api.github.com/repos/altmetric/urn/hooks","issue_events_url":"https://api.github.com/repos/altmetric/urn/issues/events{/number}","events_url":"https://api.github.com/repos/altmetric/urn/events","assignees_url":"https://api.github.com/repos/altmetric/urn/assignees{/user}","branches_url":"https://api.github.com/repos/altmetric/urn/branches{/branch}","tags_url":"https://api.github.com/repos/altmetric/urn/tags","blobs_url":"https://api.github.com/repos/altmetric/urn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/altmetric/urn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/altmetric/urn/git/refs{/sha}","trees_url":"https://api.github.com/repos/altmetric/urn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/altmetric/urn/statuses/{sha}","languages_url":"https://api.github.com/repos/altmetric/urn/languages","stargazers_url":"https://api.github.com/repos/altmetric/urn/stargazers","contributors_url":"https://api.github.com/repos/altmetric/urn/contributors","subscribers_url":"https://api.github.com/repos/altmetric/urn/subscribers","subscription_url":"https://api.github.com/repos/altmetric/urn/subscription","commits_url":"https://api.github.com/repos/altmetric/urn/commits{/sha}","git_commits_url":"https://api.github.com/repos/altmetric/urn/git/commits{/sha}","comments_url":"https://api.github.com/repos/altmetric/urn/comments{/number}","issue_comment_url":"https://api.github.com/repos/altmetric/urn/issues/comments{/number}","contents_url":"https://api.github.com/repos/altmetric/urn/contents/{+path}","compare_url":"https://api.github.com/repos/altmetric/urn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/altmetric/urn/merges","archive_url":"https://api.github.com/repos/altmetric/urn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/altmetric/urn/downloads","issues_url":"https://api.github.com/repos/altmetric/urn/issues{/number}","pulls_url":"https://api.github.com/repos/altmetric/urn/pulls{/number}","milestones_url":"https://api.github.com/repos/altmetric/urn/milestones{/number}","notifications_url":"https://api.github.com/repos/altmetric/urn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/altmetric/urn/labels{/name}","releases_url":"https://api.github.com/repos/altmetric/urn/releases{/id}","deployments_url":"https://api.github.com/repos/altmetric/urn/deployments","created_at":"2016-03-01T16:51:40Z","updated_at":"2016-03-15T12:20:53Z","pushed_at":"2016-03-18T13:34:41Z","git_url":"git://github.com/altmetric/urn.git","ssh_url":"git@github.com:altmetric/urn.git","clone_url":"https://github.com/altmetric/urn.git","svn_url":"https://github.com/altmetric/urn","homepage":"","size":47,"stargazers_count":10,"watchers_count":10,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":10,"default_branch":"master"}},"base":{"label":"altmetric:master","ref":"master","sha":"01e660c38f6e19c92314c936b792c048d2368fa4","user":{"login":"altmetric","id":4312914,"avatar_url":"https://avatars.githubusercontent.com/u/4312914?v=3","gravatar_id":"","url":"https://api.github.com/users/altmetric","html_url":"https://github.com/altmetric","followers_url":"https://api.github.com/users/altmetric/followers","following_url":"https://api.github.com/users/altmetric/following{/other_user}","gists_url":"https://api.github.com/users/altmetric/gists{/gist_id}","starred_url":"https://api.github.com/users/altmetric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/altmetric/subscriptions","organizations_url":"https://api.github.com/users/altmetric/orgs","repos_url":"https://api.github.com/users/altmetric/repos","events_url":"https://api.github.com/users/altmetric/events{/privacy}","received_events_url":"https://api.github.com/users/altmetric/received_events","type":"Organization","site_admin":false},"repo":{"id":52893509,"name":"urn","full_name":"altmetric/urn","owner":{"login":"altmetric","id":4312914,"avatar_url":"https://avatars.githubusercontent.com/u/4312914?v=3","gravatar_id":"","url":"https://api.github.com/users/altmetric","html_url":"https://github.com/altmetric","followers_url":"https://api.github.com/users/altmetric/followers","following_url":"https://api.github.com/users/altmetric/following{/other_user}","gists_url":"https://api.github.com/users/altmetric/gists{/gist_id}","starred_url":"https://api.github.com/users/altmetric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/altmetric/subscriptions","organizations_url":"https://api.github.com/users/altmetric/orgs","repos_url":"https://api.github.com/users/altmetric/repos","events_url":"https://api.github.com/users/altmetric/events{/privacy}","received_events_url":"https://api.github.com/users/altmetric/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/altmetric/urn","description":"Ruby library to validate and normalize URNs according to RFC 2141.","fork":false,"url":"https://api.github.com/repos/altmetric/urn","forks_url":"https://api.github.com/repos/altmetric/urn/forks","keys_url":"https://api.github.com/repos/altmetric/urn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/altmetric/urn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/altmetric/urn/teams","hooks_url":"https://api.github.com/repos/altmetric/urn/hooks","issue_events_url":"https://api.github.com/repos/altmetric/urn/issues/events{/number}","events_url":"https://api.github.com/repos/altmetric/urn/events","assignees_url":"https://api.github.com/repos/altmetric/urn/assignees{/user}","branches_url":"https://api.github.com/repos/altmetric/urn/branches{/branch}","tags_url":"https://api.github.com/repos/altmetric/urn/tags","blobs_url":"https://api.github.com/repos/altmetric/urn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/altmetric/urn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/altmetric/urn/git/refs{/sha}","trees_url":"https://api.github.com/repos/altmetric/urn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/altmetric/urn/statuses/{sha}","languages_url":"https://api.github.com/repos/altmetric/urn/languages","stargazers_url":"https://api.github.com/repos/altmetric/urn/stargazers","contributors_url":"https://api.github.com/repos/altmetric/urn/contributors","subscribers_url":"https://api.github.com/repos/altmetric/urn/subscribers","subscription_url":"https://api.github.com/repos/altmetric/urn/subscription","commits_url":"https://api.github.com/repos/altmetric/urn/commits{/sha}","git_commits_url":"https://api.github.com/repos/altmetric/urn/git/commits{/sha}","comments_url":"https://api.github.com/repos/altmetric/urn/comments{/number}","issue_comment_url":"https://api.github.com/repos/altmetric/urn/issues/comments{/number}","contents_url":"https://api.github.com/repos/altmetric/urn/contents/{+path}","compare_url":"https://api.github.com/repos/altmetric/urn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/altmetric/urn/merges","archive_url":"https://api.github.com/repos/altmetric/urn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/altmetric/urn/downloads","issues_url":"https://api.github.com/repos/altmetric/urn/issues{/number}","pulls_url":"https://api.github.com/repos/altmetric/urn/pulls{/number}","milestones_url":"https://api.github.com/repos/altmetric/urn/milestones{/number}","notifications_url":"https://api.github.com/repos/altmetric/urn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/altmetric/urn/labels{/name}","releases_url":"https://api.github.com/repos/altmetric/urn/releases{/id}","deployments_url":"https://api.github.com/repos/altmetric/urn/deployments","created_at":"2016-03-01T16:51:40Z","updated_at":"2016-03-15T12:20:53Z","pushed_at":"2016-03-18T13:34:41Z","git_url":"git://github.com/altmetric/urn.git","ssh_url":"git@github.com:altmetric/urn.git","clone_url":"https://github.com/altmetric/urn.git","svn_url":"https://github.com/altmetric/urn","homepage":"","size":47,"stargazers_count":10,"watchers_count":10,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/altmetric/urn/pulls/12"},"html":{"href":"https://github.com/altmetric/urn/pull/12"},"issue":{"href":"https://api.github.com/repos/altmetric/urn/issues/12"},"comments":{"href":"https://api.github.com/repos/altmetric/urn/issues/12/comments"},"review_comments":{"href":"https://api.github.com/repos/altmetric/urn/pulls/12/comments"},"review_comment":{"href":"https://api.github.com/repos/altmetric/urn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/altmetric/urn/pulls/12/commits"},"statuses":{"href":"https://api.github.com/repos/altmetric/urn/statuses/460e4aa5409fe83472de75f8e19a580ff7d5fd74"}}}}