factory_bot_instrumentation 0.2.0 → 0.3.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
  SHA256:
3
- metadata.gz: 32b62f67039dbe0cd562eaf5ea41336866bce49cac7153b0abb86858a6ecf5e0
4
- data.tar.gz: 3efc8629cced06d8d68da53aaaaa6ba1280d5b25be43b71b9d930fbd9f1424e5
3
+ metadata.gz: fdad0623324b5fb131122851c3cfb7862cc7c69e5ed6d545b49cd4ffb953ff14
4
+ data.tar.gz: 54f7c93ae468fa246e118bdc47cefdf4a4db0ac31b4e1754bc99dd72364997bc
5
5
  SHA512:
6
- metadata.gz: 8b8deb694372a595010a82a314234e4f0b5a2c5342c6ebb5568a497fe677530d54d2d4ea6443ef5f2154cc1fc601d1367e755035cb06c4fb26c39d06947b4ae1
7
- data.tar.gz: 47b5760d942fcc51e5fc5d6df7c3fc9dfe8ed1a0b0ce593224aba027e925c7124239e0dbf28a222d143102dd6a16e593fa84c51446cd8c75b5b1cf4e50dc5d35
6
+ metadata.gz: c05415a4d45673ccf2857b1747896c8581c5c726d54ebb0d7dc59788bcbbef4791762b2099daa7e9b09b45e523cc709260e0884b52aca6d62b5c3a7375056fc2
7
+ data.tar.gz: 36907744056f4c477ff9b8fdc43f69a2560d757d70f9b43d3fcef7bf3493a2fef11084b069d84662ce8633c5c12c45d70cc12d177757f43989121be60b1deb32
@@ -8,7 +8,7 @@ Documentation:
8
8
 
9
9
  AllCops:
10
10
  DisplayCopNames: true
11
- TargetRubyVersion: 2.3
11
+ TargetRubyVersion: 2.4
12
12
  Exclude:
13
13
  - db/schema.rb
14
14
  - bin/**/*
@@ -9,7 +9,6 @@ rvm:
9
9
  - 2.6
10
10
  - 2.5
11
11
  - 2.4
12
- - 2.3
13
12
 
14
13
  gemfile:
15
14
  - gemfiles/rails_4.gemfile
data/Appraisals CHANGED
@@ -1,5 +1,6 @@
1
1
  appraise 'rails-4' do
2
2
  gem 'rails', '~> 4.2.11'
3
+ gem 'rails-api', '~> 0.4.1'
3
4
  end
4
5
 
5
6
  appraise 'rails-5.0' do
@@ -1,3 +1,9 @@
1
+ ### 0.3.0
2
+
3
+ * Removed CI support for Ruby 2.3 (it never worked before)
4
+ * Fixed the overwrite params bug on Rails 4.2
5
+ * Added a test suite for the engine
6
+
1
7
  ### 0.2.0
2
8
 
3
9
  * Removed the Gemfile locks and added the to the ignore list
data/README.md CHANGED
@@ -48,6 +48,14 @@ Add this line to your application's Gemfile:
48
48
  gem 'factory_bot_instrumentation'
49
49
  ```
50
50
 
51
+ **Heads up!** In case you use Rails 4.2, you need to add the
52
+ [rails-api](https://github.com/rails-api/rails-api) gem as well, because this
53
+ feature was first introduced with Rails 5.0.
54
+
55
+ ```ruby
56
+ gem 'rails-api'
57
+ ```
58
+
51
59
  And then execute:
52
60
 
53
61
  ```bash
@@ -107,20 +115,20 @@ FactoryBot.define do
107
115
 
108
116
  trait :with_friend do
109
117
  after(:create) do |user, elevator|
110
- FactoryBot.create(:lead,
111
- *elevator.lead_traits.map(&:to_sym),
112
- friends: [user],
113
- **elevator.friend_overwrites)
118
+ FactoryBot.create(:user,
119
+ *elevator.friend_traits.map(&:to_sym),
120
+ friends: [user],
121
+ **elevator.friend_overwrites)
114
122
  end
115
123
  end
116
124
 
117
125
  trait :with_friends do
118
126
  after(:create) do |user, elevator|
