Skip to content

Instantly share code, notes, and snippets.

@stevo
Last active July 27, 2022 09:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save stevo/e8c913639a06ad952c9d4d71d08898f2 to your computer and use it in GitHub Desktop.
Save stevo/e8c913639a06ad952c9d4d71d08898f2 to your computer and use it in GitHub Desktop.
Ruby skills verification

Be prepared to explain and effectively use following language and ActiveSupport features

Max score: 152

Minimum requirements:

  • Independent: 100 (+ all blue diamonds)
  • Mid: 120 (+ all orange diamonds)
  • Senior: 135 (+ all red triangles)

You will not get a pass if you check more than 5 items that you will not be able to prove being knowledgeable about during verification, so check items only if you are sure about them. Be advised, that questions will be rather general ("what does that return?", "what does it do?", "how does that differ from x?").

Ruby core and std-lib

  • Array / Enumerable
    • <<, push, pop ๐Ÿ”น
    • |, &, +
    • at, [], values_at
    • any?, all?, one?, none?
    • map, map!, collect, collect! ๐Ÿ”น
    • count, size, length ๐Ÿ”น
    • cycle
    • delete, delete_at, delete_if
    • drop, drop_while
    • each, each_index, each_with_index ๐Ÿ”น
    • each_cons
    • each_with_object, inject, reduce ๐Ÿ”ธ
    • empty?
    • index, find_index, rindex
    • first, second, last
    • find, detect ๐Ÿ”น
    • keep_if, select, select!, find_all ๐Ÿ”น
    • flatten, flatten!
    • flat_map
    • group_by
    • include?
    • insert
    • join
    • keep_if, select, select!
    • min, max ๐Ÿ”น
    • min_by, max_by, minmax, minmax_by
    • partition ๐Ÿ”ธ
    • reject, reject! ๐Ÿ”น
    • reverse, reverse!, reverse_each
    • rotate, rotate! ๐Ÿ”ธ
    • shift, unshift
    • shuffle, shuffle!
    • sort, sort!, sort_by
    • take_while
    • transpose ๐Ÿ”ธ
    • uniq, uniq! ๐Ÿ”น
    • zip
  • Numeric, Float
    • %, modulo
    • abs
    • ceil, floor
    • div
    • nonzero?
    • round ๐Ÿ”น
    • zero? ๐Ÿ”น
    • positive?, negative?
    • 1/0.0 vs 1/0 ๐Ÿ”ธ
  • Object
    • clone, dup
    • enum_for
    • extend
    • is_a?, instance_of?, kind_of?
    • instance_variable_get, instance_variable_set, instance_variable_defined?
    • method
    • nil?
    • send, public_send ๐Ÿ”ธ
    • respond_to?
    • tap ๐Ÿ”น
    • method_missing ๐Ÿ”บ
    • instance_eval, instance_exec ๐Ÿ”บ
  • String
    • <<
    • =~
    • %
    • +, *
    • []=
    • [], slice
    • capitalize, capitalize!
    • chars
    • chop, chomp
    • count, size
    • delete
    • downcase, downcase!, upcase, upcase!
    • each_char, each_line
    • empty?
    • gsub, gsub!, sub, sub! ๐Ÿ”น
    • include?
    • index
    • ljust, rjust
    • match
    • next, next!, succ, succ!
    • replace
    • reverse, reverse!
    • partition
    • scan
    • split
    • strip, strip!
    • squeeze, squeeze!
    • start_with?, end_with?
  • Operators
    • == vs ===
    • <=>
    • <, >, >=, <=
  • File
    • basename
    • delete
    • dirname
    • directory?
    • exist?
    • new
    • open
  • Class, Module
    • <
    • new, initialize ๐Ÿ”น
    • inherited
    • superclass
    • alias_method
    • ancestors
    • attr_reader, attr_writer, attr_accessor, attr ๐Ÿ”น
    • class_eval, module_eval
    • class_exec, , module_exec
    • const_get, const_set, const_defined?
    • define_method ๐Ÿ”บ
    • extended, included,
    • module_function ๐Ÿ”บ
    • private, private_class_method
    • private_constant ๐Ÿ”ธ
    • name
  • Range
    • .. vs ... ๐Ÿ”ธ
    • min, max
    • cover?
    • each
  • Regexp
    • named captures ๐Ÿ”ธ
    • =~
    • match, match?
  • Hash
    • [], []=
    • dig ๐Ÿ”น
    • each, each_pair, each_key, each_value ๐Ÿ”น
    • fetch
    • has_key?, key?, has_value?
    • invert
    • key
    • keys, values
    • merge, merge!, reverse_merge, reverse_merge! ๐Ÿ”น
    • transform_keys, transform_keys!, transform_values, transform_values! ๐Ÿ”ธ
  • Time
    • now, utc ๐Ÿ”น
    • day, month, year, hour, minute, sec
    • wday
    • monday? .. sunday?
    • zone
    • strftime
    • iso8601 ๐Ÿ”น
    • to_s(:db)
  • Difference between strings and symbols ๐Ÿ”ธ
  • Difference between local, instance and global variables ๐Ÿ”น
  • Difference between class (static) and instance methods ๐Ÿ”น
  • Procs and lambdas ๐Ÿ”ธ
  • Exceptions handling ๐Ÿ”ธ
  • Monkey-patching ๐Ÿ”บ
  • Mixins ๐Ÿ”บ
  • ENV
  • Enumerator ๐Ÿ”บ
    • Enumerator::Lazy
  • NotImplementedError ๐Ÿ”บ
  • OpenStruct
  • &.
  • Shorthand blocks syntax (&:)
  • SecureRandom
  • Core extensions
    • Array
      • deep_dup
      • extract_options! ๐Ÿ”ธ
      • in_groups, in_groups_of
      • to_param
      • to_query
      • to_sentence
      • without
      • wrap
    • Class
      • class_attribute ๐Ÿ”บ
      • descendants
      • subclasses
    • Date, DateAndTime
      • beginning_of_day, end_of_day
      • current, tomorrow, yesterday ๐Ÿ”น
      • days_ago, months_ago, years_ago
      • future?, past?, today?
      • on_weekday?, on_weekend?
      • in_time_zone
    • Enumerable
      • exclude
      • index_by
      • many?
      • pluck ๐Ÿ”ธ
      • sum
      • without
    • Hash
      • assert_valid_keys
      • compact, compact!
      • deep_dup
      • deep_merge, deep_merge! ๐Ÿ”ธ
      • deep_stringify_keys, deep_stringify_keys!, deep_symbolize_keys, deep_symbolize_keys! ๐Ÿ”ธ
      • deep_transform_keys, deep_transform_keys! ๐Ÿ”ธ
      • except, except!, extract!
      • slice, slice!
      • with_defaults, with_defaults!
    • Kernel
      • silence_warnings
    • Module
      • alias_attribute
      • delegate ๐Ÿ”น
      • delegate_missing_to
      • deprecate
    • Object
      • presence, present? ๐Ÿ”น
      • presence_in
      • with_options
    • Range
      • overlaps?
    • String
      • blank? ๐Ÿ”น
      • html_safe
      • squish, squish!
      • truncate
      • truncate_words
  • Difference between try, try! and &. ๐Ÿ”บ
  • ArrayInquirer ๐Ÿ”บ
  • Benchmarkable
  • Cache ๐Ÿ”บ
    • Available store types
    • NullStore
  • Callbacks ๐Ÿ”บ
  • Concern ๐Ÿ”น
  • Configurable
  • CurrentAttributes ๐Ÿ”บ
  • Duration
  • HashWithIndifferentAccess ๐Ÿ”ธ
  • Inflector
    • camelize ๐Ÿ”น
    • classify
    • constantize, safe_constantize ๐Ÿ”ธ
    • dasherize
    • deconstantize ๐Ÿ”ธ
    • demodulize ๐Ÿ”ธ
    • foreign_key
    • humanize
    • ordinalize
    • parameterize
    • pluralize, singularize
    • tableize
    • titleize
    • transliterate
    • underscore ๐Ÿ”น
    • upcase_first
  • MessageEncryptor
  • MessageVerifier
  • Notifications, Subscriber
  • NumberHelper
    • number_to_currency
    • number_to_delimited
    • number_to_human
    • number_to_human_size
    • number_to_percentage
    • number_to_phone
    • number_to_rounded
  • OrderedOptions
  • RangeWithFormat
  • Rescuable ๐Ÿ”ธ
  • StringInquirer ๐Ÿ”ธ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment