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
- #block_eval ⇒ Object
- #fields ⇒ Object
- #joiner ⇒ Object
- #match ⇒ Object
- #name ⇒ Object
- #optional ⇒ Object
- #rollup ⇒ Object
- #rts ⇒ Object
- #separator ⇒ Object
- #type ⇒ Object readonly
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?, activerecord_version, benchmark, binread, chuser, classproxy, deterministic_rand, execfail, execpipe, execute, exit_on_fail, logmethods, memory, path_to_uri, pretty_backtrace, proxy, replace_file, safe_posix_fork, symbolizehash, thinmark, 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 #{@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
#block_eval ⇒ Object
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def block_eval @block_eval end |
#optional ⇒ Object
38 39 40 |
# File 'lib/puppet/util/fileparsing.rb', line 38 def optional @optional end |
#separator ⇒ Object
36 37 38 |
# File 'lib/puppet/util/fileparsing.rb', line 36 def separator @separator end |
#type ⇒ Object (readonly)
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" 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 |