Class: CssProxy

Inherits:
Object show all
Defined in:
lib/atome/extensions/atome.rb

Instance Method Summary collapse

Constructor Details

#initialize(js, parent_key = nil, current_atome) ⇒ CssProxy



885
886
887
888
889
890
891
# File 'lib/atome/extensions/atome.rb', line 885

def initialize(js, parent_key = nil, current_atome)
  @js = js
  @css = {}
  @parent_key = parent_key
  @style = {}
  @current_atome = current_atome
end

Instance Method Details

#[](key) ⇒ Object



893
894
895
896
897
898
899
# File 'lib/atome/extensions/atome.rb', line 893

def [](key)
  if @parent_key
    @current_atome.instance_variable_get('@css')[@parent_key]&.[](key)
  else
    CssProxy.new(@js, key, @current_atome)
  end
end

#[]=(key, value) ⇒ Object



901
902
903
904
905
906
907
908
909
910
911
912
913
# File 'lib/atome/extensions/atome.rb', line 901

def []=(key, value)
  if @parent_key
    @js[@parent_key][key] = value
    @current_atome.instance_variable_set('@css', { @parent_key => { key => value } })
    @css[@parent_key] = { key => value }
    puts "==> parent key: #{@parent_key}, Clé: #{key}, value: #{value}"
  else
    @style[key] = value
    @js[key] = value
  end

  @js.update_style(@style) if @parent_key.nil?
end

#receptor(msg, &bloc) ⇒ Object



919
920
921
922
# File 'lib/atome/extensions/atome.rb', line 919

def receptor(msg, &bloc)
  parsed = JSON.parse(msg)
  bloc.call(parsed)
end

#to_sObject



915
916
917
# File 'lib/atome/extensions/atome.rb', line 915

def to_s
  @current_atome.instance_variable_get('@css').to_s
end