app_registry 1.0.0.beta1 → 1.0.0.beta2
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 +4 -4
- data/README.md +3 -1
- data/app_registry.gemspec +3 -3
- data/lib/app_registry/model.rb +36 -0
- data/lib/app_registry/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4db528c15412bfc71235e55d39bd2e15422c3f6a
|
4
|
+
data.tar.gz: 74f0605069caa2cb07f216049b597a32ff28a9ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89e404108d4d74a7cca483e06e15e1d17bac9eb62b1db7b5bd62c784d84da655a457385d0712960d4eb3deb842d35f6f8733e6d4115724ac603b4ca26ba28eec
|
7
|
+
data.tar.gz: ea4ba5a7a05baff9ec02f65ecf29a87d04e63dcb2ccb443bea18a43dc12670e28cc9e47596b3e84926c1019ba925e52cb346dbab475c143a7af3c0b6b8e227f5
|
data/README.md
CHANGED
data/app_registry.gemspec
CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = AppRegistry::VERSION
|
9
9
|
spec.authors = ["uno4ki"]
|
10
10
|
spec.email = ["i.have@no.mail"]
|
11
|
-
spec.description = %q{
|
11
|
+
spec.description = %q{Simple gem for works with persistent variables}
|
12
12
|
spec.summary = %q{Persistent variables storage for rails app}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/the-furnish/app_registry"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
-
spec.add_development_dependency "rake"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.3"
|
23
23
|
|
24
24
|
spec.add_dependency 'activerecord', '>= 3.2', '< 4.2'
|
25
25
|
end
|
data/lib/app_registry/model.rb
CHANGED
@@ -5,5 +5,41 @@ module AppRegistry
|
|
5
5
|
self.primary_key = :name
|
6
6
|
validates_presence_of :name, :value
|
7
7
|
attr_accessible :name, :value
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def find_with_default(key, value)
|
11
|
+
find(key).value
|
12
|
+
rescue ActiveRecord::RecordNotFound
|
13
|
+
value
|
14
|
+
end
|
15
|
+
|
16
|
+
def atomic_set(key, &block)
|
17
|
+
begin
|
18
|
+
find_and_update_locked(key, &block)
|
19
|
+
rescue ActiveRecord::RecordNotFound
|
20
|
+
transaction do
|
21
|
+
begin
|
22
|
+
create_and_update_locked(key, &block)
|
23
|
+
rescue ActiveRecord::RecordNotUnique
|
24
|
+
atomic_set(key, &block)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def find_and_update_locked(key, &block)
|
33
|
+
record = lock.find(key)
|
34
|
+
yield record
|
35
|
+
record.save if record.changed?
|
36
|
+
end
|
37
|
+
|
38
|
+
def create_and_update_locked(key, &block)
|
39
|
+
record = create({name: key, value: nil})
|
40
|
+
yield record
|
41
|
+
record.save if record.changed?
|
42
|
+
end
|
43
|
+
end
|
8
44
|
end
|
9
45
|
end
|
data/lib/app_registry/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app_registry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- uno4ki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '10.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '10.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activerecord
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
- - "<"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '4.2'
|
61
|
-
description:
|
61
|
+
description: Simple gem for works with persistent variables
|
62
62
|
email:
|
63
63
|
- i.have@no.mail
|
64
64
|
executables: []
|
@@ -76,7 +76,7 @@ files:
|
|
76
76
|
- lib/app_registry/version.rb
|
77
77
|
- lib/generators/app_registry/app_registry_generator.rb
|
78
78
|
- lib/generators/app_registry/templates/migration.rb
|
79
|
-
homepage: https://github.com/
|
79
|
+
homepage: https://github.com/the-furnish/app_registry
|
80
80
|
licenses:
|
81
81
|
- MIT
|
82
82
|
metadata: {}
|