my-simon 0.1.6 → 0.1.7

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.
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