Module: EmojiEncoder

Extended by:
ActiveSupport::Concern
Defined in:
lib/emoji_encoder.rb

Instance Method Summary collapse

Instance Method Details

#attrs_for_emoji(*attrs) ⇒ Object



4
5
6
7
# File 'lib/emoji_encoder.rb', line 4

def attrs_for_emoji(*attrs)
  emoji_attributes_methods(attrs)
  save_attrs_to_var(attrs)
end

#emoji_attributes_methods(attrs) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/emoji_encoder.rb', line 15

def emoji_attributes_methods(attrs)
  attrs.each do |attr|
    define_method "decode_#{attr.to_s}" do
      CGI.unescape(self.try(attr.to_sym).to_s)
    end

    define_method "encode_#{attr.to_s}" do
      if self.try(attr.to_sym) != nil
        encoded_text = CGI.escape(self.try(attr.to_sym).to_s)
        self.send("#{attr.to_s}=", encoded_text)
      end
    end
  end
end

#save_attrs_to_var(attrs) ⇒ Object



9
10
11
12
13
# File 'lib/emoji_encoder.rb', line 9

def save_attrs_to_var(attrs)
  attrs.each do |attr|
    before_save "encode_#{attr}".to_sym
  end
end