simple_group 0.2.1 → 0.5.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
- SHA1:
3
- metadata.gz: e24f793944ed1ac7b687f8ad603921051f48ada7
4
- data.tar.gz: e9b59b8712bbf0e53e795d48c1e416432b62f133
2
+ SHA256:
3
+ metadata.gz: 36972d331f16a80ba3212517ebb50c50c5dbe672030cd88806e8423b5c611939
4
+ data.tar.gz: 7b10c2d2ec09f60501d39a3c9c948f43e421c5a576f4f2f13212d58895420238
5
5
  SHA512:
6
- metadata.gz: 29c6b1f067e82a20500cce4e1979271d7261068309aafd6d01d9dc2f57f662c2b17485db68cc5d143c32d28dca0936bfa5537852891f6d62b7e668ea466568db
7
- data.tar.gz: d8e8075868d0a123e9c4b5b3f7c86f8da90c53a86b7bd602992a554c8205114295453054834ec459ac690baec3616ec3799e3a6952396567db2c24e1dfe897b2
6
+ metadata.gz: 328bee9ac18d384d7d04f7a1ca9b1c432256f899026c97e603f943f4c14424bae5907434938d5f95c709164eab83476f844a39c6414e6914a079b363a13ed599
7
+ data.tar.gz: 6de399d3ed76834bef757553bcf8c792725afedb8a65245090393e08b8560bfbbd35943c48a337491a1df16fb7ee84406e6d9dff8419e81bb46956fe2143e234
@@ -0,0 +1,217 @@
1
+ version: 2.1
2
+
3
+ executors:
4
+ ruby:
5
+ parameters:
6
+ ruby_version:
7
+ default: '2.7.2'
8
+ type: enum
9
+ enum: ['2.5.8', '2.6.6', '2.7.2']
10
+ working_directory: ~/repo
11
+ docker:
12
+ - image: circleci/ruby:<< parameters.ruby_version >>-node-browsers
13
+
14
+ commands:
15
+ bundle_install:
16
+ parameters:
17
+ rails_version:
18
+ default: '6.1'
19
+ type: enum
20
+ enum: ['5.0', '5.1', '5.2', '6.0', '6.1']
21
+ steps:
22
+ - run: gem install bundler --version=2.1.4 -N
23
+ - run:
24
+ name: bundle install
25
+ command: |
26
+ export BUNDLE_GEMFILE=$PWD/gemfiles/rails_<< parameters.rails_version >>.gemfile
27
+ bundle check || bundle install --jobs=4 --retry=3
28
+
29
+ rspec:
30
+ parameters:
31
+ rails_version:
32
+ default: '6.1'
33
+ type: enum
34
+ enum: ['5.0', '5.1', '5.2', '6.0', '6.1']
35
+ steps:
36
+ - run:
37
+ name: run tests
38
+ command: |
39
+ export BUNDLE_GEMFILE=$PWD/gemfiles/rails_<< parameters.rails_version >>.gemfile
40
+ mkdir /tmp/test-results
41
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
42
+ circleci tests split --split-by=timings)"
43
+
44
+ bundle exec rspec \
45
+ --format progress \
46
+ --format RspecJunitFormatter \
47
+ --out /tmp/test-results/rspec.xml \
48
+ --format progress \
49
+ $TEST_FILES
50
+
51
+ run_test:
52
+ parameters:
53
+ rails_version:
54
+ default: '6.1'
55
+ type: enum
56
+ enum: ['5.0', '5.1', '5.2', '6.0', '6.1']
57
+ steps:
58
+ - checkout
59
+ - bundle_install:
60
+ rails_version: << parameters.rails_version >>
61
+ - rspec:
62
+ rails_version: << parameters.rails_version >>
63
+ # collect reports
64
+ - store_test_results:
65
+ path: /tmp/test-results
66
+ - store_artifacts:
67
+ path: /tmp/test-results
68
+ destination: test-results
69
+
70
+ jobs:
71
+ test:
72
+ parameters:
73
+ ruby_version:
74
+ type: enum
75
+ enum: ['2.5.8', '2.6.6', '2.7.2']
76
+ rails_version:
77
+ type: enum
78
+ enum: ['5.0', '5.1', '5.2', '6.0', '6.1']
79
+ executor:
80
+ name: ruby
81
+ ruby_version: << parameters.ruby_version >>
82
+ parallelism: 1
83
+ steps:
84
+ - run_test:
85
+ rails_version: << parameters.rails_version >>
86
+
87
+ release:
88
+ executor:
89
+ name: ruby
90
+ parallelism: 1
91
+ steps:
92
+ - checkout
93
+ - add_ssh_keys:
94
+ fingerprints:
95
+ - "09:10:3f:c9:1a:86:ab:0a:9c:b2:37:3a:1b:10:40:08"
96
+ - run: gem install bundler --version=2.1.4 -N
97
+ - run:
98
+ name: bundle install
99
+ command: bundle check || bundle install --jobs=4 --retry=3
100
+ - run:
101
+ name: RubyGems.org | Set credential
102
+ command: |
103
+ mkdir -p ~/.gem
104
+ echo ":rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
105
+ chmod 0600 ~/.gem/credentials
106
+ - run:
107
+ name: Setup git
108
+ command: |
109
+ git config push.default current
110
+ git config user.email "chariderpato@gmail.com"
111
+ git config user.name "patorash"
112
+ - run:
113
+ name: rake release
114
+ command: |
115
+ set +e
116
+ filename=$(for n in *; do printf '%s\n' "$n"; done | grep gemspec)
117
+ gem_name=`ruby -e "require 'rubygems'; spec = Gem::Specification::load('${filename}'); puts spec.name"`
118
+ gem_version=`ruby -e "require 'rubygems'; spec = Gem::Specification::load('${filename}'); puts spec.version"`
119
+ gem list --prerelease --all --remote $gem_name \
120
+ | grep -E "^${gem_name}" \
121
+ | sed -e "s/^.*(\(.*\)).*\$/\1/" \
122
+ | grep -q -v $gem_version
123
+ result=$?
124
+ if [ $result = 0 ]; then
125
+ bundle exec rake build
126
+ bundle exec rake release
127
+ fi
128
+ - run:
129
+ name: Delete credentials
130
+ command: |
131
+ shred -u ~/.gem/credentials
132
+
133
+ workflows:
134
+ build:
135
+ jobs:
136
+ - test:
137
+ name: 'Ruby 2.5.8-Rails 5.0'
138
+ ruby_version: '2.5.8'
139
+ rails_version: '5.0'
140
+ - test:
141
+ name: 'Ruby 2.6.6-Rails 5.0'
142
+ ruby_version: '2.6.6'
143
+ rails_version: '5.0'
144
+ - test:
145
+ name: 'Ruby 2.7.2-Rails 5.0'
146
+ ruby_version: '2.7.2'
147
+ rails_version: '5.0'
148
+ - test:
149
+ name: 'Ruby 2.5.8-Rails 5.1'
150
+ ruby_version: '2.5.8'
151
+ rails_version: '5.1'
152
+ - test:
153
+ name: 'Ruby 2.6.6-Rails 5.1'
154
+ ruby_version: '2.6.6'
155
+ rails_version: '5.1'
156
+ - test:
157
+ name: 'Ruby 2.7.2-Rails 5.1'
158
+ ruby_version: '2.7.2'
159
+ rails_version: '5.1'
160
+ - test:
161
+ name: 'Ruby 2.5.8-Rails 5.2'
162
+ ruby_version: '2.5.8'
163
+ rails_version: '5.2'
164
+ - test:
165
+ name: 'Ruby 2.6.6-Rails 5.2'
166
+ ruby_version: '2.6.6'
167
+ rails_version: '5.2'
168
+ - test:
169
+ name: 'Ruby 2.7.2-Rails 5.2'
170
+ ruby_version: '2.7.2'
171
+ rails_version: '5.2'
172
+ - test:
173
+ name: 'Ruby 2.5.8-Rails 6.0'
174
+ ruby_version: '2.5.8'
175
+ rails_version: '6.0'
176
+ - test:
177
+ name: 'Ruby 2.6.6-Rails 6.0'
178
+ ruby_version: '2.6.6'
179
+ rails_version: '6.0'
180
+ - test:
181
+ name: 'Ruby 2.7.2-Rails 6.0'
182
+ ruby_version: '2.7.2'
183
+ rails_version: '6.1'
184
+ - test:
185
+ name: 'Ruby 2.5.8-Rails 6.1'
186
+ ruby_version: '2.5.8'
187
+ rails_version: '6.1'
188
+ - test:
189
+ name: 'Ruby 2.6.6-Rails 6.1'
190
+ ruby_version: '2.6.6'
191
+ rails_version: '6.1'
192
+ - test:
193
+ name: 'Ruby 2.7.2-Rails 6.1'
194
+ ruby_version: '2.7.2'
195
+ rails_version: '6.1'
196
+ - release:
197
+ context:
198
+ - rubygems.org
199
+ requires:
200
+ - 'Ruby 2.5.8-Rails 5.0'
201
+ - 'Ruby 2.6.6-Rails 5.0'
202
+ - 'Ruby 2.7.2-Rails 5.0'
203
+ - 'Ruby 2.5.8-Rails 5.1'
204
+ - 'Ruby 2.6.6-Rails 5.1'
205
+ - 'Ruby 2.7.2-Rails 5.1'
206
+ - 'Ruby 2.5.8-Rails 5.2'
207
+ - 'Ruby 2.6.6-Rails 5.2'
208
+ - 'Ruby 2.7.2-Rails 5.2'
209
+ - 'Ruby 2.5.8-Rails 6.0'
210
+ - 'Ruby 2.6.6-Rails 6.0'
211
+ - 'Ruby 2.7.2-Rails 6.0'
212
+ - 'Ruby 2.5.8-Rails 6.1'
213
+ - 'Ruby 2.6.6-Rails 6.1'
214
+ - 'Ruby 2.7.2-Rails 6.1'
215
+ filters:
216
+ branches:
217
+ only: master
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
  /spec/internal/log/
