Module: Chef::Node::Mixin::ImmutablizeArray

Defined in:
lib/chef/node/mixin/immutablize_array.rb

Constant Summary collapse

ALLOWED_METHODS =

Allowed methods that MUST NOT mutate the object (if any of these methods mutate the underlying object that is a bug that needs to be fixed)

%i{
  &
  *
  +
  -
  []
  abbrev
  all?
  any?
  assoc
  at
  bsearch
  bsearch_index
  chain
  chunk
  chunk_while
  collect
  collect_concat
  combination
  compact
  count
  cycle
  deconstruct
  detect
  difference
  dig
  drop
  drop_while
  each
  each_cons
  each_entry
  each_index
  each_slice
  each_with_index
  each_with_object
  empty?
  entries
  fetch
  filter
  filter_map
  find
  find_all
  find_index
  first
  flat_map
  flatten
  grep
  grep_v
  group_by
  include?
  index
  inject
  intersection
  join
  last
  lazy
  length
  map
  max
  max_by
  member?
  min
  min_by
  minmax
  minmax_by
  none?
  one?
  pack
  partition
  permutation
  product
  rassoc
  reduce
  reject
  repeated_combination
  repeated_permutation
  reverse
  reverse_each
  rindex
  rotate
  sample
  save_plist
  select
  shelljoin
  shuffle
  size
  slice
  slice_after
  slice_before
  slice_when
  sort
  sort_by
  sum
  take
  take_while
  tally
  to_a
  to_ary
  to_csv
  to_h
  to_plist
  to_set
  to_yaml
  transpose
  union
  uniq
  values_at
  zip
  |
}.freeze
DISALLOWED_MUTATOR_METHODS =

A list of methods that mutate Array. Each of these is overridden to raise an error, making this instances of this class more or less immutable.

%i{
  <<
  []=
  append
  clear
  collect!
  compact!
  concat
  default=
  default_proc=
  delete
  delete_at
  delete_if
  fill
  filter!
  flatten!
  insert
  keep_if
  map!
  merge!
  pop
  prepend
  push
  reject!
  replace
  reverse!
  rotate!
  select!
  shift
  shuffle!
  slice!
  sort!
  sort_by!
  uniq!
  unshift
}.freeze