119
127
  FactoryBot.create_list(:user,
120
- elevator.leads_amount,
121
- *elevator.lead_traits.map(&:to_sym),
122
- friends: [user],
123
- **elevator.friend_overwrites)
128
+ elevator.friends_amount,
129
+ *elevator.friend_traits.map(&:to_sym),
130
+ friends: [user],
131
+ **elevator.friend_overwrites)
124
132
  end
125
133
  end
126
134
  end
data/Rakefile CHANGED
@@ -1,8 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # Configure Rails Environment
4
+ ENV['RAILS_ENV'] = 'test'
5
+ ENV['DISABLE_DATABASE_ENVIRONMENT_CHECK'] = '1'
6
+
7
+ require 'bundler/setup'
3
8
  require 'bundler/gem_tasks'
4
9
  require 'rspec/core/rake_task'
5
10
 
6
- RSpec::Core::RakeTask.new(:spec)
11
+ APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
12
+ load 'rails/tasks/engine.rake'
13
+
14
+ Bundler::GemHelper.install_tasks
15
+
16
+ Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
17
+
18
+ require 'rspec/core'
19
+ require 'rspec/core/rake_task'
20
+
21
+ desc 'Run all specs in spec directory (excluding plugin specs)'
22
+ RSpec::Core::RakeTask.new(spec: [
23
+ 'db:drop', 'db:create', 'db:migrate', 'db:setup'
24
+ ])
7
25
 
8
26
  task default: :spec
@@ -56,7 +56,13 @@ module FactoryBot::Instrumentation
56
56
  # @return [Array<Mixed>] the FactoryBot options
57
57
  def factory_params
58
58
  data = params.permit(:factory, traits: [])
59
- overwrite = params.to_unsafe_h.fetch(:overwrite, {}).deep_symbolize_keys
59
+
60
+ if Rails::VERSION::MAJOR >= 5
61
+ overwrite = params.to_unsafe_h.fetch(:overwrite, {})
62
+ .deep_symbolize_keys
63
+ else
64
+ overwrite = params.fetch('overwrite', {}).deep_symbolize_keys
65
+ end
60
66
 
61
67
  [
62
68
  data.fetch(:factory).to_sym,
@@ -1,7 +1,7 @@
1
1
  version: "3"
2
2
  services:
3
3
  test:
4
- image: ruby:2.3
4
+ image: ruby:2.4
5
5
  network_mode: bridge
6
6
  working_dir: /app
7
7
  volumes:
@@ -25,9 +25,9 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency 'factory_bot'
26
26
 
27
27
  spec.add_development_dependency 'bundler', '>= 1.16', '< 3'
28
- spec.add_development_dependency 'rspec', '~> 3.0'
28
+ spec.add_development_dependency 'rspec-rails', '~> 3.8'
29
29
  spec.add_development_dependency 'simplecov', '~> 0.15'
30
30
  spec.add_development_dependency 'timecop', '~> 0.9.1'
31
- spec.add_development_dependency 'sqlite3'
31
+ spec.add_development_dependency 'sqlite3', '~> 1.3.6'
32
32
  spec.add_development_dependency 'appraisal'
33
33
  end
@@ -3,5 +3,6 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "rails", "~> 4.2.11"
6
+ gem "rails-api", "~> 0.4.1"
6
7
 
7
8
  gemspec path: "../"
@@ -2,6 +2,6 @@
2
2
 
3
3
  module FactoryBot
4
4
  module Instrumentation
5
- VERSION = '0.2.0'.freeze
5
+ VERSION = '0.3.0'.freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_bot_instrumentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-22 00:00:00.000000000 Z
11
+ date: 2019-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -59,19 +59,19 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: '3'
61
61
  - !ruby/object:Gem::Dependency
62
- name: rspec
62
+ name: rspec-rails
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '3.0'
67
+ version: '3.8'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '3.0'
74
+ version: '3.8'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: simplecov
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -104,16 +104,16 @@ dependencies:
104
104
  name: sqlite3
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
107
+ - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0'
109
+ version: 1.3.6
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">="
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0'
116
+ version: 1.3.6
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: appraisal
119
119
  requirement: !ruby/object:Gem::Requirement
@@ -203,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
203
  - !ruby/object:Gem::Version
204
204
  version: '0'
205
205
  requirements: []
206
- rubygems_version: 3.0.3
206
+ rubygems_version: 3.0.4
207
207
  signing_key:
208
208
  specification_version: 4
209
209
  summary: Allow your testers to generate test data on demand