hstore_flags 0.3.0 → 0.4.0

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: 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