Class: Puppet::Util::FileParsing::FileRecord
- Includes:
- Puppet::Util, MethodHelper
- Defined in:
- lib/puppet/util/fileparsing.rb
Constant Summary collapse
- INVALID_FIELDS =
[:record_type, :target, :on_disk]
Constants included from Puppet::Util
AbsolutePathPosix, AbsolutePathWindows, DEFAULT_POSIX_MODE, DEFAULT_WINDOWS_MODE
Constants included from POSIX
POSIX::LOCALE_ENV_VARS, POSIX::USER_ENV_VARS
Constants included from SymbolicFileMode
SymbolicFileMode::SetGIDBit, SymbolicFileMode::SetUIDBit, SymbolicFileMode::StickyBit, SymbolicFileMode::SymbolicMode, SymbolicFileMode::SymbolicSpecialToBit
Instance Attribute Summary collapse
-
#absent ⇒ Object
Returns the value of attribute absent.
-
#block_eval ⇒ Object
Returns the value of attribute block_eval.
-
#fields ⇒ Object
Returns the value of attribute fields.
-
#joiner ⇒ Object
Returns the value of attribute joiner.
-
#match ⇒ Object
Returns the value of attribute match.
-
#name ⇒ Object
Returns the value of attribute name.
-
#optional ⇒ Object
Returns the value of attribute optional.
-
#rollup ⇒ Object
Returns the value of attribute rollup.
-
#rts ⇒ Object
Returns the value of attribute rts.
-
#separator ⇒ Object
Returns the value of attribute separator.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#initialize(type, options = {}, &block) ⇒ FileRecord
constructor
A new instance of FileRecord.
-
#join(details) ⇒ Object
Convert a record into a line by joining the fields together appropriately.
-
#post_parse=(block) ⇒ Object
Create a hook that modifies the hash resulting from parsing.
-
#pre_gen=(block) ⇒ Object
Create a hook that modifies the hash just prior to generation.
-
#text? ⇒ Boolean
Are we a text type?.
- #to_line=(block) ⇒ Object
Methods included from MethodHelper
#requiredopts, #set_options, #symbolize_options
Methods included from Puppet::Util
absolute_path?, benchmark, chuser, clear_environment, default_env, deterministic_rand, deterministic_rand_int, exit_on_fail, get_env, get_environment, logmethods, merge_environment, path_to_uri, pretty_backtrace, replace_file, safe_posix_fork, set_env, symbolizehash, thinmark, uri_encode, uri_query_encode, uri_to_path, which, withenv, withumask
Methods included from POSIX
#get_posix_field, #gid, #idfield, #methodbyid, #methodbyname, #search_posix_field, #uid
Methods included from SymbolicFileMode
#normalize_symbolic_mode, #symbolic_mode_to_int, #valid_symbolic_mode?
Constructor Details
#initialize(type, options = {}, &block) ⇒ FileRecord
Returns a new instance of FileRecord.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/puppet/util/fileparsing.rb', line 51 def initialize(type, = {}, &block) @type = type.intern raise ArgumentError, _("Invalid record type %{record_type}") % { record_type: @type } unless [:record, :text].include?(@type) () if self.type == :record # Now set defaults. self.absent ||= "" self.separator ||= /\s+/ self.joiner ||= " " self.optional ||= [] @rollup = true unless defined?(@rollup) end if block_given? @block_eval ||= :process # Allow the developer to specify that a block should be instance-eval'ed. if @block_eval == :instance instance_eval(&block) else (@block_eval, &block) end end end |
Instance Attribute Details
#absent ⇒ Object
Returns the value of attribute absent.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def absent @absent end |
#block_eval ⇒ Object
Returns the value of attribute block_eval.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def block_eval @block_eval end |
#fields ⇒ Object
Returns the value of attribute fields.
38 39 40 |
# File 'lib/puppet/util/fileparsing.rb', line 38 def fields @fields end |
#joiner ⇒ Object
Returns the value of attribute joiner.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def joiner @joiner end |
#match ⇒ Object
Returns the value of attribute match.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def match @match end |
#name ⇒ Object
Returns the value of attribute name.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def name @name end |
#optional ⇒ Object
Returns the value of attribute optional.
38 39 40 |
# File 'lib/puppet/util/fileparsing.rb', line 38 def optional @optional end |
#rollup ⇒ Object
Returns the value of attribute rollup.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def rollup @rollup end |
#rts ⇒ Object
Returns the value of attribute rts.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def rts @rts end |
#separator ⇒ Object
Returns the value of attribute separator.
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def separator @separator end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
38 39 40 |
# File 'lib/puppet/util/fileparsing.rb', line 38 def type @type end |
Instance Method Details
#join(details) ⇒ Object
Convert a record into a line by joining the fields together appropriately. This is pulled into a separate method so it can be called by the hooks.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/puppet/util/fileparsing.rb', line 80 def join(details) joinchar = self.joiner fields.collect { |field| # If the field is marked absent, use the appropriate replacement if details[field] == :absent or details[field] == [:absent] or details[field].nil? if self.optional.include?(field) self.absent else raise ArgumentError, _("Field '%{field}' is required") % { field: field } end else details[field].to_s end }.reject { |c| c.nil?}.join(joinchar) end |
#post_parse=(block) ⇒ Object
Create a hook that modifies the hash resulting from parsing.
105 106 107 |
# File 'lib/puppet/util/fileparsing.rb', line 105 def post_parse=(block) (:post_parse, &block) end |
#pre_gen=(block) ⇒ Object
Create a hook that modifies the hash just prior to generation.
110 111 112 |
# File 'lib/puppet/util/fileparsing.rb', line 110 def pre_gen=(block) (:pre_gen, &block) end |
#text? ⇒ Boolean
Are we a text type?
115 116 117 |
# File 'lib/puppet/util/fileparsing.rb', line 115 def text? type == :text end |
#to_line=(block) ⇒ Object
119 120 121 |
# File 'lib/puppet/util/fileparsing.rb', line 119 def to_line=(block) (:to_line, &block) end |