kadim 0.2.1 → 0.2.2

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/kadim.rb +24 -14
  4. data/lib/kadim/version.rb +1 -1
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f959d981c5d60f0c0c80e432a6f7a58a83292d26f1832b4ce258b8bda5a917df
4
- data.tar.gz: 27b80989c051e87fb519993d303f371d5a82a22d4addbaa22860510c324077fc
3
+ metadata.gz: bb10d2b3091f4e7bdc49e88058db5b838c97482b6d6ad58fb5c4a422c96a6fe3
4
+ data.tar.gz: e3004720b218b5096cab2d9e32cd494d4d1107675138a13083f1cef78c22b99e
5
5
  SHA512:
6
- metadata.gz: 44578c37c3eace77d20d647d455324a935770a9e4234e7683e5ba3b5f7baaa729f6b5d11f20636f8469c825ed4cb8e4a1868eeda52e42678e7b1057e025b6275
7
- data.tar.gz: 57d0e0b03de119a5945125cd33156d6e7cbc343f890ba166a9b4e1d9c280cce7cffc972140384bfa1db8997023d766d29875d9a0f196175db75e60f2d73fc937
6
+ metadata.gz: 74e7820f0b0c11f246fa9e836da1e80d32e3ab910c5ae3ca963895fe07ea83e6c5672eba885fa809ac8ac83a9800dc3ab450aad54a4088bb159b2e011890531c
7
+ data.tar.gz: e94ae1be0be89d4a255190ce010d0c6c99c203433d52bd967d70ca242cd6468b1d9e069f75fb0729348c29f85abc3dc80f8f42ff1f520462d9e8ce5e68a893a1
data/README.md CHANGED
@@ -33,8 +33,8 @@ this with the main kadim controller, to add safety rules, etc.
33
33
  You also provide two generators to make this task easier.
34
34
 
35
35
  ```bash
36
- rails g kadim: host
37
- rails g kadim: host: scaffold_controller ModelName
36
+ rails g kadim:host
37
+ rails g kadim:host:scaffold_controller ModelName
38
38
  ```
39
39
 
40
40
  The first one copies the basic kadim infrastructure to your application, ie the
data/lib/kadim.rb CHANGED
@@ -14,16 +14,17 @@ module Kadim
14
14
 
15
15
  def self.bootstrap_controllers
16
16
  cleanup
17
+ load_app_kadim_consts
17
18
  scaffold_controllers
18
19
  end
19
20
 
20
21
  def self.scaffold_attributes(model_klass)
21
22
  model_klass.columns
22
- .reject { |column| %w[id created_at updated_at].include?(column.name) }
23
- .sort_by(&:name)
24
- .map { |column| [column.name, column.type] }
25
- .to_h
26
- .map { |k, v| "#{k}:#{v}" }
23
+ .reject { |column| %w[id created_at updated_at].include?(column.name) }
24
+ .sort_by(&:name)
25
+ .map { |column| [column.name, column.type] }
26
+ .to_h
27
+ .map { |k, v| "#{k}:#{v}" }
27
28
  end
28
29
 
29
30
  class << self
@@ -38,16 +39,15 @@ module Kadim
38
39
  end
39
40
 
40
41
  def cleanup_kadim_consts
41
- controller_filenames.each do |controller_filename|
42
- next if File.exist?(Rails.root.join("app", "controllers", "kadim", "#{controller_filename}.rb"))
43
-
44
- controller_klass = controller_filename.camelize
45
- Kadim.send(:remove_const, controller_klass) if Kadim.const_defined?(controller_klass, false)
42
+ app_model_paths.each do |model_path|
43
+ controller_klass_name = "#{model_path.pluralize}_controller".camelize
44
+ Kadim.send(:remove_const, controller_klass_name) if Kadim.const_defined?(controller_klass_name, false)
46
45
  end
47
46
  end
48
47
 
49
- def controller_filenames
50
- app_model_paths.map { |model_name| "#{model_name.pluralize}_controller" }
48
+ def load_app_kadim_consts
49
+ Dir[Rails.root.join("app", "controllers", "kadim", "**", "*_controller.rb")].each { |path| load path }
50
+ Dir[Rails.root.join("app", "helpers", "kadim", "**", "*_helper.rb")].each { |path| load path }
51
51
  end
52
52
 
53
53
  def scaffold_controllers
@@ -56,7 +56,11 @@ module Kadim
56
56
 
57
57
  current_namespace = Rails::Generators.namespace
58
58
  Rails::Generators.namespace = Kadim
59
- app_model_paths.each { |model_name| scaffold_controller(model_name) }
59
+ app_model_paths.each do |model_name|
60
+ next if Kadim.const_defined?("#{model_name.pluralize}_controller".camelize, false)
61
+
62
+ scaffold_controller(model_name)
63
+ end
60
64
  load_kadim_controllers
61
65
  load_kadim_views
62
66
  ensure
@@ -78,7 +82,13 @@ module Kadim
78
82
  end
79
83
 
80
84
  def load_kadim_controllers
81
- Dir[Rails.root.join("tmp", "kadim", "app", "controllers", "**", "*_controller.rb")].each { |path| load path }
85
+ Dir[Rails.root.join("tmp", "kadim", "app", "controllers", "**", "*_controller.rb")].each do |path|
86
+ retries ||= 0
87
+ load path
88
+ rescue LoadError
89
+ retry if (retries += 1) < 3
90
+ raise "Ops, failed to load kadim controllers, please restart your application!"
91
+ end
82
92
  end
83
93
 
84
94
  def load_kadim_views
data/lib/kadim/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kadim
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kadim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kadu Diógenes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-30 00:00:00.000000000 Z
11
+ date: 2019-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activestorage-resumable
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 4.2.0
131
+ version: 4.3.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 4.2.0
138
+ version: 4.3.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rails-dom-testing
141
141
  requirement: !ruby/object:Gem::Requirement