Module: Jekyll::J1_Filters

Defined in:
lib/starter_web/_plugins/filters.rb

Constant Summary collapse

EMPTY =
''
EMPTY_LINE =
/^\s*\n/
MULTIPLE_SPACES =
/ +/
ALL_SPACES =
/\s+/
COMMENT_LINE =
/^\s*#.*\n|\s*#.*\n/
HTML_COMMENT_LINE =

HTML_COMMENT_LINE = /^s*<!–.*–>|s*<!–.*–>/

/<!--[\d\D]*?-->/
JS_COMMENT_LINE =
/^\s*\/\/[\d\D]*?\s*$/
NOTHING =
''.freeze
SPACE =
' '.freeze
ADOC_TAG_LINE =
/^\s*(:\S+\:.*$)/
JBX_INDEX_TAG =
/\s+!!(\S+)!!\s+/
ADOC_HEAD_LINE =
/^\s*(=+\s+\S+.*$)/
LIQUID_TAG =
/({%\s*\S+\s*%})/
ADOC_INLINE_COMMENT =
/^\s*(\/\/.*$)/

Instance Method Summary collapse

Instance Method Details

#contain_substr(input, substr) ⇒ Object


contain_substr: check if a string contains a substring

Example:



108
109
110
# File 'lib/starter_web/_plugins/filters.rb', line 108

def contain_substr(input, substr)
   input.include?(substr) ? true : false
end

#contains(input, substr) ⇒ Object


contains: check if a string contains a substring

Example:



98
99
100
# File 'lib/starter_web/_plugins/filters.rb', line 98

def contains(input, substr)
   input.include?(substr) ? true : false
end

#is_array(input) ⇒ Object



285
286
287
288
# File 'lib/starter_web/_plugins/filters.rb', line 285

def is_array(input)
  input.kind_of?(Array)
  return type
end

#is_fixnum(input) ⇒ Object



276
277
278
# File 'lib/starter_web/_plugins/filters.rb', line 276

def is_fixnum(input)
  input.kind_of?(Fixnum)
end

#is_hash(input) ⇒ Object



290
291
292
# File 'lib/starter_web/_plugins/filters.rb', line 290

def is_hash(input)
  input.kind_of?(Hash)
end

#is_numeric(input) ⇒ Object



280
281
282
283
# File 'lib/starter_web/_plugins/filters.rb', line 280

def is_numeric(input)
  return true if input =~ /\A\d+\Z/
  true if Float(input) rescue false
end

#is_string(input) ⇒ Object


is_XXXX:

"Duck typing" methods to determine the object (base) class
 returns true|false

Example:



272
273
274
# File 'lib/starter_web/_plugins/filters.rb', line 272

def is_string(input)
   input.kind_of?(String)
end

#is_type(input) ⇒ Object


is_type:

Example:



259
260
261
# File 'lib/starter_web/_plugins/filters.rb', line 259

def is_type(input)
  "#{input.class}".to_s.strip.downcase
end

#json(input) ⇒ Object


json:

Example:



249
250
251
# File 'lib/starter_web/_plugins/filters.rb', line 249

def json(input)
  input.to_json
end

#merge(input, hash) ⇒ Object


merge: merge two hashes (input <- hash)

Example:
 {% assign settings = options|merge:defaults %}



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/starter_web/_plugins/filters.rb', line 71

