summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * Improve the setup scriptMichael Herold2019-11-172-3/+15
| | | | | | | | | | We weren't installing the dependencies for the integration tests so the default Rake task was failing upon first run on a new machine.
| * Switch to only setting Bundler as a dev dependencyMichael Herold2019-11-172-14/+17
| | | | | | | | | | Our contributing documentation specifically mentions Bundler so we should set it as a development dependency.
| * Exclude tests from the gem releaseMichael Herold2019-11-172-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you're installing a gem in a production environment, you want it to install as fast it can. One of the ways you can speed up the installation of the gem is by making it smaller. We currently ship the test suite with the gem, increasing the size of the built gem significantly. By not shipping the test suite, we can shrink the size of the gem by 38%. Below are the measurements I took for that statement. **The size of the gem with the test suite** $ du -b hashie-4.0.1.gem 80384 hashie-4.0.1.gem **The size of the gem without the test suite** $ du -b hashie-4.0.1.gem 50176 hashie-4.0.1.gem
| * Adjust URL in gemspec and add metadata URLsMichael Herold2019-11-171-0/+9
|/ | | | | | RubyGems.org has recently added the capability to have extra metadata URLs shown on the gem page. These are handy for people who are new to a gem or need to report an issue.
* Update github urls to hashie/hashie (#497)Bobby McDonald2019-11-179-205/+210
| | | | | | | | | | | | | | | | * Update github urls to hashie/hashie * Point omniauth in integration tests at master. Until omniauth releases the changes merged from https://github.com/omniauth/omniauth/pull/977 , we must point at master branch. * revert incorrect change of gem email Co-Authored-By: Michael Herold <github@michaeljherold.com> * Reference open issue for release
* Remove github actionsBobby McDonald2019-11-161-31/+0
| | | This is causing too much noise while I experiment, I'll move it to my fork of hashie and test there.
* Pass specific ruby versions for ruby-buildBobby McDonald2019-11-161-1/+1
|
* Use ruby-build with cacheBobby McDonald2019-11-161-2/+8
|
* remove erroneously pasted codeBobby McDonald2019-11-161-7/+0
|
* versions should be stringsBobby McDonald2019-11-161-1/+8
|
* Use correct matrix variableBobby McDonald2019-11-161-2/+2
|
* Initial attempt at adding github actions CIBobby McDonald2019-11-161-0/+25
|
* Merge pull request #496 from michaelherold/update-readme-from-moveDaniel Doubrovkine (dB.) @dblockdotorg2019-11-161-6/+6
|\ | | | | Update the README from moving the repo
| * Update the README from moving the repoMichael Herold2019-11-161-6/+6
|/ | | | [ci skip]
* Preparing for next development iteration, 4.0.1.Bobby McDonald2019-10-303-2/+34
|
* Preparing for release, 4.0.0.v4.0.0Bobby McDonald2019-10-303-20/+4
|
* Merge pull request #492 from BobbyMcWho/remove-blacklist-whitelistDaniel Doubrovkine (dB.) @dblockdotorg2019-10-286-25/+26
|\ | | | | Remove references to blacklists and whitelists
| * Remove references to blacklists and whitelistsBobby McDonald2019-10-256-25/+26
| |
* | Merge pull request #491 from BobbyMcWho/100-char-linesDaniel Doubrovkine (dB.) @dblockdotorg2019-10-2023-64/+141
|\ \ | | | | | | Change rubocop to restrict to 100 character lines.
| * | Change rubocop to allow 100 character lines.Bobby McDonald2019-10-1723-64/+141
| | | | | | | | | | | | | | | For accessibility reasons, we should limit our lines to 100 chars max. https://github.com/slack-ruby/slack-ruby-client/pull/293#discussion_r309472083
* | | Merge pull request #490 from BobbyMcWho/refactor-quietDaniel Doubrovkine (dB.) @dblockdotorg2019-10-181-5/+4
|\ \ \ | |/ / |/| | refactor quiet method
| * | remove tap and use blockBobby McDonald2019-10-171-5/+4
|/ /
* | Merge pull request #489 from Bhacaz/documentation_keyword_argumentsDaniel Doubrovkine (dB.) @dblockdotorg2019-10-162-4/+11
|\ \ | |/ | | Updated README.md
| * Updated README.mdJean-Francis Bastien2019-10-152-4/+11
|/ | | | SymbolizeKeys and Keywords argument behavior.
* Allow mash error silencing (#488)Bobby McDonald2019-10-148-77/+131
|
* Make Hashie play nice with Rails 6 Hash#except method (#479)Bobby McDonald2019-10-0210-20/+51
|
* Merge pull request #481 from BobbyMcWho/480-implement-non-destructive-methodsDaniel Doubrovkine (dB.) @dblockdotorg2019-08-185-10/+279
|\ | | | | Implement non-destructive standard Hash methods
| * Upgrading to 4.0Bobby McDonald2019-08-162-2/+42
| |
| * Implement ruby 2.6 hash merging.Bobby McDonald2019-08-142-5/+41
| | | | | | | | | | | | As of ruby 2.6, Hash#merge and Hash#merge! allow for multiple hashes to be passed to the method, and will merge each one in the order that they were passed.
| * Implement non-destructive hash methodsBobby McDonald2019-08-143-3/+196
|/ | | | | | | | | | | | | | | When calling the following non-destructive hash methods: :compact :invert :reject :select :slice :transform_keys :transform_values we would be returned an instance of a standard Hash rather than a Mash (or subclass). This changes that behavior to instead return an instance of the class the method was called on.
* Merge pull request #482 from BobbyMcWho/travis-updatesDaniel Doubrovkine (dB.) @dblockdotorg2019-08-142-8/+16
|\ | | | | Travis updates
| * Add ruby 2.6 jobBobby McDonald2019-08-141-0/+2
| |
| * Update ruby versions to default xenial installedBobby McDonald2019-08-141-5/+5
| |
| * Update Travis configs to make jruby builds run on trusty dist.Bobby McDonald2019-08-141-0/+1
| |
| * Use trusty for jrubyBobby McDonald2019-08-141-2/+4
| |
| * use trusty on rbx-3Bobby McDonald2019-08-141-1/+2
| |
| * Name some of the build matrixBobby McDonald2019-08-141-0/+2
|/
* Add selective key-conflict warnings for Mash subclasses (#478)Bobby McDonald2019-07-185-8/+137
| | | | | | | | | | | In some cases, you want to be able to ignore Mash warnings for keys that you know you aren't going to access via a method accessor, yet be warned for other keys that you know you might want to access. This change adds the ability to selectively ignore warnings for specific keys instead of globally ignoring the warnings. The change retains the original behavior as well, so if you call `Mash.disable_warnings` without a value it will still globally ignore the warnings.
* Merge pull request #475 from unimatrixZxero/patch-1Daniel Doubrovkine (dB.) @dblockdotorg2019-04-111-2/+2
|\ | | | | Fix README typo
| * Fix README typoSam Figueroa2019-04-111-2/+2
|/
* Allow options on Mash.load (#474)Daniel Doubrovkine (dB.) @dblockdotorg2019-03-229-15/+102
| | | | | | | | | | | | | | | | | `Mash.load` uses the Ruby standard library to load Yaml-serialized files into a Mash. The original implementation used `YAML.load` for this purpose. However, that method is inherently unsafe so we switched to using `YAML.safe_load`. Safely loading Yaml files has many different domain-specific configuration flags that we did not, by default, expose. This change introduces the ability to configure the safe loading of Yaml files so that all types of Yaml can be loaded when necessary using the flags from the standard library. This implementation preserves the backwards-compatibility with the prior implementation so that it should not require updates from users of the current `Mash.load` behavior. For those who this change affects, we included upgrading documentation to ease the transition.
* Merge pull request #323 from marshall-lee/define_accessorsDaniel Doubrovkine (dB.) @dblockdotorg2019-01-287-2/+212
|\ | | | | Add Hashie::Extensions::Mash::DefineAccessors.
| * Add Hashie::Extensions::Mash::DefineAccessors.Vladimir Kochnev2019-01-287-2/+212
|/ | | | | | | | | | | | | | | | | | | | | | | This patch adds an extension for Mash that makes it behave like `OpenStruct`. It reduces overhead of `method_missing?` magic which is a good thing! It's inspired by the recent @sferik's work on `OpenStruct` — https://github.com/ruby/ruby/pull/1033. When using it in `Mash` subclasses it makes them *remember* methods so then it's more like `ActiveModel` than `OpenStruct` in this case. To use it like `OpenStruct` one could use this shortcut: ```ruby { foo: 1, bar: 2 }.to_mash.with_accessors! ``` Implementation details: It injects to class an anonymous module that stores accessor method definitions. This is inspired by `ActiveModel` / `ActiveRecord`. It allows to override accessors in subclass and call them via `super` if this is intended.
* Merge pull request #468 from laertispappas/reverse_checkDaniel Doubrovkine (dB.) @dblockdotorg2018-10-041-1/+1
|\ | | | | Reverse condition check in Mash#deep_update
| * Reverse condition check in Mash#deep_updateLaerti Papa2018-10-031-1/+1
|/
* Merge pull request #465 from laertispappas/merge_default_blkDaniel Doubrovkine (dB.) @dblockdotorg2018-10-023-1/+11
|\ | | | | Calls readers only when a key exists for Mash#update
| * Do not call any reader attribute in Mash#update if key does not existLaerti Papa2018-10-023-1/+11
|/ | | | Refs: https://github.com/intridea/hashie/issues/464
* Merge pull request #466 from michaelherold/improve-rubocop-setupDaniel Doubrovkine (dB.) @dblockdotorg2018-10-0123-89/+170
|\ | | | | Improve our RuboCop setup
| * [rubocop] Improve our RuboCop setupMichael Herold2018-09-3023-89/+170
|/ | | | | | | | | | | Disable Metrics/BlockLength in specs because the length of a block in the test suite isn't something we want to lint. We want the tests to be as long as they need to be. Set an explicit line length metric instead of continually updating this as we go. Let's pick a max line length that we want to see and stick with it. This metric should only ever decrease: we don't want to see it ever increase again.
* Merge pull request #463 from alexandergraul/readabilityDaniel Doubrovkine (dB.) @dblockdotorg2018-09-221-2/+2
|\ | | | | Use == instead of <= in build_coercion