bootinq 0.5.0 → 1.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
- SHA1:
3
- metadata.gz: 7902442d51cbd75049e152e1e7c4097c7f9d8d1f
4
- data.tar.gz: 66efaa0d93126ee982e8a6fdad02f3fbe54de614
2
+ SHA256:
3
+ metadata.gz: 02d532d3f79f581c02a9cf22de365c865a5fc455460ff5559d9f32893fc72daa
4
+ data.tar.gz: 274bbc9139607038551bd75d73104301a6d14a561dfe8a736d33c50fc91f473b
5
5
  SHA512:
6
- metadata.gz: e68317bb8356171fbe0aac37eb41e64c64d7133791bf5d4dc92bacc394d2ea58d157af1f9d71d3e2c1b431ab0f43a66ec30b3eba6cf4c3e3ecb05877b1f16a0e
7
- data.tar.gz: 930826fe693f9ad2bea46b8e6ca7a795dc4afc417476e925f5597814748a5cce2bae6056776682d0447ee8a7030afa194787473c9c98ebd0643778c13d03a349
6
+ metadata.gz: 424dd6941e25ad8b8b5a5497bf5ff5853bf66255774677e2831ca4972756b87956eb93ed55d3fcb87285ad2fc51c24279073c579fcea93a2ce36fa3689105d3d
7
+ data.tar.gz: 8b807c29dffd4a66ee89ce6b3790560fe0cf3aa69ee1ef1544ed87a5e32f3204077b981df613d05c22530952506a35fa275b86669965610760c025c13484785d
data/Gemfile CHANGED
@@ -10,7 +10,7 @@ gemspec
10
10
  # Git. Remember to move these dependencies to your gemspec before releasing
11
11
  # your gem to rubygems.org.
12
12
 
13
- gem 'rails', '~> 4.2'
13
+ gem 'rails', '>= 5.0'
14
14
  gem 'sqlite3'
15
15
 
16
16
  # To use a debugger
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Anton
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -15,9 +15,9 @@ And then execute:
15
15
  $ bundle
16
16
 
17
17
 
18
- ## Usage
18
+ ## Get started
19
19
 
20
- There are few steps to setup partial gem booting in a Rails application using Bootinq:
20
+ There are few steps to setup partial gem booting using Bootinq in any ruby application:
21
21
 
22
22
  ### 1. Declare loadable parts
23
23
 
@@ -60,7 +60,9 @@ group :console_boot do
60
60
  end
61
61
  ```
62
62
 
63
- ### 3. Change config/application.rb
63
+ ## Ruby on Rails
64
+
65
+ ### 3. Swap Bundle.require to Bootinq.require
64
66
 
65
67
  Insert `require "bootinq"` to the top of `config/application.rb` file and replace `Bundler.require(*Rails.groups)` with the `Bootinq.require`:
66
68
 
@@ -74,11 +76,10 @@ require 'rails/all'
74
76
  require 'bootinq'
75
77
 
76
78
  # With no additional gem groups:
77
- Bootinq.require
79
+ Bootinq.require(verbose: true)
78
80
  # otherwise, set them like in <tt>Bundle.require(*Rails.groups(*groups))</tt>:
79
81
  # Bootinq.require(:assets => %w(development test))
80
82
 
81
- puts "* Bootinq: loading components #{Bootinq.components * ', '}"
82
83
  ```
83
84
 
84
85
  #### Separate load rails components with Bootinq
@@ -131,6 +132,24 @@ api: env BOOTINQ=a MAX_THREADS=128 bundle exec puma -w 4
131
132
  admin: env BOOTINQ=z bundle exec puma
132
133
  ```
133
134
 
135
+ ## Usage with other frameworks
136
+
137
+ 3. Locate `Bundler.require(...)` in your app and insert `require "bootinq"` above it.
138
+
139
+ 4. Replace located `Bundler.require(...)` line with the `Bootinq.require(...)`.
140
+
141
+ For example, if you are using Grape:
142
+
143
+ ```ruby
144
+ # config/application.rb
145
+
146
+ require 'boot'
147
+ require 'bootinq'
148
+
149
+ # Bundler.require :default, ENV['RACK_ENV']
150
+ Bootinq.require :default, ENV['RACK_ENV'], verbose: true
151
+
152
+
134
153
  ## Development
135
154
 
