Sha256: 933f42b1305f0393cf1d43885e1b1d79dcd86bbc962d28c5c243045a693a9cf2
Contents?: true
Size: 1.05 KB
Versions: 6
Compression:
Stored size: 1.05 KB
Contents
module Sprig module Seed class Attribute attr_reader :name, :raw_value, :value def initialize(name, raw_value) @name = name.to_s @raw_value = raw_value end def dependencies @dependencies ||= determine_dependencies.uniq end def value compute_value if @value.nil? @value end private def determine_dependencies if computed_value? matches = raw_value.scan(/(sprig_record\(([A-Z][^,]*), ([\d]*)\))+/) matches.map {|match| Dependency.for(match[1], match[2]) } else [] end end def string? raw_value.is_a?(String) end def computed_value? string? && raw_value =~ computed_value_regex end def computed_value_regex /<%[=]?(.*)%>/ end def compute_value @value = if computed_value? matches = computed_value_regex.match(raw_value) eval(matches[1]) else raw_value end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems