class Jekyll::GitHubMetadata::Value
Attributes
key[R]
value[R]
Public Class Methods
new(*args)
click to toggle source
# File lib/jekyll-github-metadata/value.rb, line 13 def initialize(*args) case args.size when 1 @key = "{anonymous}" @value = args.first when 2 @key = args.first.to_s @value = args.last else raise ArgumentError, "#{args.size} args given but expected 1 or 2" end end
Public Instance Methods
render()
click to toggle source
# File lib/jekyll-github-metadata/value.rb, line 26 def render return @rendered if defined? @rendered @rendered = @value = Sanitizer.sanitize(call_or_value) rescue RuntimeError, NameError => e Jekyll::GitHubMetadata.log :error, "Error processing value '#{key}':" raise e end
to_liquid()
click to toggle source
# File lib/jekyll-github-metadata/value.rb, line 35 def to_liquid case render when nil, true, false, Hash, String, Numeric, Array value else to_json end end
Private Instance Methods
call_or_value()
click to toggle source
Calls the value Proc with the appropriate number of arguments or returns the raw value if it’s a literal
# File lib/jekyll-github-metadata/value.rb, line 48 def call_or_value return value unless value.respond_to?(:call) case value.arity when 0 value.call when 1 value.call(GitHubMetadata.client) when 2 value.call(GitHubMetadata.client, GitHubMetadata.repository) else raise ArgumentError, "Whoa, arity of 0, 1, or 2 please in your procs." end end