# 1.2.0 #### Major changes - Adds serialization support through the following methods ([#63](https://github.com/eonu/arx/pull/63)): - `to_h`: Serialize into a Ruby hash (with symbol keys). Accepts a boolean argument, representing whether or not to deep-serialize nested `Author` and `Category` objects (defaults to `false`). - `as_json`: Serialize into a Ruby hash which is also a valid JSON hash. - `to_json`: Serialize into a valid JSON string. - Remove version filter from query ID list. ([#69](https://github.com/eonu/arx/pull/69)) > Previously, all of the following would return the latest paper, `1807.06918v2`: > ```ruby > Arx.get('1807.06918').version #=> 2 > Arx.get('1807.06918v1').version #=> 2 > Arx.get('1807.06918v2').version #=> 2 > ``` - Adds `ATTRIBUTES` constant for `Paper`, `Author` and `Category` entities, as a list of which attributes are available for the entity. ([#63](https://github.com/eonu/arx/pull/63)) - Remove key-word arguments from `Paper#id` and `Paper#url`. ([#70](https://github.com/eonu/arx/pull/70)) > Previously, `Paper#id` and `Paper#url` accepted a `version` key-word argument, which was a boolean variable indicating whether or not to include the version number in the ID or URL. > > This has now been changed to a regular argument, which still defaults to `false`. > ```ruby > paper = Arx.get('cond-mat/9609089') > > # Old (no longer works) > paper.id(version: true) > paper.url(version: true) > > # New > paper.id(true) #=> "cond-mat/9609089v1" > paper.url(true) #=> "http://arxiv.org/abs/cond-mat/9609089v1" > ``` - Add equality operator (`==`) to entities. ([#68](https://github.com/eonu/arx/pull/68)) #### Minor changes - Add more category mappings to `CATEGORIES`. ([#71](https://github.com/eonu/arx/pull/71)) - Add licensing information to `README.md` under the *Acknowledgements* section. ([#66](https://github.com/eonu/arx/pull/66)) - Add `yard` development dependency for documentation. ([#65](https://github.com/eonu/arx/pull/65)) - Make documentation spacing uniform. ([#64](https://github.com/eonu/arx/pull/64)) - Coveralls: - `coveralls` [`= 0.8.22` to `= 0.8.23`] ([#62](https://github.com/eonu/arx/pull/62)) - `thor` [`~> 0.19.4` to `~> 0.20.3`] ([#67](https://github.com/eonu/arx/pull/67)) # 1.1.0 #### Major changes - Change `bundler` requirement to `>= 1.17` in `arx.gemspec`. ([#53](https://github.com/eonu/arx/pull/53)) - Remove `Arx.find` alias of `Arx.search`. ([#57](https://github.com/eonu/arx/pull/57)) - Add `Query#group` for subquery grouping support. ([#59](https://github.com/eonu/arx/pull/59)) #### Minor changes - Add contributing guidelines (`CONTRIBUTING.md`). ([#48](https://github.com/eonu/arx/pull/48)) - Add issue templates to `./github/ISSUE_TEMPLATE` for ([#49](https://github.com/eonu/arx/pull/49), [#54](https://github.com/eonu/arx/pull/54), [#55](https://github.com/eonu/arx/pull/55)): - **Error or warning**
For reporting an error or warning generated by Arx. - **Unexpected or incorrect functionality**
For reporting something that doesn't seem to be working correctly or is unexpected. - **Improvement to an existing feature**
For suggesting an improvement to a feature already offered by Arx. - **Suggesting a new feature**
For proposing a new feature to Arx that would be beneficial. - Add a pull request template at `./github/PULL_REQUEST_TEMPLATE.md`. ([#49](https://github.com/eonu/arx/pull/49)) - Remove issue templates from `CONTRIBUTING.md`. ([#49](https://github.com/eonu/arx/pull/49)) - Remove `LICENSE` from YARD documentation (remove from `.yardopts`). ([#50](https://github.com/eonu/arx/pull/50)) - Add RVM ruby version `2.6` to `.travis.yml`. ([#53](https://github.com/eonu/arx/pull/53)) - Add contributor code-of-conduct (`CODE_OF_CONDUCT.md`). ([#56](https://github.com/eonu/arx/pull/56)) - Thank Scholastica in `README.md`. ([#58](https://github.com/eonu/arx/pull/58)) - Add `bin/console` for gem debugging. ([#60](https://github.com/eonu/arx/pull/60)) - Modify `gem:debug` rake task to run `bin/console`. ([#60](https://github.com/eonu/arx/pull/60)) # 1.0.1 #### Major changes - Add cases to handle `nil` query returns. ([#45](https://github.com/eonu/arx/pull/45)) - Add support for the `coveralls` gem (`.coveralls.yml` configuration file). ([#42](https://github.com/eonu/arx/pull/42)) #### Minor changes - Add code coverage badge to `README.md`. ([#42](https://github.com/eonu/arx/pull/42)) - Remove documentation badge from top of `README.md`. ([#42](https://github.com/eonu/arx/pull/42)) - Change author email from `ed@mail.eonu.net` to `ed@eonu.net`. ([#43](https://github.com/eonu/arx/pull/43)) - Change `ends_with_connective?` to `end_with_connective?` to follow typical Ruby patterns. ([#44](https://github.com/eonu/arx/pull/44)) - Add `/coverage/` directory to `.gitignore`. ([#45](https://github.com/eonu/arx/pull/45)) - Remove version numbers from paper identifiers in error message in `README.md`. ([#46](https://github.com/eonu/arx/pull/46)) # 1.0.0 #### Major changes - Change `Query` connective instance methods ([#38](https://github.com/eonu/arx/pull/38)): - `#&` -> `#and` - `#|` -> `#or` - `#!` -> `#and_not` - Split version number from paper identifier in `Paper` (add `version` key-word argument to `#id` and `#url`, and add `#version`). ([#39](https://github.com/eonu/arx/pull/39)) - Add `Cleaner.extract_id` and `Cleaner.extract_version`. ([#39](https://github.com/eonu/arx/pull/39)) - Make `Query#add_connective` always return `self`. ([#40](https://github.com/eonu/arx/pull/40)) - Redefine `Arx.search` to user `Paper.parse`'s `search` key-word argument. ([#40](https://github.com/eonu/arx/pull/40)) - Implement all tests. ([#40](https://github.com/eonu/arx/pull/40)) #### Minor changes - Change declared regular expression literals from `%r""` to standard `//`. ([#39](https://github.com/eonu/arx/pull/39)) - Remove `#extract_id` from `Query` and use `Cleaner.extract_id` instead. ([#39](https://github.com/eonu/arx/pull/39)) - Redefine `Paper#revision?` to use the new `#version` instead of `#updated_at` and`#published_at`. ([#39](https://github.com/eonu/arx/pull/39)) # 0.3.2 #### Major changes - Add `Paper#category` alias for `Paper#primary_category`. ([#34](https://github.com/eonu/arx/pull/34)) - Change `Author#affiliations?` to `Author#affiliated?`. ([#34](https://github.com/eonu/arx/pull/34)) - Change `Paper#last_updated` to `Paper#updated_at` (and remove `updated_at` alias). ([#34](https://github.com/eonu/arx/pull/34)) - Change `Paper#publish_date` to `Paper#published_at` (and remove `published_at` alias). ([#34](https://github.com/eonu/arx/pull/34)) - Conditionally assign query object in `Arx.search` with `||=` operator. ([#33](https://github.com/eonu/arx/pull/33)) - Add `gem:debug` rake task for loading the gem into an interactive console. ([#28](https://github.com/eonu/arx/pull/28)) - Add `gem:release` rake task for preparing gem releases. ([#36](https://github.com/eonu/arx/pull/36)) - Add `thor` gem development dependency. ([#36](https://github.com/eonu/arx/pull/36)) #### Minor changes - Update documentation links to `rubydoc.info`'s GitHub service. ([#30](https://github.com/eonu/arx/pull/30)) - Add email address to `LICENSE`. ([#31](https://github.com/eonu/arx/pull/31)) - Improve `Error::MissingField` and `Error::MissingLink` error messages. ([#35](https://github.com/eonu/arx/pull/35)) # 0.3.1 #### Major changes - Add `.yardopts` for document generation configuration. ([#26](https://github.com/eonu/arx/pull/26)) - Namespace errors in `Arx::Error` module and remove `Error` prefix from error classes. ([#26](https://github.com/eonu/arx/pull/26)) - Move identifier format regular expression constant definitions from `Arx::Validate` to top-level namespace `Arx`. ([#26](https://github.com/eonu/arx/pull/26)) #### Minor changes - Rename `lib/arx/exceptions.rb` to `lib/arx/errors.rb`. ([#26](https://github.com/eonu/arx/pull/26)) - Make `Arx::Cleaner`, `Arx::Validate`, `Arx::Inspector`, `Arx::Link` private (hidden from `yard` documentation). ([#26](https://github.com/eonu/arx/pull/26)) # 0.3.0 #### Major changes - Add documentation, images, installation and usage instructions to `README.md`. ([#22](https://github.com/eonu/arx/pull/22), [#17](https://github.com/eonu/arx/pull/17)) - Allow prior construction of a search query in `Arx.search`. ([#18](https://github.com/eonu/arx/pull/18)) - Fix `Arx.search` query object yielding. ([#20](https://github.com/eonu/arx/pull/20)) #### Minor changes - Remove conditional with `block_given?` in `Arx()` method. ([#16](https://github.com/eonu/arx/pull/16)) - Remove leading ampersand (&) from search query string. ([#19](https://github.com/eonu/arx/pull/19)) - Add base paper categories and more aliases. ([#21](https://github.com/eonu/arx/pull/21)) # 0.2.0 #### Major changes - Flatten provided values in `Arx::Paper`'s field instance methods (allow an array as the `values` splat parameter). ([#5](https://github.com/eonu/arx/pull/5)) - Add `Arx.find` and `Arx.get` as aliases for `Arx.search`. ([#6](https://github.com/eonu/arx/pull/6), [#8](https://github.com/eonu/arx/pull/8)) #### Minor changes - Add `homepage` and `metadata` fields to `arx.gemspec`. ([#1](https://github.com/eonu/arx/pull/1), [#14](https://github.com/eonu/arx/pull/14)) - Specify required ruby version (`~> 2.5`) in `arx.gemspec`. ([#2](https://github.com/eonu/arx/pull/2)) - Add badges to `README.md`. ([#3](https://github.com/eonu/arx/pull/3), [#9](https://github.com/eonu/arx/pull/9)) - Fix documentation for `Arx::Paper`'s field methods `exact` argument. ([#4](https://github.com/eonu/arx/pull/4)) - Update documentation links in `arx.gemspec` and `README.md`. ([#7](https://github.com/eonu/arx/pull/7)) - Remove newline from end of `Gemfile`. ([#11](https://github.com/eonu/arx/pull/11)) - Add ruby-head version to RVM rubies in `.travis.yml`. ([#12](https://github.com/eonu/arx/pull/12)) - Remove unnecessary git-ignored files. ([#13](https://github.com/eonu/arx/pull/13), [#10](https://github.com/eonu/arx/pull/10)) # 0.1.0 Initial commit! 🎉