136
155
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -19,6 +19,6 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_development_dependency "bundler", "~> 1.10"
23
- spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "bundler"
23
+ spec.add_development_dependency "rake"
24
24
  end
@@ -1,17 +1,39 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "yaml"
2
4
  require "singleton"
3
5
  require "forwardable"
4
6
  require "bootinq/component"
7
+ require "bootinq/switch"
5
8
 
6
9
  # = Bootinq
7
10
  #
8
11
  # == Installation
9
12
  #
13
+ # === Ruby on Rails
14
+ #
10
15
  # 1. Insert <tt>require "bootinq"</tt> in the top of <tt>config/application.rb</tt>
11
16
  #
12
17
  # 2. Find <tt>Bundler.require(*Rails.groups)</tt> line below and replace it
13
18
  # with the <tt>Bootinq.require</tt>.
14
19
  #
20
+ # === Other
21
+ #
22
+ # 1. Locate <tt>Bundler.require(...)</tt> in your app and insert <tt>require "bootinq"</tt> above.
23
+ #
24
+ # 2. Replace located <tt>Bundler.require(...)</tt> line with the <tt>Bootinq.require(...)</tt>.
25
+ #
26
+ # For example, if you are using Grape:
27
+ #
28
+ # # config/application.rb
29
+ #
30
+ # require 'boot'
31
+ # require 'bootinq'
32
+ #
33
+ # # Bundler.require :default, ENV['RACK_ENV']
34
+ # Bootinq.require :default, ENV['RACK_ENV'], verbose: true
35
+ # ...
36
+ #
15
37
  # == Example <tt>config/bootinq.yml</tt>:
16
38
  #
17
39
  # env_key: BOOTINQ
@@ -24,10 +46,8 @@ require "bootinq/component"
24
46
  # a: :api
25
47
  # f: :engine
26
48
  class Bootinq
27
- extend SingleForwardable
28
49
  include Singleton
29
50
 
30
- NEG_OPS = %w(- ^).freeze
31
51
  DEFAULT = {
32
52
  "env_key" => 'BOOTINQ',
33
53
  "default" => '',
@@ -35,62 +55,126 @@ class Bootinq
35
55
  "mount" => {}
36
56
  }.freeze
37
57
 
