Sha256: 817278563e5103ae749dec4cb80b4b5f2f90467bef388570158e51e366512f3b

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

class Jcompiler
  def initialize
    @ids = {}
  end

  private

  attr_accessor :ids

  def b(brand, bind)
    bind.local_variable_set(:brand, brand)
    {
      id: 'brand.id',
      name: 'brand.name',
      description: 'brand.description',
      published_at: 'brand.published_at.utc.iso8601(3)',
      official_url: 'brand.blog_url',
      sex_group: 'brand.blog_sex_switch',
      image_medium: 'absolute_url(brand.image_file.url(:medium))',
      image_square: 'absolute_url(brand.image_file.url(:square))',
      url: 'brand_path(brand)',
      labels: 'brand.new_arrival? ? \'["NEW"]\' : \'[]\''
    }.map do |key, code|
      v = eval(code, bind)
      "\"#{key}\":#{v.is_a?(String) ? ActiveSupport::JSON.encode(v) : v ? v.to_s : 'null'}"
    end
  end

  def a(brands, bind)
    brands.map do |brand|
      "{#{b(brand, bind).join(',')}}"
    end
  end

  def code(bind)
    debugger
  end
end

class JcompilerHandler
  cattr_accessor :default_format
  self.default_format = Mime::JSON

  @@jcompiler = Jcompiler.new

  def self.call(template)
    "@@jcompiler.code(template.identifier, template.source, binding)"
  end
end

ActionView::Template.register_template_handler :jcompiler, JcompilerHandler

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jcompiler-0.1.40 lib/jcompiler.rb