10
10
  /tmp/
11
11
  *.sqlite3
12
+ .rspec_status
13
+ gemfiles/*.gemfile.lock
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --format documentation
2
2
  --color
3
+ --require spec_helper
data/Gemfile CHANGED
@@ -1,16 +1,8 @@
1
1
  source 'https://rubygems.org'
2
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
2
3
 
3
4
  # Specify your gem's dependencies in simple_group.gemspec
4
5
  gemspec
5
6
 
6
- rails_version = ENV['RAILS_VERSION'] || 'default'
7
-
8
- rails = case rails_version
9
- when 'master'
10
- { :github => 'rails/rails' }
11
- when 'default'
12
- '~> 4.0.0'
13
- else
14
- "~> #{rails_version}"
15
- end
16
- gem 'rails', rails
7
+ gem 'rails'
8
+ gem 'sqlite3'
data/README.md CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  simple_group gem is able to add group function to ActiveRecord.
4
4
 
5
- [![Build Status](https://travis-ci.org/patorash/simple_group.svg?branch=master)](https://travis-ci.org/patorash/simple_group)
6
- [![Dependency Status](https://gemnasium.com/patorash/simple_group.svg)](https://gemnasium.com/patorash/simple_group)
5
+ [![CircleCI](https://circleci.com/gh/patorash/acts_as_footprintable.svg?style=svg)](https://circleci.com/gh/patorash/acts_as_footprintable)
7
6
  [![Code Climate](https://codeclimate.com/github/patorash/simple_group/badges/gpa.svg)](https://codeclimate.com/github/patorash/simple_group)
8
7
  [![Test Coverage](https://codeclimate.com/github/patorash/simple_group/badges/coverage.svg)](https://codeclimate.com/github/patorash/simple_group)
9
8
 
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
2
3
 
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/config.ru ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+
6
+ Bundler.require :default, :development
7
+
8
+ Combustion.initialize! :all
9
+ run Combustion::Application
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.0.0'
4
+ gem 'sqlite3', '~> 1.3.0'
5
+
6
+ gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.1.0'
4
+ gem 'sqlite3', '~> 1.3.0'
5
+
6
+ gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.2.0'
4
+ gem 'sqlite3', '~> 1.4'
5
+
6
+ gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 6.0.0'
4
+ gem 'sqlite3', '~> 1.4'
5
+
6
+ gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 6.1.0'
4
+ gem 'sqlite3', '~> 1.4'
5
+
6
+ gemspec path: '../'
@@ -24,8 +24,20 @@ module SimpleGroup
24
24
 
25
25
  def create_migration_file
26
26
  if self.class.orm_has_migration?
27
- migration_template 'migration.rb', 'db/migrate/simple_group_migration.rb'
27
+ migration_template 'migration.rb',
28
+ 'db/migrate/simple_group_migration.rb',
29
+ migration_version: migration_version
28
30
  end
29
31
  end
32
+
33
+ def migration_version
34
+ if over_rails5?
35
+ "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
36
+ end
37
+ end
38
+
39
+ def over_rails5?
40
+ Rails::VERSION::MAJOR >= 5
41
+ end
30
42
  end
31
43
  end
@@ -1,9 +1,9 @@
1
- class SimpleGroupMigration < ActiveRecord::Migration
1
+ class SimpleGroupMigration < ActiveRecord::Migration<%= migration_version %>
2
2
  def self.up
3
3
  create_table :simple_group_combinations do |t|
4
4
  t.references :group_item, polymorphic: true
5
5
  t.references :group, polymorphic: true
6
- t.timestamp
6
+ t.timestamps
7
7
  end
8
8
 
9
9
  if ActiveRecord::VERSION::MAJOR < 4
@@ -11,11 +11,11 @@ module SimpleGroup
11
11
  belongs_to :group, polymorphic: true
12
12
  belongs_to :group_item, polymorphic: true
13
13
 
14
- scope :for_type, lambda { |klass| where(group_item_type: klass) }
15
- scope :by_type, lambda { |klass| where(group_type: klass) }
14
+ scope :for_type, lambda { |klass| where(group_item_type: klass.is_a?(Class) ? klass.name : klass) }
15
+ scope :by_type, lambda { |klass| where(group_type: klass.is_a?(Class) ? klass.name : klass) }
16
16
 
17
- validates :group_item_id, presence: true
18
- validates :group_id, presence: true
17
+ validates :group_item, presence: true
18
+ validates :group, presence: true
19
19
  validates_uniqueness_of :group_id, scope: [:group_type, :group_item_id, :group_item_type]
20
20
  end
21
21
 
@@ -2,8 +2,7 @@ module SimpleGroup
2
2
  module Group
3
3
  def self.included(base)
4
4
  base.class_eval do
5
- belongs_to :group, polymorphic: true
6
- has_many :combinations, class_name: 'SimpleGroup::Combination', as: :group, dependent: :destroy do
5
+ has_many :combinations, class_name: 'SimpleGroup::Combination', as: :group, dependent: :destroy, inverse_of: :group do
7
6
  def group_items
8
7
  includes(:group_item).map(&:group_item)
9
8
  end
@@ -28,9 +27,9 @@ module SimpleGroup
28
27
  def remove(model)
29
28
  raise_error unless model.class.groupable?
30
29
  group = SimpleGroup::Combination.where(
31
- group_type: self.class,
30
+ group_type: self.class.name,
32
31
  group_id: self,
33
- group_item_type: model.class,
32
+ group_item_type: model.class.name,
34
33
  group_item_id: model
35
34
  ).first
36
35
  if group.present?
@@ -3,7 +3,6 @@ module SimpleGroup
3
3
 
4
4
  def self.included(base)
5
5
  base.class_eval do
6
- belongs_to :group_item, polymorphic: true
7
6
  has_many :combinations, :class_name => 'SimpleGroup::Combination', :as => :group_item, :dependent => :destroy do
8
7
  def groups
9
8
  includes(:group).map(&:group)
@@ -1,3 +1,3 @@
1
1
  module SimpleGroup
2
- VERSION = "0.2.1"
2
+ VERSION = "0.5.0"
3
3
  end
data/simple_group.gemspec CHANGED
@@ -17,11 +17,12 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_development_dependency "bundler", ">= 1.7.6"
21
- spec.add_development_dependency "rake", "~> 10.0"
20
+ spec.add_development_dependency 'bundler', '~> 2.1'
21
+ spec.add_development_dependency 'rake', '>= 12.3.3'
22
22
  spec.add_development_dependency "pry"
23
23
  spec.add_development_dependency "rspec", ">= 3.0.0"
24
24
  spec.add_development_dependency "sqlite3"
25
- spec.add_development_dependency "database_rewinder", "~> 0.5.1"
26
- spec.add_development_dependency 'combustion', '~> 0.5.3'
25
+ spec.add_development_dependency 'combustion', '~> 1.3'
26
+ spec.add_development_dependency 'database_cleaner', '~> 2.0'
27
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
27
28
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_group
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toyoaki Oko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2021-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.7.6
19
+ version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.7.6
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.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: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -81,33 +81,47 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: database_rewinder
84
+ name: combustion
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.5.1
89
+ version: '1.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.5.1
96
+ version: '1.3'
97
97
  - !ruby/object:Gem::Dependency
98
- name: combustion
98
+ name: database_cleaner
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec_junit_formatter
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: 0.5.3
117
+ version: 0.4.1
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: 0.5.3
124
+ version: 0.4.1
111
125
  description: simple_group is able to add group function to ActiveRecord.
112
126
  email:
113
127
  - chariderpato@gmail.com
@@ -115,15 +129,21 @@ executables: []
115
129
  extensions: []
116
130
  extra_rdoc_files: []
117
131
  files:
132
+ - ".circleci/config.yml"
118
133
  - ".gitignore"
119
134
  - ".rspec"
120
- - ".travis.yml"
121
135
  - Gemfile
122
136
  - LICENSE.txt
123
137
  - README.md
124
138
  - Rakefile
125
139
  - bin/console
126
140
  - bin/setup
141
+ - config.ru
142
+ - gemfiles/rails_5.0.gemfile
143
+ - gemfiles/rails_5.1.gemfile
144
+ - gemfiles/rails_5.2.gemfile
145
+ - gemfiles/rails_6.0.gemfile
146
+ - gemfiles/rails_6.1.gemfile
127
147
  - lib/generators/simple_group/migration/migration_generator.rb
128
148
  - lib/generators/simple_group/migration/templates/active_record/migration.rb
129
149
  - lib/simple_group.rb
@@ -153,8 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
173
  - !ruby/object:Gem::Version
154
174
  version: '0'
155
175
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.4.6
176
+ rubygems_version: 3.1.4
158
177
  signing_key:
159
178
  specification_version: 4
160
179
  summary: simple_group is able to add group function to ActiveRecord.
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.5
4
- - 2.2.0
5
- - 2.2.1
6
- env:
7
- - RAILS_VERSION=4.2.1
8
- - RAILS_VERSION=4.2.0
9
- - RAILS_VERSION=4.1
10
- - RAILS_VERSION=4.0
11
- script: bundle exec rspec