rails_console_toolkit 0.1.0 → 0.5.1

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: c63ae0fa9d97e7519b9e84c9ccaec90f2be8f5cfef5e8b25729debfe5d0dd374
4
- data.tar.gz: 8de43d13ff473dee04f9130f9d22497412a3a67dc77fa7d7bdfb2fbfaefa94c1
3
+ metadata.gz: a865af4dc1a6a3fdf9eaafa25cbba4ac02bc44b88b10bab7931e744fc4e13212
4
+ data.tar.gz: d57b3c408d1c781d3861eca231555bf8f86a8c0b6ecfa7efa56348803645cf8b
5
5
  SHA512:
6
- metadata.gz: aa3fe513e335e98f6c498969dc442847533efffa87536801e3bdcc3626c6f4e0b3b19fa87fedfd436b4a8f9d2da3e8f2fa2636b0913c237a84d071215f9b98f5
7
- data.tar.gz: d9e67100e2b6619bf69f8ce170a6e7325cd85e20e2109eefe479869f1b416c2ebe06a83a61ee44b7af921e7c16191d1fe3f925b4a89d26150349db1a6c47dc3b
6
+ metadata.gz: 01a811e7da05c9c6752d76fcd404f15855a01842571880de44d7a9131ef8a2cc5828b3cb3a380241a6a0403c1aabac3c1a50439a7ec367b8507399efefabbf89
7
+ data.tar.gz: 8eded7fe42d1c55b00297985dac767f5b80c80c29fdaf3831b5ded2502e976666d6ea5112f3a9dd173a53e43a16110e00e0e3b206da2ebcaab5351c3fc912291
@@ -0,0 +1,32 @@
1
+ version: 2
2
+ jobs:
3
+ build:
4
+ docker:
5
+ - image: circleci/ruby:2.6
6
+
7
+ working_directory: ~/repo
8
+
9
+ steps:
10
+ - checkout
11
+
12
+ - restore_cache:
13
+ keys:
14
+ - v1-dependencies-{{ checksum "Gemfile" }}
15
+ - v1-dependencies-
16
+
17
+ - run:
18
+ name: install dependencies
19
+ command: |
20
+ gem install bundler
21
+ bundle update --jobs=4 --retry=3 --path tmp/bundle || \
22
+ bundle install --jobs=4 --retry=3 --path tmp/bundle
23
+
24
+ - save_cache:
25
+ paths:
26
+ - ./tmp/bundle
27
+ key: v1-dependencies-{{ checksum "Gemfile" }}
28
+
29
+ - run:
30
+ name: run tests
31
+ command: |
32
+ bundle exec rake
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  Find records faster, add custom helpers, improve your console life by 100%.
6
6
 
