app_registry 1.0.0.beta1 → 1.0.0.beta2

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: 17b0562f8e05f7193dd59afea1bcab9840736e2b
4
- data.tar.gz: a1c142a5eca050dd668dce9ca329ffc98585ad46
3
+ metadata.gz: 4db528c15412bfc71235e55d39bd2e15422c3f6a
4
+ data.tar.gz: 74f0605069caa2cb07f216049b597a32ff28a9ad
5
5
  SHA512:
6
- metadata.gz: 9f74a602df75e22458265e017b12138a58b427ecb409b589d5dce2a377b4abd6fd45fc53724215a7c6ad7b16893952295f0ef111b561ce9f1c3038e500640bb2
7
- data.tar.gz: 6dd80269c091aed7a5b0c7886f93dafce29ff427586ae6ae30bec1c7ce970c08c3293a972e11fb6be0cfb0ccb9af10c2f8cf5783a8afa353d03a07a7b8ad62c6
6
+ metadata.gz: 89e404108d4d74a7cca483e06e15e1d17bac9eb62b1db7b5bd62c784d84da655a457385d0712960d4eb3deb842d35f6f8733e6d4115724ac603b4ca26ba28eec
7
+ data.tar.gz: ea4ba5a7a05baff9ec02f65ecf29a87d04e63dcb2ccb443bea18a43dc12670e28cc9e47596b3e84926c1019ba925e52cb346dbab475c143a7af3c0b6b8e227f5
data/README.md CHANGED
@@ -1 +1,3 @@
1
- AppRegistry
1
+ [![Gem Version](https://badge.fury.io/rb/app_registry.svg)](http://badge.fury.io/rb/app_registry)
2
+
3
+ # AppRegistry
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{Persistent variables storage for rails app}
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/uno4ki/app_registry"
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module AppRegistry
2
- VERSION = "1.0.0.beta1"
2
+ VERSION = "1.0.0.beta2"
3
3
  end
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.beta1
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-14 00:00:00.000000000 Z
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: '0'
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: '0'
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: Persistent variables storage for rails app
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/uno4ki/app_registry
79
+ homepage: https://github.com/the-furnish/app_registry
80
80
  licenses:
81
81
  - MIT
82
82
  metadata: {}