summaryrefslogtreecommitdiff
path: root/spec/unit/puppet/provider/file_line/ruby_spec.rb
AgeCommit message (Collapse)Author
2017-09-29(maint) Clarify docs and add new testsAlex Harvey
Based on a Stack Overflow question, it was noted that the documentation for `file_line` isn't complete and the underlying behaviour somewhat confusing. https://stackoverflow.com/questions/46468922/how-to-change-the-contents-of-a-file-by-using-puppet/46473458 In this patch I add additional unit tests and better examples and complete documentation.
2017-07-18Add new file_line option append_on_no_matchasif.shaikh
2017-07-13(MODULES-5003) file_line_does_not_change_multiple_lines_when_one_matchestkishel
The exists? method is called to determine the need to call the create and destroy methods. When the ensure, match, and multiple attributes are defined, the exists? method needs to return false unless all the lines that match the match attribute equal the line attribute. The first commit is minimal, and implements this change. The second commit normalizes the code, which I needed for comprehension.
2017-07-07Merge pull request #788 from tphoney/MODULES-5003Eric Putnam
(MODULES-5003) file_line fix all broken lines
2017-07-07(MODULES-5186) dont run this test on windowstphoney
2017-07-03(MODULES-5003) file_line fix all broken linestphoney
2016-10-06(MODULES-3590) Fix match_for_absence parameterHailee Kenney
Prior to this commit, due to a bug in the exists? method in the file_line provider, match_for_absence didn't work as described (or at all really). Update the exists? logic so that match_for_absence works as described. Additionally add a unit test to prevent regressions and update the documentation for the parameter to reflect the fact that it is ignored when `ensure => present`.
2016-03-24Fixed typo 'absense' to 'absence'Derek McEachern
2015-08-06allow `match` parameter to influence `ensure => absent` behavior.Johnson Earls
Split the `destroy` method of the file_type::ruby provider into two private methods: `handle_destroy_line` which is the same as the previous `destroy` method, and `handle_destroy_with_match` which will destroy any line which matches the `match` parameter, raising an error if multiple lines match and the `multiple` parameter is not `true`. This new behavior is only used if the new boolean parameter `match_for_absence` is `true` (it defaults to `false`).
2015-08-04(MODULES-2316) Change file_type boolean parameter to symbolsDominic Cleal
Puppet's boolean parameter type is only available in Puppet 3.3 and higher, so change file_type's new "replace" parameter to a regular parameter with true and false as possible values. This matches the existing "multiple" parameter.
2015-07-30(MODULES-2024) Adding replace attribute to file_lineRaymond Maika
2015-05-29 (MODULES-2071) Refactor file_line provider to contain logic to handle ↵Raymond Maika
parameter multiple in function handle_create_with_after Without this, file_line resource without the `match` parameter but with the `after` param will throw an error if there are multiple matches for the after expression. This patch creates the handling for the `multiple` parameter in handle_create_with_after. This allows you to add a line after the `after` expression if it appears at multiple points in a file. Updated reference to `file_line` in the README to reflect that the multiple parameter can be set when using `after` and/or `match` as the matching regex.
2015-04-09Add spec tests and pulled in PR #427Travis Fields
Changed append line to open in 'w' mode and have to rewrite lines in order to append new line
2014-06-04Convert specs to RSpec 2.99.0 syntax with TranspecAshley Penney
This conversion is done by Transpec 2.2.1 with the following command: transpec spec/unit * 53 conversions from: obj.should to: expect(obj).to * 19 conversions from: == expected to: eq(expected) * 5 conversions from: lambda { }.should to: expect { }.to * 2 conversions from: be_true to: be_truthy For more details: https://github.com/yujinakayama/transpec#supported-conversions
2014-05-15Revert "Merge pull request #256 from stbenjam/2571-before"Ashley Penney
This reverts commit 8499ebdb7f892f2623295058649c67a5553d4732, reversing changes made to 08b00d9229961d7b3c3cba997bfb35c8d47e4c4b.
2014-05-14(PUP-2571) add 'before' functionality to file_lineStephen Benjamin
file_line supports adding lines after a match, but there are use cases when having "before" would be useful. For example, in Debian-based OS's, the last line of /etc/rc.local is "exit 0" it's an incredible pain to deal with that scenario today. This commit adds a 'before' parameter to the file_line type, and implements it for the ruby provider.
2014-05-07Add mode +x to spec .rb filesHunter Haugen
2014-05-07Add the missing shebangs and fix the wrong ones for rpmlint to stop ↵Andrea Veri
complaining loudly
2014-03-08Numerous changes to update testing gems.Ashley Penney
This work updates a number of Gems to the latest versions (rspec, rspec-puppet), and updates and tweaks a bunch of tests to work with the updated gems.
2013-08-29(maint) Improve the tests and readability of file_lineJeff McCune
Without this patch the implementation of the file_line provider is a bit convoluted with respect to the newly introduced "after" parameter. This patch addresses the problem by separating out the concerns of each case into their own methods of handling the behavior with the match parameter, handling the behavior with the after parameter, or simply appending the line.
2013-08-29Update file_line resource to support 'after'.Dan Prince
When adding new lines to a file the 'after' option can be useful when you need to insert file lines into the middle of a file. This is particularly helpful when using file_line with sectioned config files. NOTE: the after option only works when adding new lines. If you are updating an existing (matched) line it will simply modify it in place. This assumes it was in the right place to begin with.
2013-07-11(#21416) Allow file_line to match multiple linesAlex O'Rielly
Without this commit the file_line type will outright fail if multiple lines match the given regex. This commit allows the file_line type and provider to optionally match and modify all matching lines. Changeset rebased into a single commit by Adrien Thebo <adrien@puppetlabs.com>
2012-06-07Add support for a 'match' parameter to file_lineChris Price
This commit adds a new parameter called "match" to the file_line resource type, and support for this new parameter to the corresponding ruby provider. This parameter is optional; file_line should work just as before if you do not specify this parameter... so this change should be backwards-compatible. If you do specify the parameter, it is treated as a regular expression that should be used when looking through the file for a line. This allows you to do things like find a line that begins with a certain prefix (e.g., "foo=.*"), and *replace* the existing line with the line you specify in your "line" parameter. Without this capability, if you already had a line "foo=bar" in your file and your "line" parameter was set to "foo=baz", you'd end up with *both* lines in the final file. In many cases this is undesirable.
2012-02-09implement #11017 - make file_line type ensurablePeter Meier
* Implement a simple destroy method. * Add tests for it * Refactor code, so file is actually read only once. However, due to the nature how provider tests are run, we need to ensure that the file is read before we open it to write it.
2011-08-04(#8792) Rename whole_line type to file_lineJeff McCune
Without this patch the resource whole_line would be included in the stable stdlib module shipping in PE 1.2. Ideally the name will be stable and unchanging in the future. There was quite a bit of concern over whole_line being an unwise name. file_line appears to be the most suitable name and least likely to need another rename in the future.