rolemodel_sower 0.0.2 → 0.0.3

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: 9c9302216ddd04b2b1f6f622b07a95fc5bbebf790af4f8193ab220319c22482b
4
- data.tar.gz: 0caae91d305535041c4d44ca60a2ef0d160906305f3e6cd5d630c109c8d4d1cf
3
+ metadata.gz: afa9c43c72ba7bef3fda89928296f16c18fedda9829b56b49aea9da7c8446e81
4
+ data.tar.gz: d2d0b1075dff10a91b0a27ca9409eeb58ae9fc7c32b59218ff8f0e83323babe0
5
5
  SHA512:
6
- metadata.gz: d4b6b1bc630736cd6fd22fd93052e957ee45aa3ff06a414d3334c4cbda86512255ef9ee5e36cdba9ce03b16881dc3ab7ddb86b9caba09f20a7f3581f2475f14d
7
- data.tar.gz: 35ac92d81fef1e528301f7852d37e8dc1760d041719b77da8073aab04576d33bbf4de3dbf4ea8d5dfc03bf1e4629b12b248819df4917821d2384ec9e3056f0b8
6
+ metadata.gz: 52cf43b5235e4bb8a61ccc31fc7b18e41b4b1e71dd9c43582021a295ea52a5cb5ebd7bb5f1828c2345fa53132d38da362ef0672e0015c2bfa7454c57e2fc2d35
7
+ data.tar.gz: 4ae6ce8841263815b315ff3b57550f9a95af7e878c7011de407662daa9c41c8432c7de004c11399709f5b2befe71b3038340db68c30b457371e2d6b2c14bfcfa
data/README.md CHANGED
@@ -68,9 +68,9 @@ module RolemodelSower
68
68
  class User < RolemodelSower::Base
69
69
  def load!
70
70
  ::User.find_or_create_by!(
71
- first_name: @data[:first_name],
72
- last_name: @data[:last_name],
73
- email: @data[:last_name]
71
+ first_name: data[:first_name],
72
+ last_name: data[:last_name],
73
+ email: data[:last_name]
74
74
  )
75
75
  end
76
76
  end
@@ -83,7 +83,13 @@ Seeds can be generated by calling the `seed!` method on `RolemodelSower`.
83
83
 
84
84
  It takes one or more symbol arguments that correspond to sets of seed data and runs them in the order passed.
85
85
 
86
- `RolemodelSower.seed!(:users, :organizations, :facilities)`
86
+ ```ruby
87
+ RolemodelSower.seed!(
88
+ :users,
89
+ :organizations,
90
+ :facilities
91
+ )
92
+ ```
87
93
 
88
94
  If you want to add conditions to each run, you can separate out each call to seed.
89
95
 
@@ -103,6 +109,22 @@ RolemodelSower.setup do |config|
103
109
  end
104
110
  ```
105
111
 
112
+ You can also specify the adapter when calling `seed!`. This will override the default adapter or what is set in the initializer.
113
+
114
+ ```ruby
115
+ RolemodelSower.seed!(
116
+ { users: :csv },
117
+ :organizations,
118
+ { facilities: :json }
119
+ )
120
+ ```
121
+
122
+ ```ruby
123
+ RolemodelSower.seed!({ users: :csv }) if my_condition
124
+ RolemodelSower.seed!(:organizations) if other_condition
125
+ RolemodelSower.seed!({ facilities: :json }) if another_condition
126
+ ```
127
+
106
128
  ## Development
107
129
 
108
130
  To build the gem locally, run: `gem build rolemodel_sower.gemspec`
@@ -3,7 +3,7 @@
3
3
  module RolemodelSower
4
4
  class Organization < RolemodelSower::Base
5
5
  def load!
6
- ::Organization.find_or_create_by! name: @data[:name]
6
+ ::Organization.find_or_create_by! name: data[:name]
7
7
  end
8
8
  end
9
9
  end
@@ -4,12 +4,12 @@ module RolemodelSower
4
4
  class User < RolemodelSower::Base
5
5
  def load!
6
6
  user = ::User.create_with(
7
- first_name: @data[:first_name],
8
- last_name: @data[:last_name],
9
- password: @data[:password],
10
- password_confirmation: @data[:password],
7
+ first_name: data[:first_name],
8
+ last_name: data[:last_name],
9
+ password: data[:password],
10
+ password_confirmation: data[:password],
11
11
  organization: ::Organization.first,
12
- ).find_or_create_by! email: @data[:email]
12
+ ).find_or_create_by! email: data[:email]
13
13
 
14
14
  # Any models can be affected here.
15
15
  ::Profile.find_or_create_by!(user: user)
@@ -2,6 +2,8 @@
2
2
 
3
3
  module RolemodelSower
4
4
  class Base
5
+ attr_reader :data
6
+
5
7
  def initialize(data)
6
8
  @data = data
7
9
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RolemodelSower
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  end
@@ -25,10 +25,15 @@ module RolemodelSower
25
25
 
26
26
  def self.seed!(*seed_names)
27
27
  seed_names.each do |seed_name|
28
+ current_seed_name = seed_name.try(:keys)&.first || seed_name
29
+ current_adapter = seed_name.try(:values)&.first || adapter
30
+ pluralized_name = current_seed_name.to_s.classify
31
+
28
32
  logger = Logger.new($stdout)
29
- pluralized_name = seed_name.to_s.classify
30
33
  logger.info "Seeding #{pluralized_name}..." if Rails.env.development?
31
- "RolemodelSower::Adapters::#{adapter.to_s.upcase}".constantize.all(seed_name).each(&:load!)
34
+
35
+ "RolemodelSower::Adapters::#{current_adapter.to_s.upcase}".constantize.all(current_seed_name).each(&:load!)
36
+
32
37
  logger.info "Seeding #{pluralized_name}... done" if Rails.env.development?
33
38
  end
34
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rolemodel_sower
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-30 00:00:00.000000000 Z
11
+ date: 2023-08-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby gem to simplify Seed data creation for Rails applications.
14
14
  email: consult@rolemodelsoftware.com