eitil 0.3.4 → 0.3.5

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: f35510328554ac09ddfb48b697e0b7dd2b6a801b20954505b14849c2f1a3227a
4
- data.tar.gz: 9d8edf28b695b3835d4dacaf46bd1dbe7dc1e9ebcd9ae2bce403b9a12ffe7529
3
+ metadata.gz: 56e99cc29a813ae79db47620342f21059e0ee2fc6ac57d3d1555472908d671e1
4
+ data.tar.gz: 9391db6351b7f43230b64c7c7fa5a78fb5f7b95055ab2103ed68e28dd6673dc7
5
5
  SHA512:
6
- metadata.gz: 2cec6226350e58696fb8d814d9cd7e57b768a39c5bc392d6686792d80ecc2dab328a64c131ce32bf05d49627f30b10606544e3c1a6170c4e6941054649dd931d
7
- data.tar.gz: cbb2ad53d5727feffad6007bde83d34edaf4336f47330ad95f096348f423fc0d3fca02375a3d34c38f420f9df99d30ec0f713b2436b62488879594a5e4e9bee3
6
+ metadata.gz: 45540a3818ba26d7197ce4ed9cd2e7ab1061d7889445566f583a1fa5f1b218a324ae484f968c4291017bb12ea30c7e69cea3765135d2de2a703eee8ba02b8f9f
7
+ data.tar.gz: bec07d5c24641ce1e24dc31c450d01b98ca2a28b13ea799f8b285e59f701e946ae362e69e2e9c3ecc99dc805ce8bc6e48325acd5f8f19c04ccd2fd894b1cb786
data/README.md CHANGED
@@ -177,7 +177,7 @@ decorate(dec_item, dec_method: nil, dec_class: nil, **dec_kwargs)
177
177
  # initializers/eitil.rb
178
178
 
179
179
  Eitil.set_config do |config|
180
- config.get_controller_ivars_method = 'API::VerlofVerzoekenController.controller_ivars' # => [:user, :env]
180
+ config.get_controller_ivars_method = 'API::BaseController.controller_ivars' # => [:user, :env]
181
181
  end
182
182
  ```
183
183
 
@@ -304,3 +304,31 @@ Scopes are generated through the columns of your model's database table. Which s
304
304
  Your models should inherit the module Eitil::DefaultScopes through inclusion in a superclass, such as ApplicationRecord.
305
305
 
306
306
 
307
+
308
+ # Modules
309
+
310
+
311
+
312
+ ## Eitil::Dir
313
+
314
+ ### Info
315
+
316
+ The Eitil::Dir module provides methods which help you introspect your Rails project.
317
+
318
+ ### Methods
319
+
320
+ ```ruby
321
+ Eitil::Dir.contents(directory='app')
322
+ # returns all files and subdirectories of a given directory
323
+
324
+ Eitil::Dir.files(directory='app')
325
+ # returns all files of a given directory
326
+
327
+ Eitil::Dir.subdirs(directory='app')
328
+ # returns all subdirectories of a given directory
329
+
330
+ Eitil::Dir.lines(directory='app')
331
+ # returns the total amount of lines of all files of a given directory
332
+ ```
333
+
334
+
@@ -0,0 +1,21 @@
1
+ module Eitil::Dir
2
+ class << self
3
+
4
+ def contents(directory='app')
5
+ Dir[File.join(directory, '**', '*')]
6
+ end
7
+
8
+ def files(directory='app')
9
+ contents(directory).select { |file| File.file?(file) }
10
+ end
11
+
12
+ def subdirs(directory='app')
13
+ contents(directory).select { |file| File.directory?(file) }
14
+ end
15
+
16
+ def lines(directory='app')
17
+ files(directory).map { |file| File.open(file).count }.sum
18
+ end
19
+
20
+ end
21
+ end
@@ -8,7 +8,7 @@ class Hash
8
8
  return answer if answer
9
9
  end
10
10
 
11
- false
11
+ nil
12
12
  end
13
13
 
14
14
  end
@@ -1,10 +1,16 @@
1
1
  Kernel.module_eval do
2
2
 
3
+ # BEWARE: _self is currently not accepted in perform_later jobs due to serialization errors
4
+
5
+ # The cases of 'id' and '_self' both handle instances, with the difference
6
+ # being that 'id' works for objects that have a database record, while '_self'
7
+ # works for non database supported instanes, such as an Exporter instance.
8
+
3
9
  def new_job(_method)
4
10
 
5
11
  if instance_methods(false).include? _method
6
- define_method "#{_method}_job" do
7
- Eitil::SingleMethodJob.perform_later(_class: self.class.to_s, _method: _method.to_s, id: id)
12
+ define_method "#{_method}_job" do |_self = nil|
13
+ Eitil::SingleMethodJob.perform_later(_class: self.class.to_s, _method: _method.to_s, id: safe_send(:id), _self: self.to_json)
8
14
  end
9
15
 
10
16
  elsif singleton_methods(false).include? _method
@@ -2,8 +2,24 @@ module Eitil
2
2
  class SingleMethodJob < ApplicationJob
3
3
  queue_as :default
4
4
 
5
- def perform(_class:, _method:, id: nil)
6
- object = id ? _class.constantize.find(id) : _class.constantize
5
+ # BEWARE: _self is currently not accepted in perform_later jobs due to serialization errors
6
+
7
+ # The cases of 'id' and '_self' both handle instances, with the difference
8
+ # being that 'id' works for objects that have a database record, while '_self'
9
+ # works for non database supported instanes, such as an Exporter instance.
10
+
11
+ def perform(_class:, _method:, id: nil, _self: nil)
12
+ binding.pry
13
+
14
+ object =
15
+ if id
16
+ _class.constantize.find(id)
17
+ elsif _self
18
+ _self
19
+ else
20
+ _class.constantize
21
+ end
22
+
7
23
  object.send _method
8
24
  end
9
25
  end
@@ -48,7 +48,7 @@ module Eitil
48
48
 
49
49
  def create_eitil_boolean_scopes
50
50
  columns_of_type(:boolean)&.map do |column, object|
51
- eitil_scope :"#{column}_true", -> { where(column => true) }
51
+ eitil_scope :"#{column}_true", -> { where(column => true) }
52
52
  eitil_scope :"#{column}_false", -> { where(column => [false, nil]) }
53
53
  end
54
54
  end
data/lib/eitil/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eitil
2
- VERSION = '0.3.4'
2
+ VERSION = '0.3.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eitil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jurriaan Schrofer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-21 00:00:00.000000000 Z
11
+ date: 2021-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,7 @@ files:
52
52
  - app/jobs/eitil/application_job.rb
53
53
  - app/mailers/eitil/application_mailer.rb
54
54
  - app/models/eitil/application_record.rb
55
+ - config/initializers/modules/dir.rb
55
56
  - config/initializers/monkeys/application_controller.rb
56
57
  - config/initializers/monkeys/application_record.rb
57
58
  - config/initializers/monkeys/date_time.rb