rails_console_toolkit 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 223e8d9bdedf22d2c25b6c515df5af7fe8f33980318bd87888a92e21b5d54cb7
4
- data.tar.gz: c27d78e827bdb5528a7a05dd9a8c452ea63952655dc85fd20fa0bb0a340f21d3
3
+ metadata.gz: 1cd8126fdabd86bec0f64ff953337ae9a4a1435114ea35018406f322b6d7f8c6
4
+ data.tar.gz: 3a0984cfe0561fc91ba564ca94d0d97e97e8246628a55da85e408e8e32f24699
5
5
  SHA512:
6
- metadata.gz: 040261a34dd02e4685b5b3df338d9b3a9d728192696a2923a9195ae1766643794eaf67b5ec42629807ddf53cef1b134b85e3a8c250b49584cf4983e412218a81
7
- data.tar.gz: 84546672daa15fb371d058785cfb12bcd22feab96990d2608c379fe94ee6d1c08bfb70a9379e179b3d61a04c226992aad2ae21b40b0a0462427ef5187b2100d7
6
+ metadata.gz: d1261ef9b37861766bee33d0d06846042b6068aac61eec05bd9f4c606f42b98a46f8ef0ba6d6969c6a672724e91bed18c427a60263c30cf82155a0c354a457ae
7
+ data.tar.gz: 43668cca3112f56ddf0aa255f2d75c4d607c75d4a348a0ca49426a441f6c0c6123d9423bf8ca1e87b9bfc7435cfee137ab1b02c5c150e67290546b9d4854fb8d
data/README.md CHANGED
@@ -14,14 +14,15 @@ Add this line to your application's Gemfile:
14
14
  gem 'rails_console_toolkit'
15
15
  ```
16
16
 
17
- And then execute:
17
+ And then configure it within an initializer:
18
18
 
19
- $ bundle
20
-
21
- Or install it yourself as:
22
-
23
- $ gem install rails_console_toolkit
19
+ ```ruby
20
+ # config/initializers/console.rb
24
21
 
22
+ RailsConsoleToolkit.configure do |config|
23
+ # helper definitions go here...
24
+ end
25
+ ```
25
26
 
26
27
  ## Helper packs
27
28
 
@@ -30,7 +31,9 @@ Or install it yourself as:
30
31
  ```ruby
31
32
  # config/initializers/console.rb
32
33
 
33
- require 'rails_console_toolkit/aliases'
34
+ RailsConsoleToolkit.configure do |config|
35
+ config.use_pack :aliases
36
+ end
34
37
  ```
35
38
 
36
39
  ```
@@ -44,7 +47,9 @@ require 'rails_console_toolkit/aliases'
44
47
  ```ruby
45
48
  # config/initializers/console.rb
46
49
 
47
- require 'rails_console_toolkit/utils'
50
+ RailsConsoleToolkit.configure do |config|
51
+ config.use_pack :utils
52
+ end
48
53
  ```
49
54
 
50
55
  ```
@@ -61,7 +66,9 @@ foo (3000.6ms)
61
66
  ```ruby
62
67
  # config/initializers/console.rb
63
68
 
64
- require 'rails_console_toolkit/solidus'
69
+ RailsConsoleToolkit.configure do |config|
70
+ config.use_pack :solidus
71
+ end
65
72
  ```
66
73
 
67
74
  ```
@@ -74,24 +81,17 @@ require 'rails_console_toolkit/solidus'
74
81
  > country(...) # => will look for Spree::Country records by :id, :iso, :iso3, :iso_name, :name
75
82
  ```
76
83
 
77
- ## Usage
78
-
79
- ```ruby
80
- # config/initializers/console.rb
81
-
82
- # helper definitions go here...
83
-
84
- RailsConsoleToolkit.install!
85
- ```
86
-
84
+ ## Custom Helpers
87
85
 
88
86
  ### Generic helpers
89
87
 
90
88
  ```ruby
91
89
  # config/initializers/console.rb
92
90
 
93
- RailsConsoleToolkit.helper :foo do
94
- :bar
91
+ RailsConsoleToolkit.configure do |config|
92
+ config.helper :foo do
93
+ :bar
94
+ end
95
95
  end
96
96
  ```
97
97
 
@@ -106,7 +106,9 @@ end
106
106
  ```ruby
107
107
  # config/initializers/console.rb
108
108
 
109
- RailsConsoleToolkit.alias :r, :reload!
109
+ RailsConsoleToolkit.configure do |config|
110
+ config.alias :r, :reload!
111
+ end
110
112
  ```
111
113
 
112
114
  ```
@@ -120,7 +122,9 @@ RailsConsoleToolkit.alias :r, :reload!
120
122
  ```ruby
121
123
  # config/initializers/console.rb
122
124
 
123
- RailsConsoleToolkit.model_helper 'Spree::Product', as: :product, by: %i[:name, :slug]
125
+ RailsConsoleToolkit.configure do |config|
126
+ config.model_helper 'Spree::Product', as: :product, by: %i[:name, :slug]
127
+ end
124
128
  ```
125
129
 
126
130
 
