my-simon 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/VERSION +1 -1
  2. data/bin/simon +4 -1
  3. data/lib/simon.rb +85 -9
  4. data/my-simon.gemspec +2 -2
  5. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
data/bin/simon CHANGED
@@ -46,9 +46,12 @@ command :add do |c|
46
46
  # Do something or c.when_called My-simon::Commands::Add,
47
47
  case args[0]
48
48
  when 'heroku'
49
- cmd = "svn export #{svn_path_heroku} app --quiet --force"
49
+ simon_controller.check_hidden
50
+ cmd = "svn export #{svn_path_heroku} ./ --quiet --force"
50
51
  Kernel::system(cmd)
51
52
  simon_controller.msg "installing heroku files"
53
+ when 'section'
54
+ simon_controller.add_section
52
55
  end
53
56
  end
54
57
  end
data/lib/simon.rb CHANGED
@@ -14,34 +14,110 @@ class Simon
14
14
  puts "\n( ͡° ͜ʖ ͡°) --thank you"
15
15
  end
16
16
 
17
+ def check_hidden
18
+
19
+ if File.exist?("./.simon")
20
+ true
21
+ else
22
+ self.msg "Error: Simon needs to be in the root of the project"
23
+ exit
24
+ end
25
+ end
26
+
27
+ def make_hidden
28
+ outFile = File.new("./app/.simon", "w")
29
+ outFile.puts("Simon Added on #{Time.now.getutc}")
30
+ outFile.close
31
+ end
32
+
17
33
  def setup
18
- name_space = ask("Namespace [a-zA-Z0-9_] : ") { |q| q.echo = true }
34
+ name_space = ask("Namespace [a-zA-Z0-9_] : ") { |q| q.echo = true }
19
35
 
20
36
  @nms = Regexp.escape(name_space) # escape any special characters
21
37
  # javascript
22
- cmd = "find . -type f -name '*.js' -exec sed -i '' s/CHANGE_ME/#{@nms}/ {} +"
38
+ cmd = "find . -type f -name '*.js' -exec sed -i '' s/CHANGE_ME/#{@nms}/g {} +"
23
39
  Kernel::system(cmd)
24
40
  # php
25
- cmd = "find . -type f -name '*.php' -exec sed -i '' s/CHANGE_ME/#{@nms}/ {} +"
41
+ cmd = "find . -type f -name '*.php' -exec sed -i '' s/CHANGE_ME/#{@nms}/g {} +"
26
42
  Kernel::system(cmd)
27
43
  # html
28
- cmd = "find . -type f -name '*.html' -exec sed -i '' s/CHANGE_ME/#{@nms}/ {} +"
44
+ cmd = "find . -type f -name '*.html' -exec sed -i '' s/CHANGE_ME/#{@nms}/g {} +"
29
45
  Kernel::system(cmd)
30
46
  # tpl
31
- cmd = "find . -type f -name '*.tpl' -exec sed -i '' s/CHANGE_ME/#{@nms}/ {} +"
47
+ cmd = "find . -type f -name '*.tpl' -exec sed -i '' s/CHANGE_ME/#{@nms}/g {} +"
32
48
  Kernel::system(cmd)
33
49
 
34
- # simon_controller.find_and_replace './app'ateasub01@
35
-
36
-
37
- choice = choose("Setup Local DB?", :yes, :now)
50
+ # Kernel::system(cmd)
51
+ choice = choose("Setup Local DB?", :yes, :no)
38
52
 
39
53
  if choice === :yes
40
54
  self.msg 'setting up Local DB'
41
55
  end
42
56
 
43
57
  self.msg 'Setup complete!'
58
+ self.make_hidden
44
59
  self.complete
45
60
  end
46
61
 
62
+ def add_section
63
+ self.check_hidden
64
+ name_space = ask("Namespace [a-zA-Z0-9_] : ") { |q| q.echo = true }
65
+
66
+ @section = name_space.gsub(/[^0-9A-Za-z-]/, '')
67
+
68
+ # controller
69
+ self.msg "#Adding section: #{@section}"
70
+ ctrl_startpoint = "./scaffolding/simon/controller.tpl"
71
+ ctrl_endpoint = "./www/lib/php/controller/#{@section}.php"
72
+ cmd = "cp #{ctrl_startpoint} #{ctrl_endpoint}"
73
+ Kernel::system(cmd);
74
+ self.replace_once(ctrl_endpoint, "%name%", @section)
75
+ self.msg "#{ctrl_endpoint} added"
76
+
77
+ # view
78
+ view_startpoint = "./scaffolding/simon/view.tpl";
79
+ view_endpoint = "./www/lib/php/view/#{@section}.php";
80
+ cmd = "cp #{view_startpoint} #{view_endpoint}";
81
+ Kernel::system(cmd);
82
+ self.msg "#{view_endpoint} added"
83
+
84
+ # javascript
85
+ @js_section = name_space.gsub(/[^0-9A-Za-z]/, '')
86
+ javascript_startpoint = "./scaffolding/standards/js_template.js";
87
+ javascript_endpoint = "./www/lib/js/#{@section}.js";
88
+ cmd = "cp #{javascript_startpoint} #{javascript_endpoint}"
89
+ Kernel::system( cmd );
90
+ self.replace_once(javascript_endpoint, "CLASS_NAME", @js_section);
91
+ self.replace_once("./www/lib/php/template/footer.php", "<!-- END: DEV javascript -->", "<script src=\"/lib/js/#{@section}.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\t\t<!-- END: DEV javascript -->");
92
+ self.replace_once("./www/lib/js/master.js", "\*\/", "\* @depends #{@section}.js \n \*\/");
93
+ self.msg "#{javascript_endpoint} added"
94
+
95
+ # routes
96
+ routes = "./www/lib/php/system/config.routes.php";
97
+ self.replace_once(routes, "?>", "Router::add('/#{@section}', DIR_CTRL.'/#{@section}.php');\n ?>");
98
+ self.msg "#{routes} route added #{@section}"
99
+
100
+
101
+ # model
102
+ choice = choose("Add PHP Active Record Model?", :yes, :no)
103
+
104
+ if choice === :yes
105
+ model_startpoint = "./scaffolding/simon/model.tpl"
106
+ model_endpoint = "./www/lib/php/model/#{@section}.php"
107
+ cmd = "cp #{model_startpoint} #{model_endpoint}"
108
+ Kernel::system( cmd );
109
+ self.replace_once(model_endpoint, "%name%", @section)
110
+ self.msg "#{model_endpoint} added"
111
+ end
112
+ self.complete
113
+
114
+
115
+ end
116
+
117
+ def replace_once(file_name, search_string, replace_string)
118
+ text = File.read(file_name)
119
+ new_text = text.gsub(search_string, replace_string)
120
+ File.open(file_name, "w") {|file| file.puts new_text}
121
+ end
122
+
47
123
  end
data/my-simon.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "my-simon"
8
- s.version = "0.1.6"
8
+ s.version = "0.1.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Aaron McGuire"]
12
- s.date = "2013-02-04"
12
+ s.date = "2013-02-05"
13
13
  s.description = "CLI tool for Simon, the simple PHP project boilerplate!"
14
14
  s.email = "aaron.mcguire@evb.com"
15
15
  s.executables = ["/simon"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my-simon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-04 00:00:00.000000000 Z
12
+ date: 2013-02-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda