kadim 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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