Class: Refine::Stabilizers::UrlEncodedStabilizer

Inherits:
Object
  • Object
show all
Defined in:
app/models/refine/stabilizers/url_encoded_stabilizer.rb

Instance Method Summary collapse

Instance Method Details

#from_stable_id(id:, initial_query: nil) ⇒ Object



11
12
13
14
15
16
17
18
# File 'app/models/refine/stabilizers/url_encoded_stabilizer.rb', line 11

def from_stable_id(id:, initial_query: nil)
  raise Refine::Stabilizers::Errors::UrlStabilizerError if id.blank?
  url_decoded = CGI.unescape(id)
  base_64_decoded = Base64.decode64(url_decoded)
  uncompress = ActiveSupport::Gzip.decompress(base_64_decoded)
  state = ActiveSupport::JSON.decode(uncompress).deep_symbolize_keys
  Refine::Filter.from_state(state, initial_query)
end

#to_stable_id(filter:) ⇒ Object



5
6
7
8
9
# File 'app/models/refine/stabilizers/url_encoded_stabilizer.rb', line 5

def to_stable_id(filter:)
  compressed_state = ActiveSupport::Gzip.compress(filter.state)
  encoded_state = Base64.encode64(compressed_state)
  CGI.escape(encoded_state)
end