groupify 0.3.0 → 0.3.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.
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ /**/*.lock
data/.travis.yml CHANGED
@@ -1,9 +1,27 @@
1
1
  language: ruby
2
+ services: mongodb
2
3
  rvm:
3
4
  - ree
4
5
  - 1.8.7
5
6
  - 1.9.3
7
+ - 2.0.0
6
8
  - jruby-18mode # JRuby in 1.8 mode
7
9
  - jruby-19mode # JRuby in 1.9 mode
8
10
  - rbx-18mode
9
11
  - rbx-19mode
12
+ gemfile:
13
+ - gemfiles/mongoid2.gemfile
14
+ - gemfiles/mongoid3.gemfile
15
+ matrix:
16
+ exclude:
17
+ - rvm: 1.8.7
18
+ gemfile: gemfiles/mongoid3.gemfile
19
+ - rvm: ree
20
+ gemfile: gemfiles/mongoid3.gemfile
21
+ - rvm: jruby-18mode
22
+ gemfile: gemfiles/mongoid3.gemfile
23
+ - rvm: rbx-18mode
24
+ gemfile: gemfiles/mongoid3.gemfile
25
+ allow_failures:
26
+ - rvm: rbx-18mode
27
+
data/Gemfile CHANGED
@@ -2,7 +2,3 @@ source :rubygems
2
2
 
3
3
  # Specify your gem's dependencies in groupify.gemspec
4
4
  gemspec
