Module: Contentful::Support
- Defined in:
- lib/contentful/support.rb
Overview
Utility methods used by the contentful gem
Class Method Summary collapse
-
.link?(value) ⇒ true, false
Checks if value is a link.
-
.link_array?(value) ⇒ true, false
Checks if value is an array of links.
-
.snakify(object, skip = false) ⇒ String
Transforms CamelCase into snake_case (taken from zucker).
- .unresolvable?(value, errors) ⇒ Boolean
Class Method Details
.link?(value) ⇒ true, false
Checks if value is a link
35 36 37 38 |
# File 'lib/contentful/support.rb', line 35 def link?(value) value.is_a?(::Hash) && value.fetch('sys', {}).fetch('type', '') == 'Link' end |
.link_array?(value) ⇒ true, false
Checks if value is an array of links
45 46 47 48 49 |
# File 'lib/contentful/support.rb', line 45 def link_array?(value) return link?(value[0]) if value.is_a?(::Array) && !value.empty? false end |
.snakify(object, skip = false) ⇒ String
Transforms CamelCase into snake_case (taken from zucker)
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/contentful/support.rb', line 13 def snakify(object, skip = false) return object if skip String(object) .gsub(/::/, '/') .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .downcase end |
.unresolvable?(value, errors) ⇒ Boolean
24 25 26 27 28 |
# File 'lib/contentful/support.rb', line 24 def unresolvable?(value, errors) return true if value.nil? errors.any? { |i| i.fetch('details', {}).fetch('id', nil) == value['sys']['id'] } end |