devise_latcheable 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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