Sha256: cdf6e74e24db2be502cf65b82ba23b9b72072598499dddca0b9d3361af203752

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

# allow to access Atome class using only a uniq atome
class Genesis
  class << self
    def generator
      Atome.new
    end
  end
end

# Genesis method here
class Atome
  def build_particle(particle_name,type=:string, &particle_proc)
    # we add the new method to the particle's collection of methods
    Universe.add_to_particle_list(particle_name, type)
    auto_render_generator(particle_name)
    new_particle(particle_name, &particle_proc)
    additional_particle_methods(particle_name, &particle_proc)
  end

  def build_atome(atome_name, &atome_proc)
    # we add the new method to the atome's collection of methods
    Universe.add_to_atome_list(atome_name)
    auto_render_generator(atome_name)
    new_atome(atome_name, &atome_proc)
  end

  def auto_render_generator(element)
    Universe.renderer_list.each do |render_engine|
      build_render("#{render_engine}_#{element}")
    end
  end

  def build_render(renderer_name, &method_proc)
    new_render_engine(renderer_name, &method_proc)
  end

  def build_sanitizer(method_name, &method_proc)
    Universe.add_sanitizer_method(method_name.to_sym, &method_proc)
  end

  def build_option(method_name, &method_proc)
    Universe.add_optional_method(method_name.to_sym, &method_proc)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
atome-0.5.2.8 lib/atome/genesis/genesis.rb
atome-0.5.2.7 lib/atome/genesis/genesis.rb