ditto_code 0.1.8 → 0.1.9
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/bin/dittoc +5 -2
- data/lib/ditto_code.rb +11 -3
- data/lib/dittocode/environments.rb +23 -0
- data/lib/dittocode/exec.rb +2 -12
- data/lib/dittocode/hold_file.rb +19 -0
- data/lib/dittocode/parse.rb +65 -10
- data/lib/dittocode/remove_file.rb +19 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89878b0fa06bbd81f76c75ccd999d978cd61a25b
|
4
|
+
data.tar.gz: 4e890cabd15a0063b01cc9306759707a361e7b2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce6fefc7f72c9584ebce1a52208146b62ceb97f4783723dd044cadd3363768d3e0811922568aba528ba28f9a57412c2db4cddb390ddd5a566be89fb53b81e743
|
7
|
+
data.tar.gz: 54907456795f48ee4e6d523324fe9aaccb6fcc51e1a888f2284fabd5d6883365d833d30b18a471b50fc57a65299684ec5c72d85a6bb74f7b0d1623336d0c885e
|
data/bin/dittoc
CHANGED
@@ -81,7 +81,7 @@ def iterateFolder(folder)
|
|
81
81
|
end
|
82
82
|
|
83
83
|
# ===============================================================
|
84
|
-
#
|
84
|
+
# VARIABLES
|
85
85
|
# ===============================================================
|
86
86
|
|
87
87
|
$isFolder = false;
|
@@ -147,8 +147,11 @@ end
|
|
147
147
|
|
148
148
|
unless @stop
|
149
149
|
|
150
|
+
# Initiate the global var for the parser
|
151
|
+
ENV["DITTOCODE_ENV"] = $environment
|
152
|
+
|
150
153
|
# Initiate ditto
|
151
|
-
@ditto = DittoCode::Parse.new($
|
154
|
+
@ditto = DittoCode::Parse.new($override, $verbose, $indent)
|
152
155
|
|
153
156
|
# Check if the user has introduce a folder/file
|
154
157
|
if $folder.empty?
|
data/lib/ditto_code.rb
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
require 'dittocode/parse'
|
2
2
|
require 'dittocode/exec'
|
3
3
|
require 'dittocode/talk'
|
4
|
+
require 'dittocode/remove_file'
|
5
|
+
require 'dittocode/hold_file'
|
6
|
+
require 'dittocode/environments'
|
7
|
+
include DittoCode::Environments
|
4
8
|
include DittoCode::Exec
|
5
9
|
include DittoCode::Talk
|
10
|
+
include DittoCode::RemoveFile
|
11
|
+
include DittoCode::HoldFile
|
6
12
|
|
7
13
|
module DittoCode
|
8
|
-
|
9
|
-
|
10
|
-
|
14
|
+
|
15
|
+
#def self.symbolize_keys h
|
16
|
+
# h.inject({}) { |opts,(k,v)| opts[(k.to_sym rescue k) || k] = v; opts }
|
17
|
+
#end
|
18
|
+
|
11
19
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module DittoCode
|
2
|
+
|
3
|
+
module Environments
|
4
|
+
|
5
|
+
# Check the presence of the environment constant
|
6
|
+
def check_env
|
7
|
+
if ENV["DITTOCODE_ENV"].nil? || ENV["DITTOCODE_ENV"].empty?
|
8
|
+
puts 'Ditto say -> Environment isn\'t declared'
|
9
|
+
end
|
10
|
+
@initialize = true
|
11
|
+
end
|
12
|
+
|
13
|
+
# True if the environment is included
|
14
|
+
def isIncluded? (environment)
|
15
|
+
|
16
|
+
if environment.split(",").include? ENV["DITTOCODE_ENV"]
|
17
|
+
true
|
18
|
+
else
|
19
|
+
false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/dittocode/exec.rb
CHANGED
@@ -7,23 +7,13 @@ module DittoCode
|
|
7
7
|
|
8
8
|
# check the env code
|
9
9
|
unless @initialize
|
10
|
-
check_env
|
10
|
+
DittoCode::Environments.check_env
|
11
11
|
end
|
12
12
|
|
13
|
-
if
|
13
|
+
if DittoCode::Environments.isIncluded? environment
|
14
14
|
yield
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
private
|
19
|
-
|
20
|
-
# Check the presence of the environment constant
|
21
|
-
def check_env
|
22
|
-
if ENV["DITTOCODE_ENV"].nil? || ENV["DITTOCODE_ENV"].empty?
|
23
|
-
puts 'Ditto say -> Environment isn\'t declared'
|
24
|
-
end
|
25
|
-
@initialize = true
|
26
|
-
end
|
27
18
|
end
|
28
|
-
|
29
19
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module DittoCode
|
2
|
+
|
3
|
+
@initialize = false
|
4
|
+
|
5
|
+
module HoldFile
|
6
|
+
def self.if (environment)
|
7
|
+
|
8
|
+
# check the env code
|
9
|
+
unless @initialize
|
10
|
+
DittoCode::Environments.check_env
|
11
|
+
end
|
12
|
+
|
13
|
+
unless DittoCode::Environments.isIncluded? environment
|
14
|
+
exit
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/dittocode/parse.rb
CHANGED
@@ -7,11 +7,12 @@ module DittoCode
|
|
7
7
|
require 'rainbow/ext/string'
|
8
8
|
|
9
9
|
# Initialize the environment
|
10
|
-
def initialize(
|
11
|
-
@env =
|
10
|
+
def initialize(override, verbose, indent)
|
11
|
+
@env = ENV["DITTOCODE_ENV"]
|
12
12
|
@override = override
|
13
13
|
@verbose = verbose
|
14
14
|
@indent = indent
|
15
|
+
@remove = false
|
15
16
|
end
|
16
17
|
|
17
18
|
# Transform the file based in the environment
|
@@ -43,17 +44,45 @@ module DittoCode
|
|
43
44
|
if /[\s]*require[\s]*['|"](ditto_code)['|"]/.match(line).nil?
|
44
45
|
|
45
46
|
if @isView
|
46
|
-
|
47
|
+
# rem can stop the execution of this file
|
48
|
+
rem = /[\s]*<%[\s]*DittoCode::(?<action>Remove|Hold)File.if[\s]+['|"](?<environment>[a-zA-Z,]+)['|"][\s]*%>/.match(line)
|
49
|
+
# m catch a block of dittoCode::Exec
|
50
|
+
m = /[\s]*<%[\s]*DittoCode::Exec.if[\s]+['|"](?<environment>[a-zA-Z,]+)['|"][\s]+do[\s]*%>/.match(line)
|
47
51
|
else
|
48
|
-
|
52
|
+
rem = /[\s]*DittoCode::(?<action>Remove|Hold)File.if[\s]+['|"](?<environment>[a-zA-Z,]+)['|"][\s]*/.match(line)
|
53
|
+
m = /[\s]*DittoCode::Exec.if[\s]+['|"](?<environment>[a-zA-Z,]+)['|"] do/.match(line)
|
49
54
|
end
|
50
55
|
|
51
|
-
if
|
56
|
+
if rem
|
57
|
+
|
58
|
+
# Remove the files and stop the execution of this script
|
59
|
+
if rem[:action] == 'Remove'
|
60
|
+
# Remove action
|
61
|
+
if DittoCode::Environments.isIncluded? rem[:environment]
|
62
|
+
@removed = true
|
63
|
+
break
|
64
|
+
end
|
65
|
+
|
66
|
+
else
|
67
|
+
|
68
|
+
# Hold action
|
69
|
+
unless DittoCode::Environments.isIncluded? rem[:environment]
|
70
|
+
@removed = true
|
71
|
+
break
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
dittos += 1
|
77
|
+
|
78
|
+
elsif m
|
79
|
+
# A block as been detected
|
52
80
|
actions[:env] = m[:environment]
|
53
81
|
actions[:atack] = true;
|
54
82
|
actions[:ends] = 1;
|
55
83
|
else
|
56
84
|
|
85
|
+
# Ditto is atacking?
|
57
86
|
if !actions[:atack]
|
58
87
|
if file.eof?
|
59
88
|
# Don't print a \n in the last line
|
@@ -77,6 +106,7 @@ module DittoCode
|
|
77
106
|
check_with_indent(out_file, line)
|
78
107
|
end
|
79
108
|
|
109
|
+
# -1 end
|
80
110
|
actions[:ends] -= 1
|
81
111
|
|
82
112
|
else
|
@@ -96,15 +126,22 @@ module DittoCode
|
|
96
126
|
|
97
127
|
end
|
98
128
|
|
129
|
+
else
|
130
|
+
# We delete the line require 'ditto_code'
|
131
|
+
dittos += 1
|
99
132
|
end
|
100
133
|
|
101
134
|
end
|
102
135
|
|
103
|
-
if
|
104
|
-
|
136
|
+
# Check if the file is removed
|
137
|
+
if @removed
|
138
|
+
say "[ "+"OK".color("64d67f")+" ] file #{@dir_name}#{@file_name} as been removed"
|
139
|
+
elsif @verbose || dittos != 0
|
140
|
+
say "[ "+"OK".color("64d67f")+" ] #{dittos} lines ditted on #{@dir_name}#{@file_name}"
|
105
141
|
end
|
106
142
|
|
107
|
-
|
143
|
+
# Close and save the file
|
144
|
+
closeAndSaveFile(out_file)
|
108
145
|
|
109
146
|
rescue => e
|
110
147
|
|
@@ -193,12 +230,30 @@ module DittoCode
|
|
193
230
|
# file => file to close
|
194
231
|
# file_name => name of the file
|
195
232
|
# file_path => path of the original file
|
196
|
-
def
|
233
|
+
def closeAndSaveFile(file)
|
197
234
|
|
198
235
|
# Close the file
|
199
236
|
file.close;
|
200
237
|
|
201
|
-
if
|
238
|
+
# Check if we must to remove the file
|
239
|
+
if @removed
|
240
|
+
|
241
|
+
# We need to remove
|
242
|
+
if @override
|
243
|
+
|
244
|
+
if @isView
|
245
|
+
File.delete("#{@dir_name}#{@file_name}.erb")
|
246
|
+
else
|
247
|
+
File.delete("#{@dir_name}#{@file_name}.rb")
|
248
|
+
end
|
249
|
+
|
250
|
+
File.delete(file)
|
251
|
+
else
|
252
|
+
File.delete(file)
|
253
|
+
end
|
254
|
+
|
255
|
+
elsif @override
|
256
|
+
# No delete, but override?
|
202
257
|
if @isView
|
203
258
|
File.delete("#{@dir_name}#{@file_name}.erb")
|
204
259
|
File.rename(file, "#{@dir_name}#{@file_name}.erb")
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module DittoCode
|
2
|
+
|
3
|
+
@initialize = false
|
4
|
+
|
5
|
+
module RemoveFile
|
6
|
+
def self.if (environment)
|
7
|
+
|
8
|
+
# check the env code
|
9
|
+
unless @initialize
|
10
|
+
DittoCode::Environments.check_env
|
11
|
+
end
|
12
|
+
|
13
|
+
if DittoCode::Environments.isIncluded? environment
|
14
|
+
exit
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ditto_code
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Angel M Miguel
|
@@ -47,8 +47,11 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- bin/dittoc
|
49
49
|
- lib/ditto_code.rb
|
50
|
+
- lib/dittocode/environments.rb
|
50
51
|
- lib/dittocode/exec.rb
|
52
|
+
- lib/dittocode/hold_file.rb
|
51
53
|
- lib/dittocode/parse.rb
|
54
|
+
- lib/dittocode/remove_file.rb
|
52
55
|
- lib/dittocode/talk.rb
|
53
56
|
homepage: https://github.com/Angelmmiguel/ditto_code
|
54
57
|
licenses:
|