Class: LiquidResponse::ViewHelper::LiquidBuffer::LiquidVariable

Inherits:
Object
  • Object
show all
Defined in:
lib/liquid_response/view_helper.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ LiquidVariable

Returns a new instance of LiquidVariable.



13
14
15
16
# File 'lib/liquid_response/view_helper.rb', line 13

def initialize(name)
  @name = name.to_s
  self.class.validate_name!(@name)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



24
25
26
# File 'lib/liquid_response/view_helper.rb', line 24

def name
  @name
end

Class Method Details

.random(prefix = "var") ⇒ Object



26
27
28
29
30
# File 'lib/liquid_response/view_helper.rb', line 26

def self.random(prefix = "var")
  prefix = prefix.to_s.gsub(/[^a-zA-Z0-9]+/, "_")
  prefix = "var" if prefix.blank? || prefix.match?(/\A\d/)
  new("#{prefix}_#{SecureRandom.hex(5)}")
end

.validate_name!(name) ⇒ Object



18
19
20
21
22
# File 'lib/liquid_response/view_helper.rb', line 18

def self.validate_name!(name)
  unless name.to_s.match?(/\A[a-zA-Z_][a-zA-Z0-9_]*\z/)
    raise ArgumentError, "Invalid Liquid variable name: #{name}"
  end
end

Instance Method Details

#as_liquidObject



36
37
38
# File 'lib/liquid_response/view_helper.rb', line 36

def as_liquid
  self
end

#inspectObject



32
33
34
# File 'lib/liquid_response/view_helper.rb', line 32

def inspect
  "LiquidVariable(#{name})"
end