@@ -138,10 +142,11 @@ RailsConsoleToolkit.model_helper 'Spree::Product', as: :product, by: %i[:name, :
138
142
  ```ruby
139
143
  # config/initializers/console.rb
140
144
 
141
- require 'rails_console_toolkit/aliases' # Will define an alias :x for "exit"
142
-
143
- RailsConsoleToolkit.remove_helper :x
144
- RailsConsoleToolkit.install!
145
+ RailsConsoleToolkit.configure do |config|
146
+ # Will define an alias :x for "exit"
147
+ config.use_pack :aliases
148
+ config.remove_helper :x
149
+ end
145
150
  ```
146
151
 
147
152
  ```
@@ -1,2 +1,2 @@
1
1
  RailsConsoleToolkit.alias_helper :x, :exit
2
- RailsConsoleToolkit.alias_helper :r, :reload
2
+ RailsConsoleToolkit.alias_helper :r, :reload!
@@ -0,0 +1,56 @@
1
+ require "active_support/core_ext/string/inflections"
2
+
3
+ module RailsConsoleToolkit::Helpers
4
+ def use_pack pack_name
5
+ unless %w[aliases solidus utils].include? pack_name.to_s
6
+ raise Error, "unknown pack name: #{pack_name}"
7
+ end
8
+
9
+ require "rails_console_toolkit/#{pack_name}"
10
+ end
11
+
12
+ def install!(target_module = Rails::ConsoleMethods)
13
+ helper_methods.each do |name, block|
14
+ target_module.define_method(name, &block)
15
+ end
16
+ end
17
+
18
+ def helper(name, &block)
19
+ helper_methods[name.to_sym] = block
20
+ end
21
+
22
+ def model_helper(klass, as: nil, by: nil, cached: true)
23
+ klass = klass.constantize if klass.respond_to? :constantize
24
+ method_name = as || klass.name.gsub('::', '_').underscore
25
+ cache_key = method_name
26
+ attribute_names = by || []
27
+
28
+ record = nil # use the closure as a cache
29
+
30
+ helper method_name do |key = nil|
31
+ record = nil unless cached
32
+
33
+ if key
34
+ record = nil
35
+ record ||= klass.find(key) if Numeric === key
36
+ attribute_names.find { |name| record ||= klass.find_by(name => key) }
37
+ end
38
+
39
+ record
40
+ end
41
+ end
42
+
43
+ def alias_helper(new_name, old_name)
44
+ helper(new_name) { send(old_name) }
45
+ end
46
+
47
+ def remove_helper(name)
48
+ helper_methods.delete(name.to_sym)
49
+ end
50
+
51
+ private
52
+
53
+ def helper_methods
54
+ @helper_methods ||= {}
55
+ end
56
+ end
@@ -1,3 +1,3 @@
1
1
  module RailsConsoleToolkit
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,55 +1,19 @@
1
1
  require "rails_console_toolkit/version"
2
- require "active_support/core_ext/string/inflections"
3
2
 
4
3
  module RailsConsoleToolkit
5
- extend self
4
+ autoload :Helpers, "rails_console_toolkit/helpers"
6
5
 
7
6
  class Error < StandardError; end
8
7
 
9
- def install!(target_module = Rails::ConsoleMethods)
10
- require 'rails/console/app'
11
-
12
- helper_methods.each do |name, block|
13
- target_module.define_method(name, &block)
14
- end
15
- end
16
-
17
- def helper(name, &block)
18
- helper_methods[name.to_sym] = block
8
+ def self.setup
9
+ extend Helpers
19
10
  end
20
11
 
21
- def model_helper(klass, as: nil, by: nil, cached: true)
22
- klass = klass.constantize if klass.respond_to? :constantize
23
- method_name = as || klass.name.gsub('::', '_').underscore
24
- cache_key = method_name
25
- attribute_names = by || []
26
-
27
- record = nil # use the closure as a cache
28
-
29
- helper method_name do |key = nil|
30
- record = nil unless cached
31
-
32
- if key
33
- record = nil
34
- record ||= klass.find(key) if Numeric === key
35
- attribute_names.find { |name| record ||= klass.find_by(name => key) }
36
- end
37
-
38
- record
12
+ def self.configure(&block)
13
+ Rails.application.console do
14
+ setup
15
+ block.call(self)
16
+ install!
39
17
  end
40
18
  end
41
-
42
- def alias_helper(new_name, old_name)
43
- helper(new_name) { send(old_name) }
44
- end
45
-
46
- def remove_helper(name)
47
- helper_methods.delete(name.to_sym)
48
- end
49
-
50
- private
51
-
52
- def helper_methods
53
- @helper_methods ||= {}
54
- end
55
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_console_toolkit
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
  - Elia Schito
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-17 00:00:00.000000000 Z
11
+ date: 2019-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -85,6 +85,7 @@ files:
85
85
  - bin/setup
86
86
  - lib/rails_console_toolkit.rb
87
87
  - lib/rails_console_toolkit/aliases.rb
88
+ - lib/rails_console_toolkit/helpers.rb
88
89
  - lib/rails_console_toolkit/solidus.rb
89
90
  - lib/rails_console_toolkit/utils.rb
90
91
  - lib/rails_console_toolkit/version.rb