7
+ [![CircleCI](https://img.shields.io/circleci/build/github/nebulab/rails_console_toolkit/master?logo=circleci)](https://circleci.com/gh/nebulab/rails_console_toolkit)
8
+
7
9
  ## Installation
8
10
 
9
11
  Add this line to your application's Gemfile:
@@ -12,14 +14,15 @@ Add this line to your application's Gemfile:
12
14
  gem 'rails_console_toolkit'
13
15
  ```
14
16
 
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
17
+ And then configure it within an initializer:
20
18
 
21
- $ gem install rails_console_toolkit
19
+ ```ruby
20
+ # config/initializers/console.rb
22
21
 
22
+ RailsConsoleToolkit.configure do |config|
23
+ # helper definitions go here...
24
+ end
25
+ ```
23
26
 
24
27
  ## Helper packs
25
28
 
@@ -28,7 +31,9 @@ Or install it yourself as:
28
31
  ```ruby
29
32
  # config/initializers/console.rb
30
33
 
31
- require 'rails_console_toolkit/aliases'
34
+ RailsConsoleToolkit.configure do |config|
35
+ config.use_pack :aliases
36
+ end
32
37
  ```
33
38
 
34
39
  ```
@@ -42,7 +47,9 @@ require 'rails_console_toolkit/aliases'
42
47
  ```ruby
43
48
  # config/initializers/console.rb
44
49
 
45
- require 'rails_console_toolkit/aliases'
50
+ RailsConsoleToolkit.configure do |config|
51
+ config.use_pack :utils
52
+ end
46
53
  ```
47
54
 
48
55
  ```
@@ -59,7 +66,9 @@ foo (3000.6ms)
59
66
  ```ruby
60
67
  # config/initializers/console.rb
61
68
 
62
- require 'rails_console_toolkit/aliases'
69
+ RailsConsoleToolkit.configure do |config|
70
+ config.use_pack :solidus
71
+ end
63
72
  ```
64
73
 
65
74
  ```
@@ -72,24 +81,17 @@ require 'rails_console_toolkit/aliases'
72
81
  > country(...) # => will look for Spree::Country records by :id, :iso, :iso3, :iso_name, :name
73
82
  ```
74
83
 
75
- ## Usage
76
-
77
- ```ruby
78
- # config/initializers/console.rb
79
-
80
- # helper definitions go here...
81
-
82
- RailsConsoleToolkit.install!
83
- ```
84
-
84
+ ## Custom Helpers
85
85
 
86
86
  ### Generic helpers
87
87
 
88
88
  ```ruby
89
89
  # config/initializers/console.rb
90
90
 
91
- RailsConsoleToolkit.helper :foo do
92
- :bar
91
+ RailsConsoleToolkit.configure do |config|
92
+ config.helper :foo do
93
+ :bar
94
+ end
93
95
  end
94
96
  ```
95
97
 
@@ -104,7 +106,9 @@ end
104
106
  ```ruby
105
107
  # config/initializers/console.rb
106
108
 
107
- RailsConsoleToolkit.alias :r, :reload!
109
+ RailsConsoleToolkit.configure do |config|
110
+ config.alias :r, :reload!
111
+ end
108
112
  ```
109
113
 
110
114
  ```
@@ -118,7 +122,9 @@ RailsConsoleToolkit.alias :r, :reload!
118
122
  ```ruby
119
123
  # config/initializers/console.rb
120
124
 
121
- 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
122
128
  ```
123
129
 
124
130
 
@@ -136,10 +142,11 @@ RailsConsoleToolkit.model_helper 'Spree::Product', as: :product, by: %i[:name, :
136
142
  ```ruby
137
143
  # config/initializers/console.rb
138
144
 
139
- require 'rails_console_toolkit/aliases' # Will define an alias :x for "exit"
140
-
141
- RailsConsoleToolkit.remove_helper :x
142
- 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
143
150
  ```
144
151
 
145
152
  ```
@@ -171,5 +178,6 @@ This project is funded and maintained by the [Nebulab][nebulab] team.
171
178
  We firmly believe in the power of open-source. [Contact us][contact-us] if you
172
179
  like our work and you need help with your project design or development.
173
180
 
174
- [nebulab]: http://nebulab.it/
175
- [nebulab-logo]: http://nebulab.it/assets/images/public/logo.svg
181
+ [nebulab]: https://nebulab.it/
182
+ [nebulab-logo]: https://nebulab.it/assets/images/public/logo.svg
183
+ [contact-us]: https://nebulab.it/contact-us/
@@ -1,57 +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!
10
- require 'rails/console/app'
11
-
12
- helper_methods.each do |name, block|
13
- Rails::ConsoleMethods.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
- unless cached
31
- record = nil
32
- raise("missing key for #{key}") unless key
33
- end
34
-
35
- if key
36
- record ||= klass.find(key) if key.is_a? Numeric
37
- attribute_names.find { |name| record ||= klass.find_by(name => key) }
38
- end
39
-
40
- record
12
+ def self.configure(&block)
13
+ Rails.application.console do
14
+ setup
15
+ block.call(self)
16
+ install!
41
17
  end
42
18
  end
43
-
44
- def alias_helper(new_name, old_name)
45
- helper(new_name) { send(old_name) }
46
- end
47
-
48
- def remove_helper(name)
49
- helper_methods.delete(name.to_sym)
50
- end
51
-
52
- private
53
-
54
- def helper_methods
55
- @helper_methods ||= {}
56
- end
57
19
  end
@@ -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
+ 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 = key if klass === key
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) { |*args, &block| send(old_name, *args, &block) }
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
@@ -11,3 +11,6 @@ RailsConsoleToolkit.model_helper Spree::Taxon, as: :taxon, by: [:permalink]
11
11
  RailsConsoleToolkit.model_helper Spree::Order, as: :order, by: [:number]
12
12
  RailsConsoleToolkit.model_helper Spree::User, as: :user, by: [:email]
13
13
  RailsConsoleToolkit.model_helper Spree::Country, as: :country, by: [:iso, :iso3, :iso_name, :name]
14
+ RailsConsoleToolkit.model_helper Spree::Role, as: :role, by: [:name]
15
+ RailsConsoleToolkit.model_helper Spree::Promotion, as: :promotion, by: [:name]
16
+ RailsConsoleToolkit.alias :promo, :promotion
@@ -1,3 +1,3 @@
1
1
  module RailsConsoleToolkit
2
- VERSION = "0.1.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -30,6 +30,6 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "rails", '>= 4'
31
31
 
32
32
  spec.add_development_dependency "bundler", "~> 2.0"
33
- spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.add_development_dependency "rake", ">= 12.3.3"
34
34
  spec.add_development_dependency "minitest", "~> 5.0"
35
35
  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.1.0
4
+ version: 0.5.1
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-07-05 00:00:00.000000000 Z
11
+ date: 2020-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 12.3.3
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 12.3.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -74,6 +74,7 @@ executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".circleci/config.yml"
77
78
  - ".gitignore"
78
79
  - ".travis.yml"
79
80
  - Gemfile
@@ -84,6 +85,7 @@ files:
84
85
  - bin/setup
85
86
  - lib/rails_console_toolkit.rb
86
87
  - lib/rails_console_toolkit/aliases.rb
88
+ - lib/rails_console_toolkit/helpers.rb
87
89
  - lib/rails_console_toolkit/solidus.rb
88
90
  - lib/rails_console_toolkit/utils.rb
89
91
  - lib/rails_console_toolkit/version.rb
@@ -109,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
111
113
  requirements: []
112
- rubygems_version: 3.0.3
114
+ rubygems_version: 3.1.2
113
115
  signing_key:
114
116
  specification_version: 4
115
117
  summary: Configurable Rails Console Helpers