factory_bot_instrumentation 0.2.0 → 0.3.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
  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