railsbuilder 0.1.11 → 0.1.12
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
- checksums.yaml.gz.sig +0 -0
- data/lib/railsbuilder.rb +77 -5
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +2 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6794f4c2e0e4f6403958c51e9c113ff42fad11b
|
4
|
+
data.tar.gz: 94b747e141aae1bd12754846aae778f87898cb55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cefd11e1f458f8c37cd5c03d79d529e7873ab1030de80e7b429f1496a19150f9b58de20ba070ea6ed0ae94f5fd241aada91a7c0c69aef9b50d581bb3735018d
|
7
|
+
data.tar.gz: effe9db74ca5a0aa83399cddf5ceb20e1357e335484135ab90f864f51d0aab35b47cf6a4c70fb109888fbf6fd99b478ab841ee420ad77e667de398e34135c4f3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/railsbuilder.rb
CHANGED
@@ -6,10 +6,13 @@ require 'fileutils'
|
|
6
6
|
require 'io/console'
|
7
7
|
require 'lineparser'
|
8
8
|
require 'rdiscount'
|
9
|
+
require 'yaml'
|
9
10
|
|
10
11
|
|
11
12
|
class RailsBuilder
|
12
13
|
|
14
|
+
attr_accessor :notifications
|
15
|
+
|
13
16
|
def initialize(filepath=nil)
|
14
17
|
|
15
18
|
buffer = File.read File.expand_path(filepath) if filepath
|
@@ -31,17 +34,19 @@ class RailsBuilder
|
|
31
34
|
]
|
32
35
|
|
33
36
|
parse(patterns, buffer.gsub(/^(\s{,5})#/,'\1;'))
|
37
|
+
@parent_path = Dir.pwd
|
38
|
+
@notifications = []
|
39
|
+
|
34
40
|
end
|
35
41
|
|
36
42
|
def build()
|
37
43
|
|
38
44
|
doc = self.to_doc.root
|
39
|
-
|
45
|
+
|
40
46
|
@app = app = doc.element('app/@app')
|
41
47
|
return unless app
|
42
|
-
|
48
|
+
|
43
49
|
app_path = doc.element('app_path/@app_path')
|
44
|
-
|
45
50
|
Dir.chdir app_path if app_path
|
46
51
|
|
47
52
|
unless File.exists? app then
|
@@ -51,6 +56,11 @@ class RailsBuilder
|
|
51
56
|
puts 'Are you sure you want to build a new app? (Y/n)'
|
52
57
|
|
53
58
|
shell command
|
59
|
+
|
60
|
+
trigger = "config: new app entry found which doesn't yet " \
|
61
|
+
+ "exist as a file directory"
|
62
|
+
activity = "new Rails app created"
|
63
|
+
@notifications << [trigger,activity]
|
54
64
|
end
|
55
65
|
|
56
66
|
Dir.chdir app
|
@@ -69,9 +79,15 @@ class RailsBuilder
|
|
69
79
|
regex = / #( root 'welcome#index')/
|
70
80
|
|
71
81
|
if buffer[regex] or not buffer[/root '#{root}'/] then
|
82
|
+
|
72
83
|
puts ':: updating ' + routes
|
73
84
|
File.write routes, buffer.sub(regex, ' \1')\
|
74
85
|
.sub(/'[^']+'/,"'" + root + "'")
|
86
|
+
|
87
|
+
trigger = "config: new root added or changed"
|
88
|
+
activity = "file: config/routes.rb modified"
|
89
|
+
data = /^\s*root\s+'#{root}'/
|
90
|
+
@notifications << [trigger, activity, data]
|
75
91
|
end
|
76
92
|
end
|
77
93
|
|
@@ -87,13 +103,19 @@ class RailsBuilder
|
|
87
103
|
File.write routes, buffer.sub(/\n resources :\w+/,'')\
|
88
104
|
.sub(/ # resources :products/) \
|
89
105
|
{|x| x + "\n resources :#{resources}"}
|
106
|
+
|
107
|
+
trigger = "config: resources entry has been changed"
|
108
|
+
activity = "file: config/routes.rb modified"
|
109
|
+
data = /resources\s+:#{resources}/
|
110
|
+
@notifications << [trigger, activity, data]
|
90
111
|
end
|
91
112
|
end
|
92
113
|
|
93
114
|
doc.xpath('resource').each do |node|
|
94
|
-
|
115
|
+
|
95
116
|
resource = node.attributes[:resource]
|
96
117
|
|
118
|
+
|
97
119
|
next unless resource
|
98
120
|
|
99
121
|
controller = resource + '_controller.rb'
|
@@ -114,6 +136,10 @@ class RailsBuilder
|
|
114
136
|
puts 'Are you sure you want to generate a controller? (Y/n)'
|
115
137
|
|
116
138
|
shell command
|
139
|
+
|
140
|
+
trigger = "config: resources entry has been changed"
|
141
|
+
activity = "file: created app/controllers/posts_controller.rb"
|
142
|
+
@notifications << [trigger, activity]
|
117
143
|
end
|
118
144
|
|
119
145
|
# if the model fields are defined let's generate the model
|
@@ -135,15 +161,25 @@ class RailsBuilder
|
|
135
161
|
r = shell command
|
136
162
|
next if r == :abort
|
137
163
|
|
164
|
+
trigger = "config: a new model with associated entries has "
|
165
|
+
+ "been created"
|
166
|
+
activity = "file: created app/models/#{class_name.downcase}.rb"
|
167
|
+
@notifications << [trigger, activity]
|
168
|
+
|
138
169
|
# -- next command ---------------------
|
139
170
|
|
140
171
|
command = "rake db:migrate"
|
141
172
|
|
142
173
|
puts ":: preparing to execute shell command: `#{command}`"
|
143
|
-
puts 'Are you sure you want to commit this '
|
174
|
+
puts 'Are you sure you want to commit this '
|
144
175
|
+ 'database operation? (Y/n)'
|
145
176
|
shell command
|
146
177
|
|
178
|
+
trigger = "config: a new model with associated entries has "
|
179
|
+
+ "been created"
|
180
|
+
activity = "database: created"
|
181
|
+
@notifications << [trigger, activity]
|
182
|
+
|
147
183
|
when :resource_cv
|
148
184
|
|
149
185
|
# fetch the action name
|
@@ -166,8 +202,15 @@ class RailsBuilder
|
|
166
202
|
regex = /class \w+Controller < ApplicationController/
|
167
203
|
|
168
204
|
unless File.exists? view_file then
|
205
|
+
|
169
206
|
File.write view_file, ''
|
170
207
|
puts ':: created ' + page
|
208
|
+
|
209
|
+
trigger = "config: the 1st action has been "\
|
210
|
+
+ "created in the controller"
|
211
|
+
activity = "file: created " + view_file
|
212
|
+
@notifications << [trigger, activity]
|
213
|
+
|
171
214
|
end
|
172
215
|
|
173
216
|
child.elements.each do |av|
|
@@ -177,9 +220,16 @@ class RailsBuilder
|
|
177
220
|
page = action + '.html.erb'
|
178
221
|
|
179
222
|
unless buffer[/\bdef #{action}/] then
|
223
|
+
|
180
224
|
buffer.sub!(regex) {|x| x + "\n def #{action}\n end\n" }
|
181
225
|
File.write controller_file, buffer
|
182
226
|
puts ':: updated ' + controller
|
227
|
+
|
228
|
+
trigger = "config: an action has been "\
|
229
|
+
+ "created in the controller + views section"
|
230
|
+
activity = "file: updated " + controller_file
|
231
|
+
data = /def #{action}/
|
232
|
+
@notifications << [trigger, activity, data]
|
183
233
|
end
|
184
234
|
|
185
235
|
av_type = av.attributes[:captures1]
|
@@ -193,6 +243,12 @@ class RailsBuilder
|
|
193
243
|
unless File.exists? view_file then
|
194
244
|
File.write view_file, ''
|
195
245
|
puts ':: created ' + page
|
246
|
+
|
247
|
+
trigger = "config: an action has been "\
|
248
|
+
+ "created in the controller + views section"
|
249
|
+
activity = "file: updated " + controller_file
|
250
|
+
data = /def #{action}/
|
251
|
+
@notifications << [trigger, activity, data]
|
196
252
|
end
|
197
253
|
|
198
254
|
# does it contain a renderer? e.g. markdown
|
@@ -219,6 +275,12 @@ class RailsBuilder
|
|
219
275
|
unless buffer[/#{html}/] then
|
220
276
|
File.write view_file, html + "\n" + buffer
|
221
277
|
puts ':: updated ' + view_file
|
278
|
+
|
279
|
+
trigger = "config: a rendering block has been "\
|
280
|
+
+ "created or modified for an action"
|
281
|
+
activity = "file: updated " + view_file
|
282
|
+
data = /#{html}/
|
283
|
+
@notifications << [trigger, activity, data]
|
222
284
|
end
|
223
285
|
end
|
224
286
|
|
@@ -235,6 +297,14 @@ class RailsBuilder
|
|
235
297
|
puts 'Are you sure you want to generate a ' \
|
236
298
|
+ 'controller action? (Y/n)'
|
237
299
|
shell command
|
300
|
+
|
301
|
+
trigger = "config: a new action has been "\
|
302
|
+
+ "created in the controller + views section for a "\
|
303
|
+
+ "resource which doesn't have a model and the "\
|
304
|
+
+ "controller file doesn't yet exist."
|
305
|
+
activity = "file: created " + controller_file
|
306
|
+
@notifications << [trigger, activity]
|
307
|
+
|
238
308
|
end
|
239
309
|
end
|
240
310
|
end
|
@@ -243,6 +313,8 @@ class RailsBuilder
|
|
243
313
|
end # / child iterator
|
244
314
|
end
|
245
315
|
|
316
|
+
Dir.chdir @parent_path
|
317
|
+
@notifications.to_yaml
|
246
318
|
end
|
247
319
|
|
248
320
|
def save()
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED