Class: Itsdangerousr::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/itsdangerousr.rb

Direct Known Subclasses

TimedSerializer, URLSafeSerializer

Instance Method Summary collapse

Constructor Details

#initialize(secret_key, options = {}) ⇒ Serializer

Returns a new instance of Serializer.



212
213
214
215
216
217
218
219
220
221
# File 'lib/itsdangerousr.rb', line 212

def initialize(secret_key, options={})
  defaults = {:salt => 'itsdangerous', :serializer => JSON,
              :signer => Signer, :signer_kwargs => {}}
  options = defaults.merge(options)
  @secret_key = secret_key
  @salt = options[:salt]
  @serializer = options[:serializer]
  @signer = options[:signer]
  @signer_kwargs = options[:signer_kwargs]
end

Instance Method Details

#dump_payload(obj) ⇒ Object



230
231
232
# File 'lib/itsdangerousr.rb', line 230

def dump_payload(obj)
  @serializer.dump(obj)
end

#dumps(obj, salt = @salt) ⇒ Object



240
241
242
243
# File 'lib/itsdangerousr.rb', line 240

def dumps(obj, salt=@salt)
  payload = dump_payload(obj)
  make_signer(:salt => salt).sign(payload)
end

#load_payload(payload, options = {}) ⇒ Object



223
224
225
226
227
228
# File 'lib/itsdangerousr.rb', line 223

def load_payload(payload, options={})
  defaults = {:serializer => @serializer}
  options = defaults.merge(options)
  serializer = options[:serializer]
  serializer.load(payload, nil, :symbolize_names => true)
end

#loads(s, salt = @salt) ⇒ Object



245
246
247
# File 'lib/itsdangerousr.rb', line 245

def loads(s, salt=@salt)
  load_payload(make_signer(:salt => salt).unsign(s))
end

#make_signer(options = {}) ⇒ Object



234
235
236
237
238
# File 'lib/itsdangerousr.rb', line 234

def make_signer(options={})
  defaults = {:salt => @salt}
  options = defaults.merge(options)
  @signer.new(@secret_key, @signer_kwargs.merge(:salt => options[:salt]))
end