devise_latcheable 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 379693f10790abde6f4cf2e9599df5c81067d950
4
- data.tar.gz: 77c901493d78beccf714f2c7aa54530b396fedf0
3
+ metadata.gz: 87241b423b253073441eb3c2856b6b2051a31e3d
4
+ data.tar.gz: 7bb4b6a26c5b52ffc2bf214368f31c5002fb06e5
5
5
  SHA512:
6
- metadata.gz: 73e7a69efcb758dbc818b930312c67ea66e38ab00c0f43495ce8f1fe6e0e47b900c89365a387eab6435bd31660a483e35bcf0d2e6f033095b47da1b3fd92e000
7
- data.tar.gz: 4ab0b88692b79965c2e594b64ac32fdcdfc588344f60bf1c9332bd5b15650dedd815aaabb16ff1e629c34b5f47a6fe0113a9a896b4296b896be0ff7198443a5c
6
+ metadata.gz: f56511bb07e35bc80939f13a64d183c5e49d48c4285c4d4b74a274cdbaf5d7bd0d79dd1a5843a4806b2bf829dfcac88c6aaaf81c71fc0d81e2d5cb4330fb5252
7
+ data.tar.gz: 5b9632722d28176bf52e33f7e6e8f32201970a7cd91a11f01380f9ceddf34a4f675c3b76c9feab23df08643d72691e6efb48f3cf9d0147241bbc4ce96d036660
data/README.md CHANGED
@@ -110,25 +110,29 @@ user.latch_account_id
110
110
  ### Methods on the users model
111
111
 
112
112
  #### latch_pair!
113
- Pairs an user with the server.
114
- If an error occurs, it copies the error at errors base
115
- so you can access it with model_instance.errors
116
- On success, it sets latch_account_id to the value that
117
- latch server sent on its response
118
- @returns true on success, false otherwise
113
+ This method pairs an user with the server. If an error occurs, it copies the
114
+ error at errors base so you can access it with model_instance.errors
115
+
116
+ On success, it sets latch_account_id to the value that the latch server sent
117
+ on its response
119
118
 
120
119
  ### latch_unpair!
121
- Removes the pairing from latch
122
- If an error occurs, it copies the error at errors base
123
- so you can access it with model_instance.errors
124
- @returns true on success, false otherwise
120
+ Removes the pairing from latch. If an error occurs, it copies the error at
121
+ errors base so you can access it with model_instance.errors.
125
122
 
126
123
  ### latch_unlocked?
127
- Checks if the app lock is open
128
- @returns true if the latch is unlocked
129
- @returns false if the latch is locked or if there was an error
124
+ Checks if the app lock is open. Returns true if the latch is unlocked and
125
+ false if the latch is locked or if there was an error
130
126
 
131
127
  ## Demo
132
128
  There is a app already configured with devise and devise\_latcheable at
133
- [this repo](https://github.com/CarlosRdrz/latch_app) for demo and
129
+ [this repo](https://github.com/carlosrdrz/latch_app) for demo and
134
130
  development purposes.
131
+
132
+ You can see that app running at http://latcheable.carlosrdrz.es
133
+
134
+ ## How it works
135
+
136
+ Devise builds a chain of strategies that he must check when logging an user in.
137
+ You can define your chain of strategies in your model. We use database_authenticaton
138
+ with latcheable, so both strategies are checked when logging an user in.
@@ -7,12 +7,16 @@ require 'devise_latcheable/engine'
7
7
  module DeviseLatcheable
8
8
  # The config file
9
9
  mattr_accessor :config
10
- self.config = YAML.load(File.read('config/latch.yml'))
11
10
 
12
11
  # We instantiate only one api client per app
13
12
  mattr_accessor :api
14
- self.api = ::Latch.new ::DeviseLatcheable.config['app_id'],
15
- ::DeviseLatcheable.config['app_secret']
13
+
14
+ def self.initialize
15
+ self.config = YAML.load(File.read('config/latch.yml'))
16
+
17
+ self.api = ::Latch.new ::DeviseLatcheable.config['app_id'],
18
+ ::DeviseLatcheable.config['app_secret']
19
+ end
16
20
  end
17
21
 
18
22
  Devise.add_module :latcheable,
@@ -25,6 +25,7 @@ module Devise
25
25
  def latch_unlocked?
26
26
  return true unless latch_enabled?
27
27
  return false if latch_account_id.nil?
28
+ ::DeviseLatcheable.initialize if ::DeviseLatcheable.api.nil?
28
29
  api_response = ::DeviseLatcheable.api.status latch_account_id
29
30
 
30
31
  if api_response.error.nil?
@@ -43,6 +44,7 @@ module Devise
43
44
  def latch_unpair!
44
45
  return true unless latch_enabled?
45
46
  return true if latch_account_id.nil?
47
+ ::DeviseLatcheable.initialize if ::DeviseLatcheable.api.nil?
46
48
  api_response = ::DeviseLatcheable.api.unpair latch_account_id
47
49
 
48
50
  if api_response.error.nil?
@@ -61,8 +63,9 @@ module Devise
61
63
  # @returns true on success, false otherwise
62
64
  def latch_pair!
63
65
  return true unless latch_enabled?
66
+ ::DeviseLatcheable.initialize if ::DeviseLatcheable.api.nil?
64
67
  api_response = ::DeviseLatcheable.api.pair latch_pair_code
65
-
68
+
66
69
  if api_response.error.nil?
67
70
  self.latch_account_id = api_response.data['accountId']
68
71
  return true
@@ -72,7 +75,8 @@ module Devise
72
75
  end
73
76
  end
74
77
 
75
- def latch_enable
78
+ def latch_enable
79
+ ::DeviseLatcheable.initialize if ::DeviseLatcheable.config.nil?
76
80
  if ::DeviseLatcheable.config['always_enabled'] == true
77
81
  self.latch_enabled = true
78
82
  end
@@ -1,3 +1,3 @@
1
1
  module DeviseLatcheable
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.1.1".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_latcheable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Rodriguez