class Object

Constants

EMBEDDED_DATA_URL_PREFIX
OPTIONAL_WHITESPACE
PROP_DELIMETER
WILDCARD

Public Instance Methods

application_asset(extension) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 60
def application_asset(extension)
  search_path = Rails.root.join('public', 'assets', "application*.#{extension}")
  file_path = Dir.glob(search_path).first
  File.read(file_path) if file_path
end
application_css() click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 66
def application_css
  application_asset('css')
end
application_js() click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 70
def application_js
  application_asset('js')
end
asset_regex(asset) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 53
def asset_regex(asset)
  parts     = asset.partition('.')
  name      = parts.first
  extension = parts.second + parts.last
  regex_range(start: name, stop: extension)
end
embedded_data_url?(url) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 49
def embedded_data_url?(url)
  url.start_with?(EMBEDDED_DATA_URL_PREFIX)
end
get_css_property(selector, property) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 36
def get_css_property(selector, property)
  rules = get_css_rules(selector)
  return unless rules
  property_regex = regex_range(start: property, stop: PROP_DELIMETER)
  rules.match(property_regex).try(:[], 0)
end
get_css_property_value(selector, property) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 43
def get_css_property_value(selector, property)
  property = get_css_property(selector, property)
  return unless property
  property.partition(/:/).last.chomp(PROP_DELIMETER).strip
end
get_css_rules(selector) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 31
def get_css_rules(selector)
  selector_regexp = regex_range(leading: selector, start: '{', stop: '}')
  application_css.match(selector_regexp).try(:[], 0)
end
precompile_assets!(embed:) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 12
def precompile_assets!(embed:)
  action = embed ? 'embed' : 'unembed'
  `rake assets:precompile:#{action}`
end
regex_range(leading: '', start:, stop:) click to toggle source
# File lib/embeddable_asset/test/embeddable_rake_task_examples.rb, line 17
def regex_range(leading: '', start:, stop:)
  escaped_leading = Regexp.quote(leading)
  escaped_start   = Regexp.quote(start)
  escaped_stop    = Regexp.quote(stop)

  raw_regex_range = "#{escaped_leading}"\
                    "#{OPTIONAL_WHITESPACE}"\
                    "#{escaped_start}"\
                    "#{WILDCARD}"\
                    "#{escaped_stop}"

  Regexp.new(raw_regex_range, Regexp::MULTILINE | Regexp::IGNORECASE)
end