5
-
6
- platform :ruby, :mswin, :mingw do
7
- gem "bson_ext", "~> 1.6.4"
8
- end
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Groupify [![Build Status](https://secure.travis-ci.org/dwbutler/groupify.png)](http://travis-ci.org/dwbutler/groupify)
2
2
  Adds group and membership functionality to Rails models.
3
3
 
4
- Currently only Mongoid is supported. Tested in Ruby 1.8.7 and 1.9.3.
4
+ Currently only Mongoid 2 and 3 are supported. Tested in Ruby 1.8.7 and 1.9.3 (MRI, REE, JRuby, and Rubinius).
5
+ It shouldn't be difficult to adapt to ActiveRecord.
5
6
 
6
7
  ## Installation
7
8
 
@@ -0,0 +1,10 @@
1
+ source :rubygems
2
+
3
+ gem "mongoid", "~> 2.0"
4
+ gem 'mongoid-rspec', '1.4.5'
5
+
6
+ gem "bson_ext", :platforms => [:ruby]
7
+
8
+ gem 'database_cleaner'
9
+ gem "rspec"
10
+ gem "rake"
@@ -0,0 +1,8 @@
1
+ source :rubygems
2
+
3
+ gem "mongoid", ">= 3.0", "< 4"
4
+ gem 'mongoid-rspec', '>= 1.5.1'
5
+
6
+ gem 'database_cleaner'
7
+ gem "rspec"
8
+ gem "rake"
data/groupify.gemspec CHANGED
@@ -15,15 +15,11 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Groupify::VERSION
17
17
 
18
- gem.add_development_dependency "rails", "~> 3.2"
18
+ gem.add_dependency "mongoid", '>= 2'
19
+
20
+ gem.add_development_dependency "rake"
19
21
  gem.add_development_dependency "rspec"
20
22
 
21
- if RUBY_VERSION < '1.9'
22
- gem.add_development_dependency "mongoid", "~> 2.0"
23
- gem.add_development_dependency 'mongoid-rspec', '1.4.5'
24
- else
25
- gem.add_development_dependency "mongoid", "~> 3.0"
26
- gem.add_development_dependency 'mongoid-rspec', '~> 1.5.1'
27
- end
23
+ gem.add_development_dependency 'mongoid-rspec'
28
24
  gem.add_development_dependency 'database_cleaner'
29
25
  end
data/lib/groupify.rb CHANGED
@@ -147,6 +147,12 @@ module Groupify
147
147
 
148
148
  included do
149
149
  field :named_groups, :type => Array, :default => []
150
+
151
+ before_save :uniq_named_groups
152
+ protected
153
+ def uniq_named_groups
154
+ named_groups.uniq!
155
+ end
150
156
  end
151
157
 
152
158
  def in_named_group?(group)
@@ -1,3 +1,3 @@
1
1
  module Groupify
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
File without changes
File without changes
@@ -3,6 +3,17 @@ require 'mongoid'
3
3
  require 'mongoid-rspec'
4
4
  include Mongoid::Matchers
5
5
 
6
+ # Load mongoid config
7
+ if Mongoid::VERSION < '3'
8
+ ENV["MONGOID_ENV"] = "test"
9
+ Mongoid.load!('./spec/groupify/mongoid2.yml')
10
+ Mongoid.logger.level = Logger::INFO
11
+ else
12
+ Mongoid.load!('./spec/groupify/mongoid3.yml', :test)
13
+ end
14
+
15
+ require 'groupify'
16
+
6
17
  class MongoidUser
7
18
  include Mongoid::Document
8
19
 
@@ -44,7 +55,7 @@ describe MongoidUser do
44
55
  it { should have_and_belong_to_many(:groups).of_type(MongoidGroup) }
45
56
  end
46
57
 
47
- describe "MongoidUser" do
58
+ describe "Mongoid Model" do
48
59
  let!(:user) { MongoidUser.create }
49
60
  let!(:group) { MongoidGroup.create }
50
61
 
@@ -103,6 +114,11 @@ describe "MongoidUser" do
103
114
  MongoidUser.in_named_group(:admin).first.should eql(user)
104
115
  MongoidUser.in_any_named_group(:admin, :test).first.should eql(user)
105
116
  MongoidUser.in_all_named_groups(:admin, :user).first.should eql(user)
117
+
118
+ # Uniqueness
119
+ user.named_groups << :admin
120
+ user.save
121
+ user.named_groups.count{|g| g == :admin}.should == 1
106
122
  end
107
123
 
108
124
  it "can check if groups are shared" do
data/spec/spec_helper.rb CHANGED
@@ -3,20 +3,6 @@ require 'bundler/setup'
3
3
 
4
4
  Bundler.require(:default, :test, :development)
5
5
 
6
- require 'active_support'
7
- require 'active_support/all'
8
- require 'rails'
9
- require 'active_record'
10
-
11
- # Load mongoid config
12
- if Mongoid::VERSION < '3'
13
- ENV["MONGOID_ENV"] = "test"
14
- Mongoid.load!('./spec/mongoid2.yml')
15
- else
16
- Mongoid.load!('./spec/mongoid3.yml', :test)
17
- end
18
- #Mongoid.logger.level = :info
19
-
20
6
  RSpec.configure do |config|
21
7
  config.order = "random"
22
8
 
metadata CHANGED
@@ -1,156 +1,156 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: groupify
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 3
9
- - 0
10
- version: 0.3.0
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.3.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - dwbutler
14
- autorequire:
9
+ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-09-06 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: rails
12
+ date: 2013-01-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mongoid
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: !binary |-
21
+ Mg==
22
+ none: false
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: !binary |-
28
+ Mg==
29
+ none: false
23
30
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
31
+ type: :runtime
32
+ - !ruby/object:Gem::Dependency
33
+ name: rake
34
+ version_requirements: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: !binary |-
39
+ MA==
25
40
  none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 3
32
- - 2
33
- version: "3.2"
41
+ requirement: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: !binary |-
46
+ MA==
47
+ none: false
48
+ prerelease: false
34
49
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
50
+ - !ruby/object:Gem::Dependency
37
51
  name: rspec
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: !binary |-
57
+ MA==
40
58
  none: false
41
- requirements:
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
42
61
  - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: mongoid
52
- prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
62
+ - !ruby/object:Gem::Version
63
+ version: !binary |-
64
+ MA==
54
65
  none: false
55
- requirements:
56
- - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 2
61
- - 0
62
- version: "2.0"
66
+ prerelease: false
63
67
  type: :development
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
68
+ - !ruby/object:Gem::Dependency
66
69
  name: mongoid-rspec
67
- prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: !binary |-
75
+ MA==
69
76
  none: false
70
- requirements:
71
- - - "="
72
- - !ruby/object:Gem::Version
73
- hash: 13
74
- segments:
75
- - 1
76
- - 4
77
- - 5
78
- version: 1.4.5
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: !binary |-
82
+ MA==
83
+ none: false
84
+ prerelease: false
79
85
  type: :development
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
86
+ - !ruby/object:Gem::Dependency
82
87
  name: database_cleaner
83
- prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: !binary |-
93
+ MA==
85
94
  none: false
86
- requirements:
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
87
97
  - - ">="
88
- - !ruby/object:Gem::Version
89
- hash: 3
90
- segments:
91
- - 0
92
- version: "0"
98
+ - !ruby/object:Gem::Version
99
+ version: !binary |-
100
+ MA==
101
+ none: false
102
+ prerelease: false
93
103
  type: :development
94
- version_requirements: *id005
95
104
  description: Adds group and membership functionality to Rails models
96
- email:
105
+ email:
97
106
  - dwbutler@ucla.edu
98
107
  executables: []
99
-
100
108
  extensions: []
101
-
102
109
  extra_rdoc_files: []
103
-
104
- files:
105
- - .gitignore
106
- - .travis.yml
110
+ files:
111
+ - ".gitignore"
112
+ - ".travis.yml"
107
113
  - Gemfile
108
114
  - LICENSE
109
115
  - README.md
110
116
  - Rakefile
117
+ - gemfiles/mongoid2.gemfile
118
+ - gemfiles/mongoid3.gemfile
111
119
  - groupify.gemspec
112
120
  - lib/groupify.rb
113
121
  - lib/groupify/version.rb
122
+ - spec/groupify/mongoid2.yml
123
+ - spec/groupify/mongoid3.yml
114
124
  - spec/groupify/mongoid_spec.rb
115
- - spec/mongoid2.yml
116
- - spec/mongoid3.yml
117
125
  - spec/spec_helper.rb
118
- has_rdoc: true
119
126
  homepage: https://github.com/dwbutler/groupify
120
127
  licenses: []
121
-
122
- post_install_message:
128
+ post_install_message:
123
129
  rdoc_options: []
124
-
125
- require_paths:
130
+ require_paths:
126
131
  - lib
127
- required_ruby_version: !ruby/object:Gem::Requirement
128
- none: false
129
- requirements:
132
+ required_ruby_version: !ruby/object:Gem::Requirement
133
+ requirements:
130
134
  - - ">="
131
- - !ruby/object:Gem::Version
132
- hash: 3
133
- segments:
134
- - 0
135
- version: "0"
136
- required_rubygems_version: !ruby/object:Gem::Requirement
135
+ - !ruby/object:Gem::Version
136
+ version: !binary |-
137
+ MA==
137
138
  none: false
138
- requirements:
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
139
141
  - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
143
- - 0
144
- version: "0"
142
+ - !ruby/object:Gem::Version
143
+ version: !binary |-
144
+ MA==
145
+ none: false
145
146
  requirements: []
146
-
147
- rubyforge_project:
148
- rubygems_version: 1.3.7
149
- signing_key:
147
+ rubyforge_project:
148
+ rubygems_version: 1.8.24
149
+ signing_key:
150
150
  specification_version: 3
151
151
  summary: Group functionality for Rails
152
- test_files:
152
+ test_files:
153
+ - spec/groupify/mongoid2.yml
154
+ - spec/groupify/mongoid3.yml
153
155
  - spec/groupify/mongoid_spec.rb
154
- - spec/mongoid2.yml
155
- - spec/mongoid3.yml
156
156
  - spec/spec_helper.rb