summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Preparing for release, 3.4.3. [ci skip]v3.4.3dblock2015-10-252-6/+5
|
* - Removed `Hashie::Extensions::MergeInitializer` from `StrictKeyAccess` ↵Peter Boling2015-10-242-31/+45
| | | | | | | Extension - Updated, and enhanced specs - Improved documentation
* Merge pull request #314 from pboling/dictionaryDaniel Doubrovkine (dB.) @dblockdotorg2015-10-235-0/+191
|\ | | | | StrictKeyAccess Extension
| * SRP: The StrictKeyAccess extension will raise an error whenever a key is ↵Peter Boling2015-10-235-0/+191
|/ | | | | | | | | | | | | | | | | | | | | | accessed that does not exist in the hash. In Python a "Hash" is called a "Dictionary", and ... > "It is an error to extract a value using a non-existent key." See: https://docs.python.org/2/tutorial/datastructures.html#dictionaries EXAMPLE: class StrictHash < Hash include Hashie::Extensions::StrictKeyAccess end >> hash = StrictHash[foo: "bar"] => {:foo=>"bar"} >> hash[:foo] => "bar" >> hash[:cow] KeyError: key not found: :cow
* Merge pull request #315 from pboling/modernize-gemDaniel Doubrovkine (dB.) @dblockdotorg2015-10-233-0/+22
|\ | | | | Default bin scripts from bundle gem command: bin/console and bin/setup
| * Default bin scripts from bundle gem command: bin/console and bin/setupPeter Boling2015-10-223-0/+22
| |
* | Updated build matrix.Peter Boling2015-10-231-3/+4
|/ | | | | | - Update 2.2.2 to 2.2.3 - Update 2.1.6 to 2.1.7 - Add rbx-2.5.8
* Merge pull request #313 from pboling/issue/312-ruby-2.2.3-fixes-pended-mash-specDaniel Doubrovkine (dB.) @dblockdotorg2015-10-225-14/+4
|\ | | | | Restrict pending the spec to only Ruby versions 2.2.0, 2.2.1, 2.2.2
| * @dblockPeter Boling2015-10-224-60/+2
| | | | | | | | | | - a one liner with no complexity for pending specs by Ruby Engine / Version - removes all complexity from Hashie
| * - Restrict pending the spec to only Ruby versions 2.2.0, 2.2.1, 2.2.2Peter Boling2015-10-183-9/+57
|/ | | | - Better paradigm for pending specs due to bugs in interpreter
* Merge pull request #311 from marshall-lee/refactor_coercionDaniel Doubrovkine (dB.) @dblockdotorg2015-09-021-39/+65
|\ | | | | Refactor `Hashie::Extensions::Coercion`, add cache.
| * Refactor `Hashie::Extensions::Coercion`, add cache.Vladimir Kochnev2015-09-021-39/+65
| |
* | Merge pull request #310 from marshall-lee/speedup_safe_assignmentDaniel Doubrovkine (dB.) @dblockdotorg2015-09-023-2/+30
|\ \ | |/ |/| Speed up SafeAssignment and fix private methods.
| * Speed up SafeAssignment and fix private methods.Vladimir Kochnev2015-09-023-2/+30
|/
* Merge pull request #308 from marshall-lee/mash_micro_optimizeDaniel Doubrovkine (dB.) @dblockdotorg2015-08-311-12/+19
|\ | | | | Some micro optimizations to Hashie::Mash.
| * Some micro optimizations to Hashie::Mash.Vladimir Kochnev2015-08-311-12/+19
| |
* | Merge pull request #307 from marshall-lee/patch-1Daniel Doubrovkine (dB.) @dblockdotorg2015-08-311-2/+0
|\ \ | | | | | | Remove needless code
| * | Remove needless codeVladimir Kochnev2015-08-311-2/+0
|/ /
* | Merge pull request #306 from marshall-lee/coerce_key_optionsDaniel Doubrovkine (dB.) @dblockdotorg2015-08-315-0/+70
|\ \ | |/ |/| Introduce Hashie::Extensions::Dash::Coercion.
| * Introduce Hashie::Extensions::Dash::Coercion.Vladimir Kochnev2015-08-315-0/+70
|/
* Merge pull request #304 from regexident/masterMichael Herold2015-06-107-10/+85
|\ | | | | Fixed #303 (deep_merge/stringify_keys/symbolize_keys not working via hash.extend(…))
| * Fix bug (#303) preventing use of deep_merge/stringify_keys/symbolize_keys on ↵Vincent Esche2015-06-087-10/+85
|/ | | | extended singleton objects.
* Preparing for next release, 3.4.3Michael Herold2015-06-023-2/+6
|
* Preparing for release 3.4.2v3.4.2Michael Herold2015-06-022-3/+2
|
* The hashie_rails gem is now hashie-forbidden_attributes.Daniel Doubrovkine (dB.) @dblockdotorg2015-05-191-1/+1
|
* Merge pull request #297 from michaelherold/property-translationDaniel Doubrovkine (dB.) @dblockdotorg2015-04-305-118/+217
|\ | | | | Extract Trash behavior into an extension
| * Update readme with PropertyTranslation docsMichael Herold2015-04-291-1/+46
| |
| * Extract Trash behavior into an extensionMichael Herold2015-04-254-117/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Issue #188 brought up the fact that a Trash is really just a Dash with some extended behavior. Why don't we make that a little more explicit and define its behavior as an extension? *Follow Up* If this is merged, I move that we deprecate Trash for removal in 4.0. I think reducing the number of classes will help users better understand what behavior they are including in their subclasses. In the long run, a 4.0 release would look really good with all of the behavior factored out into extension methods. As we continue down that path, we can slowly deprecate all of the `*ash` classes with the 3.x releases. What do the other maintainers think of this suggestion? Fixes #188
* | Merge pull request #298 from intridea/circular-coercion-docsDaniel Doubrovkine (dB.) @dblockdotorg2015-04-272-0/+96
|\ \ | |/ |/| Add documentation about circular coercion
| * Add documentation about circular coercioncircular-coercion-docsMichael Herold2015-04-262-0/+96
|/ | | | | | | | | | | | | | | | | | | | | | | The `coerce_key` method in the Coercion extension is a class-level method. As such, using circular coercion is not possible without using a coercion proc/lambda, since the coercion in the first type will not have the second type defined at load time. This can be worked around through the use of a coercion proc. I have added docs about this to the README, as well as tests that demonstrate the behavior. I don't see this as a bug, since doing this raises a Ruby-level error that makes sense. The only way I can think of to make the non-working demonstration work that I can think of would make the DSL a lot noisier (i.e. make all of the "intos" use procs/lambdas to yield the class name/structure that you'd like. Something like `coerce_key :model, to: -> { Model }`, which then grabs that returned `Model` and is applied. I think this is a reduction in user experience, so I chose not to pursue it. Fixes #115
* Clarify the in-line documentation for DeepFindMichael Herold2015-04-181-0/+18
| | | | Fixes #284
* Add a conditional check for 2.2.x specsMichael Herold2015-04-183-14/+27
| | | | | | | | | | | | | | | | | | | | | | | This adds a way to handle the broken spec in MRI 2.2.x that was introduced by a regression in the language. It is slated to be in 2.3.0 and seems partially fixed in 2.2.2. In order to have the full spec suite run on every version of Ruby but keep the brevity of the Mash specs, we needed a way to check for the Ruby version and selectively disable the two errant specs. We need to be testing on the latest Ruby, so this seems to be the best compromise. For more information on the breakage in Ruby, see [issue 285][rubybug]. For more information on this decision, see [issue 294][workaround]. Fixes #294 /cc #285 [rubybug]: https://github.com/intridea/hashie/pull/285 [workaround]: https://github.com/intridea/hashie/pull/294
* MRI 2.2.2 fixes bug, can test #method againJonathan Rochkind2015-04-182-1/+3
|
* Add missing CHANGELOG entry for 2.1.2Michael Herold2015-04-181-1/+5
| | | | | | Fixes #295 [ci skip]
* Update rubocop ignore syntax to silence warningsMichael Herold2015-04-091-3/+3
| | | | | The Travis builds were pretty noisy due to all of the warnings that were being output from this deprecated syntax.
* Cache bundler dependencies on TravisMichael Herold2015-04-091-0/+1
| | | | | | | | | | Along with the Docker enhancement, this should speed up our build time by quite a bit. It's been verified on several open source Ruby projects, so shouldn't be an issue. The main bottleneck for our CI now is that Rubinius takes a while to install from RVM. I'm not sure if there's anything we can do about that, but it is an order of magnitude slower than the rest of the tests.
* Merge pull request #293 from michaelherold/mash_respond_to_suffix_ruby_2_2Daniel Doubrovkine (dB.) @dblockdotorg2015-04-092-3/+12
|\ | | | | Fixed specs to run with Ruby 2.2
| * Fix comment to link to bugMichael Herold2015-04-091-2/+2
| |
| * (Fixed) specs to run with ruby 2.2Michael Sievers2015-04-092-3/+12
|/
* Merge pull request #291 from jrochkind/travis_mri_22Daniel Doubrovkine (dB.) @dblockdotorg2015-04-081-0/+2
|\ | | | | Add MRI 2.2.1 to travis
| * Add MRI 2.2.1 to travisJonathan Rochkind2015-04-081-0/+2
| |
* | Removed Mash#id and Mash#type.Jonathan Rochkind2015-04-082-9/+2
| | | | | | | | | | | | | | | | | | | | Ruby 1.8.7 had Object#id and #type, both of which were deprecated, which Hashie::Mash wanted to cover with more reasonable methods. These methods in Object were removed in ruby 1.9. The cover methods are unneeded, and can cause problems with Mash::SafeAssignment preventing you from using these as keys. Fixes #290
* | Merge pull request #289 from kdelchev/patch-1Daniel Doubrovkine (dB.) @dblockdotorg2015-04-031-1/+1
|\ \ | | | | | | Minor fix in doc
| * | Minor fix in docKonstantin Delchev2015-04-031-1/+1
|/ /
* | Preparing for next development iteration, 3.4.2.dB2015-03-312-3/+7
| |
* | Preparing for release, 3.4.1.v3.4.1dB2015-03-312-3/+2
| |
* | Another spec for #288.Max Lincoln2015-03-311-0/+12
| |
* | Fixed coercions in a subclass accumulating in the superclass.Martin Streicher2015-03-313-4/+11
| |
* | Merge pull request #287 from RunsFor/masterDaniel Doubrovkine (dB.) @dblockdotorg2015-03-231-1/+1
|\ \ | | | | | | Fix typo in changelog
| * | Fix typo in changelogIlya Konyukhov2015-03-221-1/+1
|/ /