standard-file 0.2.0 → 0.2.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: 1a69077337f48d6974151f5aa9fbdb6d03a55c29
4
- data.tar.gz: db6a54182bb62b35ec2bed3a3e7e4aefbf67acd3
3
+ metadata.gz: b119105d8253ec0363b7eacef2f93de2f15ad39c
4
+ data.tar.gz: fce8a2904b7b5cb291a0d0588e21de6074adfcce
5
5
  SHA512:
6
- metadata.gz: cab4b67da5c58816fb5e7f070ca21b5c47d8999f797b81c0d86d58686ec0229cd86e38a84b19158aa5f713d3df4b2b677af31481e75388774a0580049b0a8ed1
7
- data.tar.gz: fe42b466e4fe00fdbbd19cbc3f5e267e1447f40db844b9048790ab02e985c9ea15af5ff1094415916a08ebfd682523b1243246a1fbc37702a4423b5d45fd9357
6
+ metadata.gz: 3029ce76229b771a8820819ea790ea32d66c01c821d68c72a30280b0a43e66936d7ad78c9b43a0512ac13b16e7b12bd8ff5fe2a27e868d08c5d139ffe744d1bd
7
+ data.tar.gz: a85108a38988fc9a126bc7751a86434c592a8305180fe45e6e5ee4b7fc6cf320eb86200f707aea1c3522c85c696d4f258b9070f2cd8270452d1b46ae9c2a3888
data/README.md CHANGED
@@ -1,28 +0,0 @@
1
- # StandardFile
2
- Short description and motivation.
3
-
4
- ## Usage
5
- How to use my plugin.
6
-
7
- ## Installation
8
- Add this line to your application's Gemfile:
9
-
10
- ```ruby
11
- gem 'standard_file'
12
- ```
13
-
14
- And then execute:
15
- ```bash
16
- $ bundle
17
- ```
18
-
19
- Or install it yourself as:
20
- ```bash
21
- $ gem install standard_file
22
- ```
23
-
24
- ## Contributing
25
- Contribution directions go here.
26
-
27
- ## License
28
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -17,6 +17,7 @@ module StandardFile
17
17
  end
18
18
 
19
19
  def sync(item_hashes, options)
20
+
20
21
  in_sync_token = options[:sync_token]
21
22
  in_cursor_token = options[:cursor_token]
22
23
  limit = options[:limit]
@@ -28,7 +29,23 @@ module StandardFile
28
29
  last_updated = saved_items.sort_by{|m| m.updated_at}.last.updated_at
29
30
  end
30
31
 
31
- # manage conflicts
32
+ last_updated = check_for_conflicts(saved_items, retrieved_items, last_updated)
33
+
34
+ # add 1 microsecond to avoid returning same object in subsequent sync
35
+ last_updated = (last_updated.to_time + 1/100000.0).to_datetime.utc
36
+
37
+ sync_token = sync_token_from_datetime(last_updated)
38
+ return {
39
+ :retrieved_items => retrieved_items,
40
+ :saved_items => saved_items,
41
+ :unsaved => unsaved,
42
+ :sync_token => sync_token,
43
+ :cursor_token => cursor_token
44
+ }
45
+ end
46
+
47
+ def check_for_conflicts(saved_items, retrieved_items, last_updated)
48
+ # conflicts occur when you are trying to save an item for which there is a pending change already
32
49
  min_conflict_interval = 20
33
50
 
34
51
  saved_ids = saved_items.map{|x| x.uuid }
@@ -53,17 +70,7 @@ module StandardFile
53
70
  retrieved_items.delete(conflicted)
54
71
  end
55
72
 
56
- # add 1 microsecond to avoid returning same object in subsequent sync
57
- last_updated = (last_updated.to_time + 1/100000.0).to_datetime.utc
58
-
59
- sync_token = sync_token_from_datetime(last_updated)
60
- return {
61
- :retrieved_items => retrieved_items,
62
- :saved_items => saved_items,
63
- :unsaved => unsaved,
64
- :sync_token => sync_token,
65
- :cursor_token => cursor_token
66
- }
73
+ return last_updated
67
74
  end
68
75
 
69
76
  def destroy_items(uuids)
@@ -32,14 +32,27 @@ module StandardFile
32
32
  return { user: user, token: jwt(user) }
33
33
  end
34
34
 
35
+ def update(user, params)
36
+ user.update!(registration_params(params))
37
+ return { user: user, token: jwt(user) }
38
+ end
39
+
35
40
  def auth_params(email)
36
41
  user = @user_class.find_by_email(email)
37
- pw_salt = user ? Digest::SHA1.hexdigest(email + "SN" + user.pw_nonce) : Digest::SHA1.hexdigest(email + "SN" + @salt_psuedo_nonce)
38
- pw_cost = user ? user.pw_cost : 5000
39
- pw_alg = user ? user.pw_alg : "sha512"
40
- pw_key_size = user ? user.pw_key_size : 512
41
- pw_func = user ? user.pw_func : "pbkdf2"
42
- return {:pw_func => pw_func, :pw_alg => pw_alg, :pw_salt => pw_salt, :pw_cost => pw_cost, :pw_key_size => pw_key_size}
42
+
43
+ if !user
44
+ return {}
45
+ end
46
+
47
+ auth_params = {:pw_salt => user.pw_salt, :pw_cost => user.pw_cost, :pw_auth => user.pw_auth}
48
+
49
+ if user.pw_func
50
+ auth_params[:pw_func] = user.pw_func
51
+ auth_params[:pw_alg] = user.pw_alg
52
+ auth_params[:pw_key_size] = user.pw_key_size
53
+ end
54
+
55
+ return auth_params
43
56
  end
44
57
 
45
58
  private
@@ -63,7 +76,7 @@ module StandardFile
63
76
  end
64
77
 
65
78
  def registration_params(params)
66
- params.permit(:pw_func, :pw_alg, :pw_cost, :pw_key_size, :pw_nonce)
79
+ params.permit(:pw_func, :pw_alg, :pw_cost, :pw_key_size, :pw_nonce, :pw_salt, :pw_auth)
67
80
  end
68
81
 
69
82
  end
@@ -1,3 +1,3 @@
1
1
  module StandardFile
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: standard-file
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Standard File
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-21 00:00:00.000000000 Z
11
+ date: 2017-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  requirements: []
92
92
  rubyforge_project:
93
- rubygems_version: 2.4.8
93
+ rubygems_version: 2.6.12
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: Standard File User & Sync Engine