module Zesty::Refinements::CamelCase
Public Instance Methods
camel_case(string)
click to toggle source
# File lib/zesty/refinements/camel_case.rb, line 30 def camel_case(string) @acronyms ||= { 'id' => 'ID', 'zuid' => 'ZUID' } @acronym_regex ||= /#{@acronyms.values.join("|")}/ @acronyms_camelize_regex ||= /^(?:#{@acronym_regex}(?=\b|[A-Z_])|\w)/ @acronyms_underscore_regex ||= /(?:(?<=([A-Za-z\d]))|\b)(#{@acronym_regex})(?=\b|[^a-z])/ result = string.sub(/^[a-z\d]*/) { |match| @acronyms[match] || match } if !result.start_with?("_") # e.g. ignore "_meta", "_meta_title", etc. result = result.gsub(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{@acronyms[$2] || $2.capitalize}" } end result end
camel_case_key(key)
click to toggle source
# File lib/zesty/refinements/camel_case.rb, line 19 def camel_case_key(key) case key when Symbol camel_case(key.to_s).to_sym when String camel_case(key).to_sym else key end end
to_camel_case(data = self)
click to toggle source
# File lib/zesty/refinements/camel_case.rb, line 6 def to_camel_case(data = self) case data when Array data.map { |value| to_camel_case(value) } when Hash data.map { |key, value| [camel_case_key(key), to_camel_case(value)] }.to_h else data end end