def merge(input, hash)
  unless input.respond_to?(:to_hash)
    # value = input == EMPTY ? 'empty' : input
    is_caller = caller[0][/`([^']*)'/, 1]
    raise ArgumentError.new('merge filter requires at least a hash for 1st arg, found caller|args: ' + "#{is_caller}|#{input}:#{hash}")
  end
  # if hash to merge is NOT a hash or empty return first hash (input)
  unless hash.respond_to?(:to_hash)
    input
  end
  if hash.nil? || hash.empty?
    input
  else
    merged = input.dup
    hash.each do |k, v|
      merged[k] = v
    end
    merged
  end
end

#newline_to_nothing(input) ⇒ Object


newline_to_space:
Replace all newlines by space

Example:



312
313
314
# File 'lib/starter_web/_plugins/filters.rb', line 312

def newline_to_nothing(input)
  input.to_s.gsub(/\n/, NOTHING)
end

#newline_to_space(input) ⇒ Object


newline_to_space:
Replace all newlines by space

Example:



301
302
303
# File 'lib/starter_web/_plugins/filters.rb', line 301

def newline_to_space(input)
  input.to_s.gsub(/\n/, SPACE)
end

#rand(input) ⇒ Object


rand:

Example:



238
239
240
241
# File 'lib/starter_web/_plugins/filters.rb', line 238

def rand(input)
  max = input.to_i
  Random.new.rand(1..max)
end

#read_index(input) ⇒ Object


read_index:

Example:



229
230
# File 'lib/starter_web/_plugins/filters.rb', line 229

def read_index(input)
end

#regex_replace(input, regex, replacement = NOTHING) ⇒ Object


regex_replace:

Example:



128
129
130
# File 'lib/starter_web/_plugins/filters.rb', line 128

def regex_replace(input, regex, replacement = NOTHING)
   input.to_s.gsub(Regexp.new(regex), replacement.to_s)
end

#regex_replace_first(input, regex, replacement = NOTHING) ⇒ Object


regex_replace_first: replace the FIRST occurence

Example:



118
119
120
# File 'lib/starter_web/_plugins/filters.rb', line 118

def regex_replace_first(input, regex, replacement = NOTHING)
   input.to_s.sub(Regexp.new(regex), replacement.to_s)
end

#strip_adoc(input) ⇒ Object


strip_adoc:

Example:



198
199
200
# File 'lib/starter_web/_plugins/filters.rb', line 198

def strip_adoc(input)
  input.to_s.gsub(ADOC_TAG_LINE, SPACE).gsub(ADOC_INLINE_COMMENT, SPACE).gsub(ADOC_HEAD_LINE, SPACE)
end

#strip_all_spaces(input) ⇒ Object


strip_all_spaces:

Example:



188
189
190
# File 'lib/starter_web/_plugins/filters.rb', line 188

def strip_all_spaces(input)
   input.to_s.gsub(Regexp.new(ALL_SPACES), SPACE)
end

#strip_comments(input) ⇒ Object


strip_comments:

Example:



148
149
150
# File 'lib/starter_web/_plugins/filters.rb', line 148

def strip_comments(input)
   input.to_s.gsub(Regexp.new(COMMENT_LINE), NOTHING)
end

#strip_empty_lines(input) ⇒ Object


strip_empty_lines:

Example:



138
139
140
# File 'lib/starter_web/_plugins/filters.rb', line 138

def strip_empty_lines(input)
   input.to_s.gsub(Regexp.new(EMPTY_LINE), NOTHING)
end

#strip_html_comments(input) ⇒ Object


strip_html_comments:

Example:



158
159
160
# File 'lib/starter_web/_plugins/filters.rb', line 158

def strip_html_comments(input)
   input.to_s.gsub(Regexp.new(HTML_COMMENT_LINE), NOTHING)
end

#strip_js_comments(input) ⇒ Object


strip_js_comments:

Example:



168
169
170
# File 'lib/starter_web/_plugins/filters.rb', line 168

def strip_js_comments(input)
   input.to_s.gsub(Regexp.new(JS_COMMENT_LINE), NOTHING)
end

#strip_liquid_tag(input) ⇒ Object


strip_liquid_tag:

Example:



208
209
210
# File 'lib/starter_web/_plugins/filters.rb', line 208

def strip_liquid_tag(input)
  input.to_s.gsub(LIQUID_TAG, SPACE)
end

#strip_multiple_spaces(input) ⇒ Object


strip_multiple_spaces:

Example:



178
179
180
# File 'lib/starter_web/_plugins/filters.rb', line 178

def strip_multiple_spaces(input)
   input.to_s.gsub(Regexp.new(MULTIPLE_SPACES), SPACE)
end

#strip_my_html(input) ⇒ Object


strip_my_html:

Example:



218
219
220
221
# File 'lib/starter_web/_plugins/filters.rb', line 218

def strip_my_html(input)
  space = ' '.freeze
  input.to_s.gsub(/<script.*?<\/script>/m, space).gsub(/<!--.*?-->/m, space).gsub(/<style.*?<\/style>/m, space).gsub(/<.*?>/m, space)
end