nrb 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +16 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +1100 -0
- data/.travis.yml +1 -1
- data/Guardfile +12 -0
- data/README.md +96 -6
- data/Rakefile +1 -1
- data/lib/nrb.rb +16 -5
- data/lib/nrb/cli.rb +5 -5
- data/lib/nrb/commands/all.rb +11 -0
- data/lib/nrb/commands/base/base.rb +30 -0
- data/lib/nrb/commands/base/inside.rb +19 -0
- data/lib/nrb/commands/base/resource.rb +23 -0
- data/lib/nrb/commands/concerns/resource_generator.rb +30 -0
- data/lib/nrb/commands/console.rb +8 -6
- data/lib/nrb/commands/destroy.rb +9 -32
- data/lib/nrb/commands/generate.rb +11 -33
- data/lib/nrb/commands/script.rb +47 -29
- data/lib/nrb/commands/starter.rb +2 -4
- data/lib/nrb/errors.rb +4 -0
- data/lib/nrb/templates/Gemfile.tt +1 -3
- data/lib/nrb/templates/config/boot.rb.tt +4 -4
- data/lib/nrb/templates/config/nrb.rb.tt +2 -2
- data/lib/nrb/templates/script.rb.tt +0 -2
- data/lib/nrb/version.rb +1 -1
- data/nrb.gemspec +9 -4
- metadata +107 -28
- data/lib/nrb/commands/inside_group.rb +0 -40
data/lib/nrb/commands/script.rb
CHANGED
@@ -1,85 +1,103 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
|
1
3
|
module Nrb
|
2
4
|
module Commands
|
3
|
-
class Script <
|
4
|
-
|
5
|
-
|
6
|
-
desc 'Creates a Ninja Ruby Script at the given path'
|
5
|
+
class Script < Commands::Base
|
6
|
+
desc 'Creates a Ninja Ruby Script at the given path.'
|
7
7
|
|
8
8
|
argument :path_or_folder_name, type: :string, required: true,
|
9
9
|
desc: 'The name of the project, or the path.'
|
10
10
|
|
11
11
|
class_option :init_repo, default: true, type: :boolean,
|
12
|
-
desc: 'Initialize a repository at the target location',
|
12
|
+
desc: 'Initialize a repository at the target location.',
|
13
13
|
aliases: '-r'
|
14
|
-
|
15
|
-
|
14
|
+
|
15
|
+
class_option :bundle_install, default: false, type: :boolean,
|
16
|
+
desc: 'Run bundle install after generating the skeleton.',
|
16
17
|
aliases: '-b'
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
end
|
19
|
+
class_option :local, default: false, type: :boolean,
|
20
|
+
desc: 'Add local path of the gem when generating the Gemfile. Useful for testing.'
|
21
21
|
|
22
22
|
def gitignore
|
23
|
-
template 'templates/.gitignore.tt', target('.gitignore')
|
23
|
+
template 'templates/.gitignore.tt', target('.gitignore'), opts
|
24
24
|
end
|
25
25
|
|
26
26
|
def readme
|
27
27
|
template 'templates/README.md.tt', target('README.md'),
|
28
|
-
title: name,
|
29
|
-
version: Nrb::VERSION
|
28
|
+
opts.merge({ title: name, version: Nrb::VERSION })
|
30
29
|
end
|
31
30
|
|
32
31
|
def gemfile
|
33
32
|
template 'templates/Gemfile.tt', target('Gemfile'),
|
34
|
-
|
33
|
+
opts.merge({ nrb_gem: nrb_gem })
|
35
34
|
end
|
36
35
|
|
37
36
|
def rakefile
|
38
|
-
template 'templates/Rakefile.tt', target('Rakefile')
|
37
|
+
template 'templates/Rakefile.tt', target('Rakefile'), opts
|
39
38
|
end
|
40
39
|
|
41
40
|
def config_nrb
|
42
41
|
template 'templates/config/nrb.rb.tt', target('config/nrb.rb'),
|
43
|
-
|
42
|
+
opts.merge({ resources: Nrb.config.resources })
|
44
43
|
end
|
45
44
|
|
46
|
-
def
|
47
|
-
Nrb.config.
|
48
|
-
create_file target("#{dir}/.keep")
|
45
|
+
def resources
|
46
|
+
Nrb.config.resources.each do |dir|
|
47
|
+
create_file target("#{dir}/.keep"), opts
|
49
48
|
end
|
50
49
|
end
|
51
50
|
|
52
51
|
def boot
|
53
|
-
template 'templates/config/boot.rb.tt', target('config/boot.rb')
|
52
|
+
template 'templates/config/boot.rb.tt', target('config/boot.rb'), opts
|
54
53
|
end
|
55
54
|
|
56
55
|
def db_config
|
57
56
|
template 'templates/db/config.yml.tt', target('db/config.yml'),
|
58
|
-
db: name
|
57
|
+
opts.merge({ db: name })
|
59
58
|
end
|
60
59
|
|
61
60
|
def script_file
|
62
|
-
template 'templates/script.rb.tt', "#{target(name)}.rb"
|
61
|
+
template 'templates/script.rb.tt', "#{target(name)}.rb", opts
|
63
62
|
end
|
64
63
|
|
65
64
|
def initialize_repo
|
66
|
-
return unless options[:
|
65
|
+
return unless options[:init_repo]
|
67
66
|
|
68
|
-
inside target,
|
69
|
-
|
67
|
+
inside target, opts do
|
68
|
+
Nrb.silently verbose: options[:verbose] do
|
69
|
+
run 'git init'
|
70
|
+
end
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
73
74
|
def bundle_install
|
74
|
-
return unless options[:
|
75
|
-
|
76
|
-
inside target,
|
77
|
-
|
75
|
+
return unless options[:bundle_install]
|
76
|
+
|
77
|
+
inside target, opts do
|
78
|
+
Bundler.with_clean_env do
|
79
|
+
Nrb.silently verbose: options[:verbose] do
|
80
|
+
run 'bundle install'
|
81
|
+
end
|
82
|
+
end
|
78
83
|
end
|
79
84
|
end
|
80
85
|
|
81
86
|
private
|
82
87
|
|
88
|
+
def nrb_gem
|
89
|
+
text = "gem 'nrb', '#{Nrb::VERSION}'"
|
90
|
+
|
91
|
+
if options[:local]
|
92
|
+
local_gem_path = Pathname.new(File.expand_path('../../..', __dir__))
|
93
|
+
target_path = Pathname.new(target)
|
94
|
+
relative_path = local_gem_path.relative_path_from(target_path)
|
95
|
+
text << ", path: '#{relative_path}'"
|
96
|
+
end
|
97
|
+
|
98
|
+
text
|
99
|
+
end
|
100
|
+
|
83
101
|
def target(final = nil)
|
84
102
|
File.join(File.expand_path(path_or_folder_name), final.to_s)
|
85
103
|
end
|
data/lib/nrb/commands/starter.rb
CHANGED
data/lib/nrb/errors.rb
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Setup the listed gems in the gemfile
|
2
2
|
require 'bundler/setup'
|
3
|
-
|
3
|
+
|
4
4
|
# Actually require the gems
|
5
5
|
Bundler.require(:default)
|
6
6
|
|
@@ -8,7 +8,7 @@ Bundler.require(:default)
|
|
8
8
|
Nrb.config.root = File.expand_path('..', __dir__)
|
9
9
|
|
10
10
|
# Add the root to the load path
|
11
|
-
$:.unshift(Nrb.root)
|
11
|
+
$:.unshift(Nrb.root) unless $:.include?(Nrb.root)
|
12
12
|
|
13
13
|
# Require other configurations from the config/nrb.rb file
|
14
14
|
require 'config/nrb'
|
@@ -19,7 +19,7 @@ ActiveRecord::Base.configurations = YAML.load_file('db/config.yml')
|
|
19
19
|
ActiveRecord::Base.establish_connection(:development)
|
20
20
|
ActiveRecord::Base.logger = Logger.new(STDOUT)
|
21
21
|
|
22
|
-
# Finally require files inside config.
|
23
|
-
Nrb.config.
|
22
|
+
# Finally require files inside config.resources
|
23
|
+
Nrb.config.resources.each do |dir|
|
24
24
|
Dir[File.join(dir, '*.rb')].each { |f| require(f) }
|
25
25
|
end
|
@@ -2,6 +2,6 @@ Nrb.configure do |config|
|
|
2
2
|
# Root of the script folder
|
3
3
|
config.root = File.expand_path('..', __dir__)
|
4
4
|
|
5
|
-
# Default
|
6
|
-
# config.
|
5
|
+
# Default resources to autoload
|
6
|
+
# config.resources = %w(<%= config[:resources].join(' ') %>)
|
7
7
|
end
|
data/lib/nrb/version.rb
CHANGED
data/nrb.gemspec
CHANGED
@@ -20,11 +20,16 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.11"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
-
spec.add_development_dependency "minitest", "~> 5.0"
|
24
|
-
spec.
|
23
|
+
spec.add_development_dependency "minitest", "~> 5.8.0"
|
24
|
+
spec.add_development_dependency "guard", "~> 2.13.0"
|
25
|
+
spec.add_development_dependency "guard-minitest", "~> 2.4.0"
|
26
|
+
spec.add_development_dependency "guard-rubocop", "~> 1.2.0"
|
27
|
+
spec.add_development_dependency "coveralls", "~> 0.8.13"
|
28
|
+
spec.add_development_dependency "rubocop", "~> 0.38.0"
|
29
|
+
spec.add_dependency "thor", "~> 0.19.0"
|
30
|
+
spec.add_dependency "standalone_migrations", "~> 4.0.0"
|
31
|
+
spec.add_dependency "sqlite3", "~> 1.3.0"
|
25
32
|
spec.add_dependency "pry"
|
26
33
|
spec.add_dependency "pry-byebug"
|
27
34
|
spec.add_dependency "binding_of_caller"
|
28
|
-
spec.add_dependency "standalone_migrations", "~> 4.0.3"
|
29
|
-
spec.add_dependency "sqlite3", "~> 1.3.11"
|
30
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- shuriu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,58 +44,128 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 5.8.0
|
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:
|
54
|
+
version: 5.8.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.13.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.13.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.4.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.4.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard-rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.2.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.2.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: coveralls
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.8.13
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.8.13
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.38.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.38.0
|
55
125
|
- !ruby/object:Gem::Dependency
|
56
126
|
name: thor
|
57
127
|
requirement: !ruby/object:Gem::Requirement
|
58
128
|
requirements:
|
59
129
|
- - "~>"
|
60
130
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.19.
|
131
|
+
version: 0.19.0
|
62
132
|
type: :runtime
|
63
133
|
prerelease: false
|
64
134
|
version_requirements: !ruby/object:Gem::Requirement
|
65
135
|
requirements:
|
66
136
|
- - "~>"
|
67
137
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.19.
|
138
|
+
version: 0.19.0
|
69
139
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
140
|
+
name: standalone_migrations
|
71
141
|
requirement: !ruby/object:Gem::Requirement
|
72
142
|
requirements:
|
73
|
-
- - "
|
143
|
+
- - "~>"
|
74
144
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
145
|
+
version: 4.0.0
|
76
146
|
type: :runtime
|
77
147
|
prerelease: false
|
78
148
|
version_requirements: !ruby/object:Gem::Requirement
|
79
149
|
requirements:
|
80
|
-
- - "
|
150
|
+
- - "~>"
|
81
151
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
152
|
+
version: 4.0.0
|
83
153
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
154
|
+
name: sqlite3
|
85
155
|
requirement: !ruby/object:Gem::Requirement
|
86
156
|
requirements:
|
87
|
-
- - "
|
157
|
+
- - "~>"
|
88
158
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
159
|
+
version: 1.3.0
|
90
160
|
type: :runtime
|
91
161
|
prerelease: false
|
92
162
|
version_requirements: !ruby/object:Gem::Requirement
|
93
163
|
requirements:
|
94
|
-
- - "
|
164
|
+
- - "~>"
|
95
165
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
166
|
+
version: 1.3.0
|
97
167
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
168
|
+
name: pry
|
99
169
|
requirement: !ruby/object:Gem::Requirement
|
100
170
|
requirements:
|
101
171
|
- - ">="
|
@@ -109,33 +179,33 @@ dependencies:
|
|
109
179
|
- !ruby/object:Gem::Version
|
110
180
|
version: '0'
|
111
181
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
182
|
+
name: pry-byebug
|
113
183
|
requirement: !ruby/object:Gem::Requirement
|
114
184
|
requirements:
|
115
|
-
- - "
|
185
|
+
- - ">="
|
116
186
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
187
|
+
version: '0'
|
118
188
|
type: :runtime
|
119
189
|
prerelease: false
|
120
190
|
version_requirements: !ruby/object:Gem::Requirement
|
121
191
|
requirements:
|
122
|
-
- - "
|
192
|
+
- - ">="
|
123
193
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
194
|
+
version: '0'
|
125
195
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
196
|
+
name: binding_of_caller
|
127
197
|
requirement: !ruby/object:Gem::Requirement
|
128
198
|
requirements:
|
129
|
-
- - "
|
199
|
+
- - ">="
|
130
200
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
201
|
+
version: '0'
|
132
202
|
type: :runtime
|
133
203
|
prerelease: false
|
134
204
|
version_requirements: !ruby/object:Gem::Requirement
|
135
205
|
requirements:
|
136
|
-
- - "
|
206
|
+
- - ">="
|
137
207
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
208
|
+
version: '0'
|
139
209
|
description:
|
140
210
|
email:
|
141
211
|
- stefan.rotariu@gmail.com
|
@@ -144,9 +214,12 @@ executables:
|
|
144
214
|
extensions: []
|
145
215
|
extra_rdoc_files: []
|
146
216
|
files:
|
217
|
+
- ".codeclimate.yml"
|
147
218
|
- ".gitignore"
|
219
|
+
- ".rubocop.yml"
|
148
220
|
- ".travis.yml"
|
149
221
|
- Gemfile
|
222
|
+
- Guardfile
|
150
223
|
- LICENSE.txt
|
151
224
|
- README.md
|
152
225
|
- Rakefile
|
@@ -154,12 +227,17 @@ files:
|
|
154
227
|
- bin/nrb
|
155
228
|
- lib/nrb.rb
|
156
229
|
- lib/nrb/cli.rb
|
230
|
+
- lib/nrb/commands/all.rb
|
231
|
+
- lib/nrb/commands/base/base.rb
|
232
|
+
- lib/nrb/commands/base/inside.rb
|
233
|
+
- lib/nrb/commands/base/resource.rb
|
234
|
+
- lib/nrb/commands/concerns/resource_generator.rb
|
157
235
|
- lib/nrb/commands/console.rb
|
158
236
|
- lib/nrb/commands/destroy.rb
|
159
237
|
- lib/nrb/commands/generate.rb
|
160
|
-
- lib/nrb/commands/inside_group.rb
|
161
238
|
- lib/nrb/commands/script.rb
|
162
239
|
- lib/nrb/commands/starter.rb
|
240
|
+
- lib/nrb/errors.rb
|
163
241
|
- lib/nrb/templates/.gitignore.tt
|
164
242
|
- lib/nrb/templates/Gemfile.tt
|
165
243
|
- lib/nrb/templates/README.md.tt
|
@@ -197,3 +275,4 @@ signing_key:
|
|
197
275
|
specification_version: 4
|
198
276
|
summary: Ninja Ruby scripts with easy persistence for your experimenting needs.
|
199
277
|
test_files: []
|
278
|
+
has_rdoc:
|