class Assets::Rule::Concat

Rule that concatenates assets from other rules

Attributes

mime[R]

Return mime

@return [Mime]

@api private

name[R]

Return name

@return [String]

@api private

Public Class Methods

build(name, *rules) click to toggle source

Build concat rules

@param [String] name

@return [Rule::Concat]

@api private

# File lib/assets/rule/concat.rb, line 43
def self.build(name, *rules)
  new(name, rules)
end
detect_mime(rules) click to toggle source

Detect mime type

@param [Rules] rules

@return [Mime]

@api private

# File lib/assets/rule/concat.rb, line 83
def self.detect_mime(rules)
  raise "No mime type for empty rules" if rules.empty?

  mime = rules.first.mime

  unless rules.all? { |rule| rule.mime == mime }
    raise 'Rules do not share mime type!'
  end

  mime
end
new(name, rules) click to toggle source

Instantiate object

@param [String] name @param [Enumerable<Rule>] rules

@api private

Calls superclass method
# File lib/assets/rule/concat.rb, line 30
def self.new(name, rules)
  mime = detect_mime(rules)
  super(name, mime, rules)
end

Public Instance Methods

body() click to toggle source

Return body

@return [String]

@api private

# File lib/assets/rule/concat.rb, line 53
def body
  rules.map(&:body).join
end
updated_at() click to toggle source

Return updated_at

@return [Time]

@api private

# File lib/assets/rule/concat.rb, line 63
def updated_at
  rules = self.rules
  time = rules.first.updated_at
  rules.each do |rule|
    updated_at = rule.updated_at
    if time < updated_at
      time = updated_at
    end
  end
  time
end