hstore_flags 0.3.0 → 0.4.0

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: 6e686a0ea0b3be6411d2cc926b7c0cfd4ad710f4
4
- data.tar.gz: 666ab02a4e823bdc71282db46836f703ff1ff410
3
+ metadata.gz: 2f832927a457a04c920c9c3a691eaee93e6dc101
4
+ data.tar.gz: ba3db1265a492a8f64e59040c6c8db73bcb009fd
5
5
  SHA512:
6
- metadata.gz: 2954317f122b1a388a0a55ed53de61b2732e724a965266aeaffc0a8d47e0b80ac3c4c4bddc10ebaa9581a20ed431784bcdd6e102623c7fb362bcf26d814bafb6
7
- data.tar.gz: 269644cf3141f1b44b6e0a109f19a0646f7828664307efa1059e77cdbba3a818f83cab72b876165f993105ff64f5c91e87d69c579402728647f961c5a94dd590
6
+ metadata.gz: b3843fbcedb213c70a6911785d53a37e1dd98fc3ec73abc470f3884388cffc9c9573ad0c6b4760357499b4ba5e48b8ac0e4b390b1c370db861cb1bbcd850a420
7
+ data.tar.gz: 61b2799c0ab6d8837f6ecd79e952218dceadb6c1197002137c5ee6c2fe68dc2fd5d33860f4c9448ecb1de29b4c115f7fedb1231296a2f9026c65aa4f75338180
data/Gemfile.lock CHANGED
@@ -1,34 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hstore_flags (0.2.0)
4
+ hstore_flags (0.4.0)
5
5
  activerecord (~> 4.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (4.0.0)
11
- activesupport (= 4.0.0)
12
- builder (~> 3.1.0)
13
- activerecord (4.0.0)
14
- activemodel (= 4.0.0)
15
- activerecord-deprecated_finders (~> 1.0.2)
16
- activesupport (= 4.0.0)
17
- arel (~> 4.0.0)
18
- activerecord-deprecated_finders (1.0.3)
19
- activesupport (4.0.0)
20
- i18n (~> 0.6, >= 0.6.4)
21
- minitest (~> 4.2)
22
- multi_json (~> 1.3)
10
+ activemodel (4.1.4)
11
+ activesupport (= 4.1.4)
12
+ builder (~> 3.1)
13
+ activerecord (4.1.4)
14
+ activemodel (= 4.1.4)
15
+ activesupport (= 4.1.4)
16
+ arel (~> 5.0.0)
17
+ activesupport (4.1.4)
18
+ i18n (~> 0.6, >= 0.6.9)
19
+ json (~> 1.7, >= 1.7.7)
20
+ minitest (~> 5.1)
23
21
  thread_safe (~> 0.1)
24
- tzinfo (~> 0.3.37)
25
- arel (4.0.0)
26
- atomic (1.1.14)
27
- builder (3.1.4)
22
+ tzinfo (~> 1.1)
23
+ arel (5.0.1.20140414130214)
24
+ builder (3.2.2)
28
25
  diff-lcs (1.2.4)
29
- i18n (0.6.5)
30
- minitest (4.7.5)
31
- multi_json (1.8.0)
26
+ i18n (0.6.11)
27
+ json (1.8.1)
28
+ minitest (5.4.0)
32
29
  pg (0.17.0)
33
30
  rspec (2.14.1)
34
31
  rspec-core (~> 2.14.0)
@@ -38,14 +35,14 @@ GEM
38
35
  rspec-expectations (2.14.3)
39
36
  diff-lcs (>= 1.1.3, < 2.0)
40
37
  rspec-mocks (2.14.3)
41
- thread_safe (0.1.3)
42
- atomic
43
- tzinfo (0.3.37)
38
+ thread_safe (0.3.4)
39
+ tzinfo (1.2.1)
40
+ thread_safe (~> 0.1)
44
41
 
45
42
  PLATFORMS
46
43
  ruby
47
44
 
48
45
  DEPENDENCIES
49
46
  hstore_flags!
50
- pg
51
- rspec
47
+ pg (~> 0.17.0)
48
+ rspec (~> 2.14.1)
data/README.md CHANGED
@@ -19,6 +19,11 @@ Usage
19
19
  -----
20
20
 
21
21
  ```ruby
22
+ # Add hstore flags column to your table in a migration
23
+ def change
24
+ add_column :shipments, :flags, :hstore
25
+ end
26
+
22
27
  # defining flags
23
28
  class User < ActiveRecord::Base
24
29
  hstore_flags :active, :admin
data/hstore_flags.gemspec CHANGED
@@ -5,15 +5,17 @@ Gem::Specification.new do |s|
5
5
  s.name = "hstore_flags"
6
6
  s.version = HStoreFlags::VERSION
7
7
  s.summary = "Store many boolean flags in an hstore column in PostgreSQL"
8
+ s.description = "turns an hstore column into a very useful flags container " +
9
+ "instead of using separate columns"
8
10
  s.authors = ["Zachery Hostens"]
9
- s.email = "zachery.hostens@countrystone.com"
10
- s.homepage = "https://github.com/infinitysw/hstore_flags"
11
+ s.email = "zacheryph@gmail.com"
12
+ s.homepage = "https://github.com/zacheryph/hstore_flags"
11
13
  s.files = `git ls-files`.split("\n")
12
14
  s.license = "MIT"
13
15
  s.require_paths = ["lib"]
14
16
 
15
17
  s.add_dependency "activerecord", "~> 4.0"
16
18
 
17
- s.add_development_dependency "rspec"
18
- s.add_development_dependency "pg"
19
+ s.add_development_dependency "rspec", "~> 2.14"
20
+ s.add_development_dependency "pg", "~> 0.17"
19
21
  end
@@ -1,3 +1,3 @@
1
1
  module HStoreFlags
2
- Version = VERSION = "0.3.0"
2
+ Version = VERSION = "0.4.0"
3
3
  end
data/lib/hstore_flags.rb CHANGED
@@ -33,6 +33,10 @@ module HStoreFlags
33
33
  field = opts[:field] || "flags"
34
34
  table_field = "#{self.table_name}." + field
35
35
 
36
+ class_exec do
37
+ const_set("AVAILABLE_#{field.upcase}", args)
38
+ end
39
+
36
40
  args.each do |flag|
37
41
  define_method("#{flag}") {(self[field] || {})[flag.to_s] == STORED_TRUE_VALUE}
38
42
  define_method("#{flag}?") {(self[field] || {})[flag.to_s] == STORED_TRUE_VALUE}
@@ -16,6 +16,13 @@ class UserMultiFlags < ActiveRecord::Base
16
16
  end
17
17
 
18
18
  describe HStoreFlags do
19
+
20
+ it "shows available hstore flags" do
21
+ expect(User::AVAILABLE_FLAGS).to eq [:fighter, :lover]
22
+ expect(UserMultiFlags::AVAILABLE_MORE_FLAGS).to eq [:drinker, :smoker, :bartender]
23
+ expect { User::AVAILABLE_MORE_FLAGS }.to raise_error
24
+ end
25
+
19
26
  it "creates accessors for flags" do
20
27
  u = User.new(fighter: true)
21
28
  expect(u.fighter).to eq(true)
metadata CHANGED
@@ -1,64 +1,65 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hstore_flags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zachery Hostens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-21 00:00:00.000000000 Z
11
+ date: 2014-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '2.14'
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: '2.14'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pg
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.17'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
55
- description:
56
- email: zachery.hostens@countrystone.com
54
+ version: '0.17'
55
+ description: turns an hstore column into a very useful flags container instead of
56
+ using separate columns
57
+ email: zacheryph@gmail.com
57
58
  executables: []
58
59
  extensions: []
59
60
  extra_rdoc_files: []
60
61
  files:
61
- - .gitignore
62
+ - ".gitignore"
62
63
  - Gemfile
63
64
  - Gemfile.lock
64
65
  - README.md
@@ -69,7 +70,7 @@ files:
69
70
  - spec/database.rb
70
71
  - spec/hstore_flags_spec.rb
71
72
  - spec/spec_helper.rb
72
- homepage: https://github.com/infinitysw/hstore_flags
73
+ homepage: https://github.com/zacheryph/hstore_flags
73
74
  licenses:
74
75
  - MIT
75
76
  metadata: {}
@@ -79,17 +80,17 @@ require_paths:
79
80
  - lib
80
81
  required_ruby_version: !ruby/object:Gem::Requirement
81
82
  requirements:
82
- - - '>='
83
+ - - ">="
83
84
  - !ruby/object:Gem::Version
84
85
  version: '0'
85
86
  required_rubygems_version: !ruby/object:Gem::Requirement
86
87
  requirements:
87
- - - '>='
88
+ - - ">="
88
89
  - !ruby/object:Gem::Version
89
90
  version: '0'
90
91
  requirements: []
91
92
  rubyforge_project:
92
- rubygems_version: 2.0.3
93
+ rubygems_version: 2.2.2
93
94
  signing_key:
94
95
  specification_version: 4
95
96
  summary: Store many boolean flags in an hstore column in PostgreSQL