script_core 0.1.0 → 0.1.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 +4 -4
- data/.rubocop.yml +131 -36
- data/Gemfile +2 -2
- data/lib/script_core/executable.rb +1 -1
- data/lib/script_core/message_processor.rb +48 -48
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +47 -31
- data/spec/dummy/app/controllers/application_controller.rb +11 -11
- data/spec/dummy/app/controllers/fields/application_controller.rb +14 -14
- data/spec/dummy/app/controllers/fields/choices_controller.rb +8 -10
- data/spec/dummy/app/controllers/fields/options_controller.rb +6 -6
- data/spec/dummy/app/controllers/fields/validations_controller.rb +6 -6
- data/spec/dummy/app/controllers/forms/application_controller.rb +4 -4
- data/spec/dummy/app/controllers/forms/fields_controller.rb +8 -8
- data/spec/dummy/app/controllers/forms/formulas/application_controller.rb +7 -7
- data/spec/dummy/app/controllers/forms/formulas/playgrounds_controller.rb +6 -6
- data/spec/dummy/app/controllers/forms/formulas_controller.rb +8 -8
- data/spec/dummy/app/controllers/forms_controller.rb +8 -8
- data/spec/dummy/app/controllers/nested_forms/application_controller.rb +4 -4
- data/spec/dummy/app/controllers/nested_forms/fields_controller.rb +8 -8
- data/spec/dummy/app/controllers/playgrounds_controller.rb +3 -3
- data/spec/dummy/app/controllers/time_zones_controller.rb +1 -3
- data/spec/dummy/app/lib/script_engine.rb +1 -1
- data/spec/dummy/app/models/concerns/fields/validations/exclusion.rb +1 -1
- data/spec/dummy/app/models/concerns/fields/validations/format.rb +1 -1
- data/spec/dummy/app/models/concerns/fields/validations/inclusion.rb +1 -1
- data/spec/dummy/app/models/concerns/fields/validations/length.rb +1 -1
- data/spec/dummy/app/models/field.rb +25 -25
- data/spec/dummy/app/models/field_options.rb +55 -61
- data/spec/dummy/app/models/fields/date_field.rb +5 -5
- data/spec/dummy/app/models/fields/datetime_field.rb +5 -5
- data/spec/dummy/app/models/fields/integer_field.rb +4 -4
- data/spec/dummy/app/models/fields/multiple_nested_form_field.rb +2 -4
- data/spec/dummy/app/models/fields/multiple_select_field.rb +6 -8
- data/spec/dummy/app/models/fields/nested_form_field.rb +2 -4
- data/spec/dummy/app/models/fields/options/date_field.rb +5 -5
- data/spec/dummy/app/models/fields/options/datetime_field.rb +5 -5
- data/spec/dummy/app/models/fields/select_field.rb +5 -5
- data/spec/dummy/app/{decorators → overrides}/.keep +0 -0
- data/spec/dummy/app/presenters/concerns/fields/presenter_for_number_field.rb +1 -1
- data/spec/dummy/app/views/_form_core/fields/_multiple_nested_form_field.html.erb +2 -2
- data/spec/dummy/app/views/_form_core/fields/_multiple_select_field.html.erb +10 -2
- data/spec/dummy/app/views/_form_core/fields/_nested_form.html.erb +3 -1
- data/spec/dummy/app/views/_form_core/fields/_nested_form_field.html.erb +2 -2
- data/spec/dummy/app/views/_form_core/fields/_select_field.html.erb +9 -2
- data/spec/dummy/config/application.rb +8 -1
- data/spec/dummy/db/migrate/20180916202025_create_forms.form_core.rb +1 -1
- data/spec/dummy/lib/monkey_patches/big_decimal.rb +4 -4
- data/spec/dummy/lib/monkey_patches/date.rb +4 -4
- data/spec/dummy/lib/monkey_patches/time.rb +4 -4
- data/spec/dummy/test/application_system_test_case.rb +7 -0
- data/spec/script_core/message_processor_spec.rb +4 -4
- data/spec/script_core/service_process_spec.rb +4 -4
- data/spec/script_core/stat_spec.rb +2 -2
- data/spec/script_core_spec.rb +10 -10
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d22fc6516b63706a508249edf80db433c0867bdce486c67f37f7a6e7554aee3
|
4
|
+
data.tar.gz: 38fa2692788d8d8da328b5658ed4a9b1229f7249658b414ed1737dd57f3e3af8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9ffbfa5ee5bfba957357126f5e07f4979fdde23c42e84371cd5ed346cdcc8da367559d876a1813cf95c21a289c390d0c0429ce904bbc2fc889e81f4ec106869
|
7
|
+
data.tar.gz: 57171be0b55234ccc9eafad9c019a158d8d7d5626619d5cb5f504e87139b2afb60c47345056b25876211a09f7163f09cdede9b12c99048b987f2b223a2c6f1a9
|
data/.rubocop.yml
CHANGED
@@ -13,13 +13,45 @@ AllCops:
|
|
13
13
|
- spec/dummy/db/schema.rb
|
14
14
|
- spec/dummy/bin/**/*
|
15
15
|
|
16
|
+
Rails:
|
17
|
+
Enabled: true
|
18
|
+
|
16
19
|
Metrics/LineLength:
|
17
20
|
Max: 150
|
18
21
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
Metrics/MethodLength:
|
23
|
+
Max: 100
|
24
|
+
|
25
|
+
Metrics/BlockLength:
|
26
|
+
Max: 50
|
27
|
+
|
28
|
+
Metrics/ClassLength:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Style/GuardClause:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Style/Documentation:
|
35
|
+
Enabled: false
|
36
|
+
|
37
|
+
Style/ClassAndModuleChildren:
|
38
|
+
Enabled: false
|
39
|
+
|
40
|
+
Naming/AccessorMethodName:
|
41
|
+
Enabled: false
|
42
|
+
|
43
|
+
Naming/MemoizedInstanceVariableName:
|
44
|
+
Enabled: false
|
45
|
+
|
46
|
+
# Prefer assert_not over assert !
|
47
|
+
Rails/AssertNot:
|
48
|
+
Include:
|
49
|
+
- 'test/**/*'
|
50
|
+
|
51
|
+
# Prefer assert_not_x over refute_x
|
52
|
+
Rails/RefuteMethods:
|
53
|
+
Include:
|
54
|
+
- 'test/**/*'
|
23
55
|
|
24
56
|
# Prefer &&/|| over and/or.
|
25
57
|
Style/AndOr:
|
@@ -29,6 +61,7 @@ Style/AndOr:
|
|
29
61
|
# method call.
|
30
62
|
Style/BracesAroundHashParameters:
|
31
63
|
Enabled: true
|
64
|
+
EnforcedStyle: context_dependent
|
32
65
|
|
33
66
|
# Align `when` with `case`.
|
34
67
|
Layout/CaseIndentation:
|
@@ -38,8 +71,20 @@ Layout/CaseIndentation:
|
|
38
71
|
Layout/CommentIndentation:
|
39
72
|
Enabled: true
|
40
73
|
|
41
|
-
|
42
|
-
|
74
|
+
Layout/ElseAlignment:
|
75
|
+
Enabled: true
|
76
|
+
|
77
|
+
# Align `end` with the matching keyword or starting expression except for
|
78
|
+
# assignments, where it should be aligned with the LHS.
|
79
|
+
Layout/EndAlignment:
|
80
|
+
Enabled: true
|
81
|
+
EnforcedStyleAlignWith: variable
|
82
|
+
AutoCorrect: true
|
83
|
+
|
84
|
+
Layout/EmptyLineAfterMagicComment:
|
85
|
+
Enabled: true
|
86
|
+
|
87
|
+
Layout/EmptyLinesAroundBlockBody:
|
43
88
|
Enabled: true
|
44
89
|
|
45
90
|
# In a regular class definition, no empty lines around the body.
|
@@ -54,7 +99,10 @@ Layout/EmptyLinesAroundMethodBody:
|
|
54
99
|
Layout/EmptyLinesAroundModuleBody:
|
55
100
|
Enabled: true
|
56
101
|
|
57
|
-
|
102
|
+
Layout/IndentFirstArgument:
|
103
|
+
Enabled: true
|
104
|
+
|
105
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
58
106
|
Style/HashSyntax:
|
59
107
|
Enabled: true
|
60
108
|
|
@@ -62,18 +110,24 @@ Style/HashSyntax:
|
|
62
110
|
# extra level of indentation.
|
63
111
|
Layout/IndentationConsistency:
|
64
112
|
Enabled: true
|
65
|
-
EnforcedStyle:
|
113
|
+
EnforcedStyle: rails
|
66
114
|
|
67
115
|
# Two spaces, no tabs (for indentation).
|
68
116
|
Layout/IndentationWidth:
|
69
117
|
Enabled: true
|
70
118
|
|
119
|
+
Layout/LeadingCommentSpace:
|
120
|
+
Enabled: true
|
121
|
+
|
71
122
|
Layout/SpaceAfterColon:
|
72
123
|
Enabled: true
|
73
124
|
|
74
125
|
Layout/SpaceAfterComma:
|
75
126
|
Enabled: true
|
76
127
|
|
128
|
+
Layout/SpaceAfterSemicolon:
|
129
|
+
Enabled: true
|
130
|
+
|
77
131
|
Layout/SpaceAroundEqualsInParameterDefault:
|
78
132
|
Enabled: true
|
79
133
|
|
@@ -83,13 +137,26 @@ Layout/SpaceAroundKeyword:
|
|
83
137
|
Layout/SpaceAroundOperators:
|
84
138
|
Enabled: true
|
85
139
|
|
140
|
+
Layout/SpaceBeforeComma:
|
141
|
+
Enabled: true
|
142
|
+
|
86
143
|
Layout/SpaceBeforeFirstArg:
|
87
144
|
Enabled: true
|
88
145
|
|
146
|
+
Style/DefWithParentheses:
|
147
|
+
Enabled: true
|
148
|
+
|
89
149
|
# Defining a method with parameters needs parentheses.
|
90
150
|
Style/MethodDefParentheses:
|
91
151
|
Enabled: true
|
92
152
|
|
153
|
+
Style/FrozenStringLiteralComment:
|
154
|
+
Enabled: true
|
155
|
+
EnforcedStyle: always
|
156
|
+
|
157
|
+
Style/RedundantFreeze:
|
158
|
+
Enabled: true
|
159
|
+
|
93
160
|
# Use `foo {}` not `foo{}`.
|
94
161
|
Layout/SpaceBeforeBlockBraces:
|
95
162
|
Enabled: true
|
@@ -97,10 +164,11 @@ Layout/SpaceBeforeBlockBraces:
|
|
97
164
|
# Use `foo { bar }` not `foo {bar}`.
|
98
165
|
Layout/SpaceInsideBlockBraces:
|
99
166
|
Enabled: true
|
167
|
+
EnforcedStyleForEmptyBraces: space
|
100
168
|
|
101
|
-
# Use `{a: 1}` not `{
|
169
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
102
170
|
Layout/SpaceInsideHashLiteralBraces:
|
103
|
-
Enabled:
|
171
|
+
Enabled: true
|
104
172
|
|
105
173
|
Layout/SpaceInsideParens:
|
106
174
|
Enabled: true
|
@@ -126,45 +194,72 @@ Layout/TrailingWhitespace:
|
|
126
194
|
Style/UnneededPercentQ:
|
127
195
|
Enabled: true
|
128
196
|
|
129
|
-
|
130
|
-
|
131
|
-
|
197
|
+
Lint/AmbiguousOperator:
|
198
|
+
Enabled: true
|
199
|
+
|
200
|
+
Lint/AmbiguousRegexpLiteral:
|
201
|
+
Enabled: true
|
202
|
+
|
203
|
+
Lint/ErbNewArguments:
|
132
204
|
Enabled: true
|
133
|
-
EnforcedStyleAlignWith: variable
|
134
205
|
|
135
206
|
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
136
207
|
Lint/RequireParentheses:
|
137
208
|
Enabled: true
|
138
209
|
|
139
|
-
|
140
|
-
Enabled:
|
210
|
+
Lint/ShadowingOuterLocalVariable:
|
211
|
+
Enabled: true
|
141
212
|
|
142
|
-
|
143
|
-
Enabled:
|
213
|
+
Lint/StringConversionInInterpolation:
|
214
|
+
Enabled: true
|
144
215
|
|
145
|
-
|
146
|
-
Enabled:
|
216
|
+
Lint/UriEscapeUnescape:
|
217
|
+
Enabled: true
|
147
218
|
|
148
|
-
|
149
|
-
Enabled:
|
219
|
+
Lint/UselessAssignment:
|
220
|
+
Enabled: true
|
150
221
|
|
151
|
-
|
152
|
-
Enabled:
|
222
|
+
Lint/DeprecatedClassMethods:
|
223
|
+
Enabled: true
|
153
224
|
|
154
|
-
|
155
|
-
Enabled:
|
225
|
+
Style/ParenthesesAroundCondition:
|
226
|
+
Enabled: true
|
156
227
|
|
157
|
-
|
158
|
-
Enabled:
|
228
|
+
Style/RedundantBegin:
|
229
|
+
Enabled: true
|
159
230
|
|
160
|
-
|
161
|
-
Enabled:
|
231
|
+
Style/RedundantReturn:
|
232
|
+
Enabled: true
|
233
|
+
AllowMultipleReturnValues: true
|
162
234
|
|
163
|
-
Style/
|
164
|
-
Enabled:
|
235
|
+
Style/Semicolon:
|
236
|
+
Enabled: true
|
237
|
+
AllowAsExpressionSeparator: true
|
165
238
|
|
166
|
-
|
167
|
-
|
239
|
+
# Prefer Foo.method over Foo::method
|
240
|
+
Style/ColonMethodCall:
|
241
|
+
Enabled: true
|
168
242
|
|
169
|
-
Style/
|
170
|
-
Enabled:
|
243
|
+
Style/TrivialAccessors:
|
244
|
+
Enabled: true
|
245
|
+
|
246
|
+
Performance/FlatMap:
|
247
|
+
Enabled: true
|
248
|
+
|
249
|
+
Performance/RedundantMerge:
|
250
|
+
Enabled: true
|
251
|
+
|
252
|
+
Performance/StartWith:
|
253
|
+
Enabled: true
|
254
|
+
|
255
|
+
Performance/EndWith:
|
256
|
+
Enabled: true
|
257
|
+
|
258
|
+
Performance/RegexpMatch:
|
259
|
+
Enabled: true
|
260
|
+
|
261
|
+
Performance/ReverseEach:
|
262
|
+
Enabled: true
|
263
|
+
|
264
|
+
Performance/UnfreezeString:
|
265
|
+
Enabled: true
|
data/Gemfile
CHANGED
@@ -6,7 +6,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
6
6
|
gemspec
|
7
7
|
|
8
8
|
# Dummy app
|
9
|
-
gem "rails", "~> 6.0.0.
|
9
|
+
gem "rails", "~> 6.0.0.rc1"
|
10
10
|
gem "sqlite3"
|
11
11
|
|
12
12
|
# Use Puma as the app server
|
@@ -16,7 +16,7 @@ gem "pry-rails"
|
|
16
16
|
|
17
17
|
gem "listen", ">= 3.0.5", "< 3.2"
|
18
18
|
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
|
19
|
-
gem "web-console"
|
19
|
+
gem "web-console", group: :development
|
20
20
|
# Call "byebug" anywhere in the code to stop execution and get a debugger console
|
21
21
|
gem "pry-byebug"
|
22
22
|
|
@@ -17,7 +17,7 @@ def run(input: {}, sources:, instructions: nil,
|
|
17
17
|
environment_variables: {})
|
18
18
|
packer = ScriptCore::Protocol.packer_factory.packer
|
19
19
|
|
20
|
-
payload = {input: input, sources: sources}
|
20
|
+
payload = { input: input, sources: sources }
|
21
21
|
payload[:library] = instructions if instructions
|
22
22
|
encoded = packer.pack(payload)
|
23
23
|
|
@@ -71,61 +71,61 @@ def to_result
|
|
71
71
|
|
72
72
|
private
|
73
73
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
74
|
+
def read(raw_message)
|
75
|
+
type, data = raw_message
|
76
|
+
case type
|
77
|
+
when :output then read_output(data)
|
78
|
+
when :error then read_error(data)
|
79
|
+
when :measurement then read_measurement(data)
|
80
|
+
when :stat then read_stat(data)
|
81
|
+
end
|
81
82
|
end
|
82
|
-
end
|
83
83
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
84
|
+
def read_output(data)
|
85
|
+
@output = data[:extracted]
|
86
|
+
@stdout = data[:stdout]
|
87
|
+
end
|
88
88
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
89
|
+
def read_error(data)
|
90
|
+
@errors <<
|
91
|
+
case data[:__type]
|
92
|
+
when :runtime
|
93
|
+
EngineRuntimeError.new(
|
94
|
+
data[:message],
|
95
|
+
guest_backtrace: data[:backtrace]
|
96
|
+
)
|
97
|
+
when :syntax
|
98
|
+
EngineSyntaxError.new(
|
99
|
+
data[:message],
|
100
|
+
filename: data[:filename],
|
101
|
+
line_number: data[:line_number],
|
102
|
+
column: data[:column]
|
103
|
+
)
|
104
|
+
when :unknown_type
|
105
|
+
EngineUnknownTypeError.new(type: data[:type])
|
106
|
+
when :unknown_ext
|
107
|
+
EngineUnknownExtError.new(type: data[:type])
|
108
|
+
else
|
109
|
+
EngineInternalError.new("unknown error: #{data}")
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def read_measurement(data)
|
114
|
+
name, microseconds = *data
|
115
|
+
if @measurements.key?(name)
|
116
|
+
@measurements[name] += microseconds
|
108
117
|
else
|
109
|
-
|
118
|
+
@measurements[name] = microseconds
|
110
119
|
end
|
111
|
-
end
|
112
|
-
|
113
|
-
def read_measurement(data)
|
114
|
-
name, microseconds = *data
|
115
|
-
if @measurements.key?(name)
|
116
|
-
@measurements[name] += microseconds
|
117
|
-
else
|
118
|
-
@measurements[name] = microseconds
|
119
120
|
end
|
120
|
-
end
|
121
121
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
122
|
+
def read_stat(data)
|
123
|
+
unless @stat == ScriptCore::Stat::Null
|
124
|
+
@errors << ScriptCore::DuplicateMessageError.new(
|
125
|
+
"duplicate stat message"
|
126
|
+
)
|
127
|
+
end
|
128
|
+
@stat = ScriptCore::Stat.new(data)
|
127
129
|
end
|
128
|
-
@stat = ScriptCore::Stat.new(data)
|
129
|
-
end
|
130
130
|
end
|
131
131
|
end
|
data/lib/script_core/version.rb
CHANGED
data/lib/tasks/script_core.rake
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
namespace :engine do
|
9
9
|
desc "Create a skeletal engine that can be customize at the path you specify"
|
10
10
|
task :new do
|
11
|
-
ARGV.each { |a| task(a.to_sym) {} }
|
11
|
+
ARGV.each { |a| task(a.to_sym) { } }
|
12
12
|
|
13
13
|
name = ARGV[1] || DEFAULT_ENGINE_NAME
|
14
14
|
unless /\A[a-z_]+\Z/.match?(name)
|
@@ -27,18 +27,24 @@
|
|
27
27
|
|
28
28
|
desc "Build engine executables"
|
29
29
|
task :build do
|
30
|
-
ARGV.each { |a| task(a.to_sym) {} }
|
30
|
+
ARGV.each { |a| task(a.to_sym) { } }
|
31
|
+
|
32
|
+
path = Pathname.new(ENV["ENGINE_PATH"]).realpath rescue nil if ENV["ENGINE_PATH"].present?
|
33
|
+
engine_root =
|
34
|
+
if path
|
35
|
+
path
|
36
|
+
else
|
37
|
+
name = ARGV[1] || DEFAULT_ENGINE_NAME
|
38
|
+
unless /\A[a-z_]+\Z/.match?(name)
|
39
|
+
puts "Must provide a valid engine name."
|
40
|
+
exit 1
|
41
|
+
end
|
42
|
+
Rails.root.join(name)
|
43
|
+
end
|
31
44
|
|
32
|
-
name = ARGV[1] || DEFAULT_ENGINE_NAME
|
33
|
-
unless /\A[a-z_]+\Z/.match?(name)
|
34
|
-
puts "Must provide a valid engine name."
|
35
|
-
exit 1
|
36
|
-
end
|
37
|
-
|
38
|
-
engine_root = Rails.root.join(name)
|
39
45
|
unless Dir.exist?(engine_root)
|
40
46
|
puts "Engine home `#{engine_root}` doesn't exists."
|
41
|
-
puts "You should run `rake script_core:engine:new
|
47
|
+
puts "You should run `rake script_core:engine:new` to create it first."
|
42
48
|
exit 1
|
43
49
|
end
|
44
50
|
|
@@ -51,24 +57,30 @@
|
|
51
57
|
end
|
52
58
|
|
53
59
|
Dir.chdir(SCRIPT_CORE_ROOT.join("ext/enterprise_script_service")) do
|
54
|
-
sh("#{env_vars} #{Rails.root.join('bin
|
60
|
+
sh("#{env_vars} #{Rails.root.join('bin', 'bundle')} exec rake")
|
55
61
|
end
|
56
62
|
end
|
57
63
|
|
58
64
|
desc "Compile engine lib"
|
59
65
|
task :compile_lib do
|
60
|
-
ARGV.each { |a| task(a.to_sym) {} }
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
66
|
+
ARGV.each { |a| task(a.to_sym) { } }
|
67
|
+
|
68
|
+
path = Pathname.new(ENV["ENGINE_PATH"]).realpath rescue nil if ENV["ENGINE_PATH"].present?
|
69
|
+
engine_root =
|
70
|
+
if path
|
71
|
+
path
|
72
|
+
else
|
73
|
+
name = ARGV[1] || DEFAULT_ENGINE_NAME
|
74
|
+
unless /\A[a-z_]+\Z/.match?(name)
|
75
|
+
puts "Must provide a valid engine name."
|
76
|
+
exit 1
|
77
|
+
end
|
78
|
+
Rails.root.join(name)
|
79
|
+
end
|
67
80
|
|
68
|
-
engine_root = Rails.root.join(name)
|
69
81
|
unless Dir.exist?(engine_root)
|
70
82
|
puts "Engine home `#{engine_root}` doesn't exists."
|
71
|
-
puts "You should run `rake script_core:engine:new
|
83
|
+
puts "You should run `rake script_core:engine:new` to create it first."
|
72
84
|
exit 1
|
73
85
|
end
|
74
86
|
|
@@ -91,24 +103,28 @@
|
|
91
103
|
|
92
104
|
desc "Clean engine compiled files"
|
93
105
|
task :clean do
|
94
|
-
ARGV.each { |a| task(a.to_sym) {} }
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
106
|
+
ARGV.each { |a| task(a.to_sym) { } }
|
107
|
+
|
108
|
+
path = Pathname.new(ENV["ENGINE_PATH"]).realpath rescue nil if ENV["ENGINE_PATH"].present?
|
109
|
+
engine_root =
|
110
|
+
if path
|
111
|
+
path
|
112
|
+
else
|
113
|
+
name = ARGV[1] || DEFAULT_ENGINE_NAME
|
114
|
+
unless /\A[a-z_]+\Z/.match?(name)
|
115
|
+
puts "Must provide a valid engine name."
|
116
|
+
exit 1
|
117
|
+
end
|
118
|
+
Rails.root.join(name)
|
119
|
+
end
|
101
120
|
|
102
|
-
engine_root = Rails.root.join(name)
|
103
121
|
unless Dir.exist?(engine_root)
|
104
122
|
puts "Engine home `#{engine_root}` doesn't exists."
|
105
123
|
exit 1
|
106
124
|
end
|
107
125
|
|
108
126
|
bin_path = engine_root.join("bin")
|
109
|
-
if Dir.exist?(bin_path)
|
110
|
-
FileUtils.remove_dir engine_root.join("bin")
|
111
|
-
end
|
127
|
+
FileUtils.remove_dir engine_root.join("bin") if Dir.exist?(bin_path)
|
112
128
|
end
|
113
129
|
end
|
114
130
|
end
|