module WCC::Contentful::Helpers

Public Instance Methods

constant_from_content_type(content_type) click to toggle source
# File lib/wcc/contentful/helpers.rb, line 17
def constant_from_content_type(content_type)
  content_type.gsub(/[^_a-zA-Z0-9]/, '_').camelize
end
content_type_from_constant(const) click to toggle source
# File lib/wcc/contentful/helpers.rb, line 28
def content_type_from_constant(const)
  return const.content_type if const.respond_to?(:content_type)

  name = const.try(:name) || const.to_s
  name.demodulize.camelize(:lower)
end
content_type_from_raw(value) click to toggle source
# File lib/wcc/contentful/helpers.rb, line 6
def content_type_from_raw(value)
  case value.dig('sys', 'type')
  when 'Entry', 'DeletedEntry'
    value.dig('sys', 'contentType', 'sys', 'id')
  when 'Asset', 'DeletedAsset'
    'Asset'
  else
    raise ArgumentError, "Unknown content type '#{value.dig('sys', 'type') || 'null'}'"
  end
end
shared_prefix(string_array) click to toggle source
# File lib/wcc/contentful/helpers.rb, line 21
def shared_prefix(string_array)
  string_array.reduce do |l, s|
    l = l.chop while l != s[0...l.length]
    l
  end
end