58
+ class << self
59
+ protected def delegated(sym) # :no-doc:
60
+ location = caller_locations(1, 1).first
61
+ file, line = location.path, location.lineno
62
+ definiton = %(def self.#{sym}(*args, &block); instance.#{sym}(*args, &block); end)
63
+ class_eval definiton, file, line
64
+ end
65
+ end
66
+
67
+ # :call-seq:
68
+ # Bootinq.require(*groups, verbose: false, &block)
69
+ #
38
70
  # The helper method to bootstrap the Bootinq.
39
- # Sets the BOOTINQ_PATH enviroment variable, yields optional block in
40
- # the own instance's binding and, finally, requires selected bundler groups.
41
- def self.require(*groups, logger: nil, &block) # :yields:
71
+ # Sets the BOOTINQ_PATH enviroment variable if it is missing,
72
+ # invokes the <tt>Bootinq.setup</tt> method with the given verbose key argument & block,
73
+ # and, finally, gets Bundler to require the given groups.
74
+ def self.require(*groups, verbose: false, &block) # :yields: Bootinq.instance
42
75
  ENV['BOOTINQ_PATH'] ||= File.expand_path('../bootinq.yml', caller_locations(1..1)[0].path)
43
76
 
44
- logger.debug { "Bootinq: loading components #{instance.components.join(', ')}" } if logger.respond_to?(:debug)
45
-
46
- instance.instance_exec(&block) if block_given?
77
+ setup(verbose: verbose, &block)
47
78
 
48
79
  Bundler.require(*instance.groups(*groups))
49
80
  end
50
81
 
51
- private_class_method def self.new # :nodoc:
52
- super.freeze
82
+ # :call-seq:
83
+ # Bootinq.setup(verbose: false, &block) -> true or false
84
+ #
85
+ # Initializes itself. To track inquired components use <tt>verbose: true</tt> key argument.
86
+ # Optionally yields block within the own instance's binding.
87
+ def self.setup(verbose: false, &block) # :yields: Bootinq.instance
88
+ instance
89
+ puts "Bootinq: loading components #{instance.components.join(', ')}" if verbose
90
+ instance.instance_exec(&block) if block_given?
91
+ instance
53
92
  end
54
93
 
94
+ attr_reader :flags
95
+ attr_reader :components
55
96
 
56
- attr_reader :flags, :components
97
+ delegated :flags
98
+ delegated :components
57
99
 
58
- def initialize
59
- config = YAML.safe_load(File.read(ENV.fetch('BOOTINQ_PATH')), [Symbol]).
60
- merge!(DEFAULT) { |_,l,r| l.nil? ? r : l }
100
+ def initialize # :no-doc:
101
+ config_path = ENV.fetch('BOOTINQ_PATH')
102
+ config = YAML.safe_load(File.read(config_path), [Symbol])
103
+ config.merge!(DEFAULT) { |_, l, r| l.nil? ? r : l }
61
104
 
62
105
  @_value = ENV.fetch(config['env_key']) { config['default'] }
63
- @_neg = @_value.start_with?(*NEG_OPS)
106
+ @_neg = @_value.start_with?(?-, ?^)
64
107
  @flags = []
65
108
  @components = []
109
+ @switch = Switch.new(*@components)
66
110
 
67
- config['parts'].each { |flag, name| enable_component(flag) { Component.new(name) } }
68
- config['mount'].each { |flag, name| enable_component(flag) { Mountable.new(name) } }
111
+ config['parts'].each { |flag, name| enable_component(name, flag: flag) }
112
+ config['mount'].each { |flag, name| enable_component(name, flag: flag, as: Mountable) }
69
113
  end
70
114
 
71
- # Checks if a given gem (i.e. a gem group) is enabled
72
- def enabled?(gem_name)
73
- components.include?(gem_name)
115
+ # :call-seq:
116
+ # Bootinq.enable_component(name, flag: [, as: Component])
117
+ #
118
+ delegated def enable_component(name, flag:, as: Component)
119
+ if @_neg ^ @_value.include?(flag)
120
+ @flags << flag
121
+ @components << as.new(name)
122
+ end
123
+ end
124
+
125
+ # :call-seq:
126
+ # Bootinq.enabled?(name) -> true or false
127
+ #
128
+ # Checks if a component with the given name (i.e. the same gem group)
129
+ # is enabled
130
+ delegated def enabled?(name)
131
+ components.include?(name)
74
132
  end
75
133
 
134
+ # :call-seq:
135
+ # Bootinq.component(name) -> Bootinq::Component
136
+ # Bootinq[name] -> Bootinq::Component
137
+ #
76
138
  # Returns a <tt>Bootinq::Component</tt> object by its name
77
- def component(key)
78
- components[components.index(key)]
139
+ delegated def component(name)
140
+ components[components.index(name)]
79
141
  end
80
142
 
81
143
  alias :[] :component
144
+ delegated :[]
82
145
 
83
- # Enums each mountable component
84
- def each_mountable
85
- return to_enum(__method__) unless block_given?
86
- components.each { |part| yield(part) if part.mountable? }
146
+ # :call-seq:
147
+ # Bootinq.each_mountable { |part| block } -> Array
148
+ # Bootinq.each_mountable -> Enumerator
149
+ #
150
+ # Calls the given block once for each enabled mountable component
151
+ # passing that part as a parameter. Returns the array of all mountable components.
152
+ #
153
+ # If no block is given, an Enumerator is returned.
154
+ delegated def each_mountable(&block) # :yields: part
155
+ components.select(&:mountable?).each(&block)
87
156
  end
88
157
 
89
- # Invokes <tt>Rails.groups</tt> method within enabled Bootinq's groups
90
- def groups(*list)
91
- Rails.groups(*components.map(&:group), *list)
158
+ # :call-seq:
159
+ # Bootinq.groups(*groups)
160
+ #
161
+ # Merges enabled Bootinq's groups with the given groups and, if loaded with Rails,
162
+ # passes them to <tt>Rails.groups</tt> method, otherwise just returns the merged list
163
+ # to use with <tt>Bundler.require</tt>.
164
+ delegated def groups(*groups)
165
+ groups.unshift(*components.map(&:group))
166
+ if defined?(Rails)
167
+ Rails.groups(*groups)
168
+ else
169
+ groups
170
+ end
92
171
  end
93
172
 
173
+ # :call-seq:
174
+ # Bootinq.on(name) { block } -> true or false
175
+ # Bootinq.on(any: [names]) { block } -> true or false
176
+ # Bootinq.on(all: [names]) { block } -> true or false
177
+ #
94
178
  # Takes a component's name or single-key options hash as an argument and
95
179
  # yields a given block if the target components are enabled.
96
180
  #
@@ -109,19 +193,61 @@ class Bootinq
109
193
  # Bootinq.on all: %i(frontend backend) do
110
194
  # # do something when frontend and backend are enabled
111
195
  # end
112
- def on(name) # :yields:
113
- if name.is_a?(Hash)
114
- %i(any all).each do |m|
115
- list = name[m]
116
- next unless list.is_a?(Enumerable)
117
- yield if list.public_send(:"#{m}?") { |part| enabled?(part) }
118
- end
119
- else
120
- yield if enabled?(name)
196
+ delegated def on(name = nil, any: nil, all: nil) # :yields:
197
+ if name.nil? && any.nil? && all.nil?
198
+ raise ArgumentError, "wrong arguments (given 0, expected 1)"
199
+ elsif (any && all) || (name && (any || all))
200
+ raise ArgumentError, "expected single argument or one of keywords: `all' or `any'"
121
201
  end
202
+
203
+ is_matched =
204
+ name ? enabled?(name) :
205
+ any ? on_any(*any) :
206
+ all ? on_all(*all) : false
207
+ yield if is_matched
208
+ is_matched
209
+ end
210
+
211
+ # :call-seq:
212
+ # Bootinq.on_all(*names) { block } -> true or false
213
+ #
214
+ # Takes a list of component names and yields a given block (optionally)
215
+ # if all of them are enabled. Returns boolean matching status.
216
+ delegated def on_all(*parts) # :yields:
217
+ is_matched = parts.all? { |p| enabled?(p) }
218
+ yield if is_matched && block_given?
219
+ is_matched
220
+ end
221
+
222
+ # :call-seq:
223
+ # Bootinq.on_all(*names) { block } -> true or false
224
+ #
225
+ # Takes a list of component names and yields a given block (optionally)
226
+ # if any of them are enabled. Returns boolean matching status.
227
+ delegated def on_any(*parts) # :yields:
228
+ is_matched = parts.any? { |p| enabled?(p) }
229
+ yield if is_matched && block_given?
230
+ is_matched
231
+ end
232
+
233
+ # :call-seq:
234
+ # Bottinq.switch(*parts) { block } -> nil
235
+ #
236
+ # Collector method.
237
+ #
238
+ # Example:
239
+ #
240
+ # Bootinq.switch do |part|
241
+ # part.frontend { … }
242
+ # part.backend { … }
243
+ # end
244
+ delegated def switch # :yields: Bootinq::Switch.new
245
+ yield(@switch)
246
+ nil
122
247
  end
123
248
 
124
- def freeze # :no-doc:
249
+ # Freezes every instance variables and the instance itself.
250
+ def freeze
125
251
  @_value.freeze
126
252
  @_neg.freeze
127
253
  @flags.freeze
@@ -129,12 +255,9 @@ class Bootinq
129
255
  super
130
256
  end
131
257
 
132
- def_delegators "instance", *instance_methods(false)
133
-
134
- private def enable_component(flag) # :yields:
135
- if @_neg ^ @_value.include?(flag)
136
- @flags << flag
137
- @components << yield
138
- end
258
+ def self.new
259
+ super.freeze
139
260
  end
261
+
262
+ private_class_method :new
140
263
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Bootinq
2
4
  class Component
3
- attr_reader :intern, :id2name
5
+ attr_reader :intern, :id2name, :group
4
6
 
5
7
  alias :to_sym :intern
6
8
  alias :to_s :id2name
@@ -10,6 +12,7 @@ class Bootinq
10
12
  def initialize(intern)
11
13
  @intern = intern.to_sym
12
14
  @id2name = intern.to_s.freeze
15
+ @group = :"#@id2name\_boot"
13
16
  freeze
14
17
  end
15
18
 
@@ -17,8 +20,15 @@ class Bootinq
17
20
  false
18
21
  end
19
22
 
20
- def group
21
- :"#@id2name\_boot"
23
+ def module_name
24
+ @id2name.camelcase.to_sym
25
+ end
26
+
27
+ def engine
28
+ end
29
+
30
+ def kind_of?(klass)
31
+ super || @intern.kind_of?(klass)
22
32
  end
23
33
 
24
34
  def == other
@@ -29,27 +39,44 @@ class Bootinq
29
39
  end
30
40
  end
31
41
 
32
- def inspect
33
- @intern.inspect
42
+ def ===(other)
43
+ case other
44
+ when String then other === @id2name
45
+ when Symbol then other === @intern
46
+ else super
47
+ end
34
48
  end
35
49
 
36
- def engine
37
- nil
50
+ def casecmp(other)
51
+ case other
52
+ when String then @id2name.casecmp(other)
53
+ when Symbol then @intern.casecmp(other)
54
+ when self.class then casecmp(other.to_s)
55
+ end
38
56
  end
39
57
 
40
- def module_name
41
- @id2name.camelcase.to_sym
58
+ def casecmp?(other)
59
+ case other
60
+ when String then @id2name.casecmp?(other)
61
+ when Symbol then @intern.casecmp?(other)
62
+ when self.class then casecmp?(other.to_s)
63
+ end
42
64
  end
43
65
 
44
- def respond_to_missing?(method_name, include_all=false)
45
- @intern.respond_to?(method_name, include_all)
46
- end
66
+ %i(inspect to_proc __id__ hash).
67
+ each { |sym| class_eval %(def #{sym}; @intern.#{sym}; end), __FILE__, __LINE__ + 1 }
47
68
 
48
- private
69
+ %i(encoding empty? length).
70
+ each { |sym| class_eval %(def #{sym}; @id2name.#{sym}; end), __FILE__, __LINE__ + 1 }
49
71
 
50
- def method_missing(method_name, *args, &blk)
51
- @intern.respond_to?(method_name) ? @intern.public_send(method_name, *args, &blk) : super
52
- end
72
+ %i(match match? =~ []).
73
+ each { |sym| class_eval %(def #{sym}(*args); @id2name.#{sym}(*args); end), __FILE__, __LINE__ + 1 }
74
+
75
+ %i(upcase downcase capitalize swapcase succ next).
76
+ each { |sym| class_eval %(def #{sym}; self.class.new(@intern.#{sym}); end), __FILE__, __LINE__ + 1 }
77
+
78
+ alias :slice :[]
79
+ alias :size :length
53
80
  end
54
81
 
55
82
  class Mountable < Component
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Bootinq
4
+ class Switch < ::BasicObject # :no-doc:
5
+ undef_method :==
6
+ undef_method :equal?
7
+
8
+ module YieldMixin
9
+ def yield_block
10
+ yield
11
+ end
12
+ end
13
+
14
+ private_constant :YieldMixin
15
+
16
+ def self.new(*names)
17
+ switch = super()
18
+ mixin = ::Module.new
19
+ mixin.include(YieldMixin)
20
+ names.each { |name| mixin.alias_method name, :yield_block }
21
+ mixin.send(:private, :yield_block)
22
+ mixin.send(:extend_object, switch)
23
+ switch
24
+ ensure
25
+ mixin = nil
26
+ end
27
+
28
+ def raise(*args) # :no-doc:
29
+ ::Object.send(:raise, *args)
30
+ end
31
+
32
+ def method_missing(*)
33
+ nil
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Bootinq
2
- VERSION = "0.5.0"
4
+ VERSION = "1.3.0"
3
5
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootinq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2020-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.10'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.10'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  description: Allows to select which bundle groups to boot in the current rails process
42
42
  email:
43
43
  - anton.estum@gmail.com
@@ -49,6 +49,7 @@ files:
49
49
  - ".rspec"
50
50
  - ".travis.yml"
51
51
  - Gemfile
52
+ - LICENSE.txt
52
53
  - README.md
53
54
  - Rakefile
54
55
  - bin/console
@@ -57,8 +58,8 @@ files:
57
58
  - lib/bootinq.rb
58
59
  - lib/bootinq.yml
59
60
  - lib/bootinq/component.rb
61
+ - lib/bootinq/switch.rb
60
62
  - lib/bootinq/version.rb
61
- - lib/tasks/bootinq_tasks.rake
62
63
  homepage: https://github.com/estum/bootinq
63
64
  licenses:
64
65
  - MIT
@@ -78,10 +79,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
79
  - !ruby/object:Gem::Version
79
80
  version: '0'
80
81
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.5.1
82
+ rubygems_version: 3.0.3
83
83
  signing_key:
84
84
  specification_version: 4
85
85
  summary: Rails Boot Inquirer
86
86
  test_files: []
87
- has_rdoc:
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :bootinq do
3
- # # Task goes here
4
- # end