Module: Tinypass::MeterHelper

Extended by:
MeterHelper
Included in:
MeterHelper
Defined in:
lib/tinypass/token/meter_helper.rb

Instance Method Summary collapse

Instance Method Details

#create_time_based(name, trial_period, lockout_period) ⇒ Object



9
10
11
# File 'lib/tinypass/token/meter_helper.rb', line 9

def create_time_based(name, trial_period, lockout_period)
  Meter.create_time_based(name, trial_period, lockout_period)
end

#create_view_based(name, max_views, within_period) ⇒ Object



5
6
7
# File 'lib/tinypass/token/meter_helper.rb', line 5

def create_view_based(name, max_views, within_period)
  Meter.create_view_based(name, max_views, within_period)
end

#deserialize(string) ⇒ Object



52
53
54
55
56
57
58
59
60
# File 'lib/tinypass/token/meter_helper.rb', line 52

def deserialize(string)
  parser = ClientParser.new
  list = parser.parse_access_tokens(string)
  token = list.first

  return if token.nil?

  Meter.new(token)
end


62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/tinypass/token/meter_helper.rb', line 62

def generate_cookie_embed_script(name, meter)
  if meter.lockout_period_active?
    expires = meter.lockout_end_time_secs + 60
  else
    expires = Time.now.to_i + 60 * 60 * 24 * 90
  end
  expires_string = Time.at(expires).utc

  "<script>
    document.cookie='#{ generate_local_cookie(name, meter) }; path=/; expires=#{ expires_string };';
  </script>"
end


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/tinypass/token/meter_helper.rb', line 13

def load_meter_from_cookie(meter_name, cookies)
  # NOTE: This method expects `meter_name` to be both the cookie name and the meter name
  #   aka rid.

  store = AccessTokenStore.new
  store.load_tokens_from_cookie(cookies, meter_name)

  return unless store.has_token?(meter_name)

  token = store.get_access_token(meter_name)
  meter = Meter.new(token)

  return if meter.trial_dead?
  meter
end

#load_meter_from_serialized_data(string) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/tinypass/token/meter_helper.rb', line 29

def load_meter_from_serialized_data(string)
  store = AccessTokenStore.new
  store.load_tokens_from_cookie(string)
  token = store.tokens.first

  return if token.nil?

  meter = Meter.new(token)

  return if meter.trial_dead?
  meter
end

#serialize(meter, builder_config = '') ⇒ Object



42
43
44
45
46
# File 'lib/tinypass/token/meter_helper.rb', line 42

def serialize(meter, builder_config = '')
  token = AccessToken.new(meter.data)
  builder = ClientBuilder.new(builder_config)
  builder.build_access_tokens(token)
end

#serialize_to_json(meter) ⇒ Object



48
49
50
# File 'lib/tinypass/token/meter_helper.rb', line 48

def serialize_to_json(meter)
  serialize(meter, ClientBuilder::OPEN_ENC)
end