rails_console_toolkit 0.2.0 → 0.3.0

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: 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