marv 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/.document +5 -0
  2. data/CHANGELOG.md +13 -0
  3. data/Gemfile +8 -10
  4. data/Gemfile.lock +16 -43
  5. data/LICENSE +0 -24
  6. data/README.md +9 -10
  7. data/Rakefile +4 -20
  8. data/VERSION +1 -1
  9. data/bin/marv +1 -1
  10. data/layouts/config/global.rb +31 -0
  11. data/layouts/config/project.rb +27 -0
  12. data/layouts/config/{router.php.erb → router.php} +5 -1
  13. data/layouts/config/server.rb +12 -0
  14. data/layouts/config/{wp-config.php.erb → wp-config.php} +0 -0
  15. data/layouts/plugin/{images → assets/images}/screenshot.png +0 -0
  16. data/layouts/plugin/{javascripts → assets/javascripts}/admin.coffee +0 -0
  17. data/layouts/plugin/{javascripts → assets/javascripts}/admin.js +0 -0
  18. data/layouts/plugin/{javascripts → assets/javascripts}/plugin.coffee +0 -0
  19. data/layouts/plugin/assets/javascripts/plugin.js +1 -0
  20. data/layouts/plugin/{stylesheets → assets/stylesheets}/plugin.scss +0 -0
  21. data/layouts/plugin/functions/{plugin.php.erb → plugin.php} +8 -7
  22. data/layouts/theme/{images → assets/images}/screenshot.png +0 -0
  23. data/layouts/theme/{javascripts → assets/javascripts}/admin.coffee +0 -0
  24. data/layouts/theme/{javascripts → assets/javascripts}/admin.js +0 -0
  25. data/layouts/theme/{javascripts → assets/javascripts}/theme.coffee +0 -0
  26. data/layouts/theme/{javascripts → assets/javascripts}/theme.js +0 -0
  27. data/layouts/theme/assets/stylesheets/_header.scss +18 -0
  28. data/layouts/theme/{stylesheets/style.scss.erb → assets/stylesheets/style.scss} +0 -0
  29. data/layouts/theme/functions/{functions.php.erb → functions.php} +0 -0
  30. data/layouts/theme/includes/{filters-admin.php.erb → filters-admin.php} +0 -0
  31. data/layouts/theme/includes/{filters.php.erb → filters.php} +0 -0
  32. data/layouts/theme/includes/{helpers.php.erb → helpers.php} +0 -0
  33. data/layouts/theme/templates/{404.php.erb → pages/404.php} +0 -0
  34. data/layouts/theme/templates/{archive.php.erb → pages/archive.php} +0 -0
  35. data/layouts/theme/templates/{author.php.erb → pages/author.php} +0 -0
  36. data/layouts/theme/templates/{search.php.erb → pages/search.php} +0 -0
  37. data/layouts/theme/templates/partials/{comments.php.erb → comments.php} +0 -0
  38. data/layouts/theme/templates/partials/{content-none.php.erb → content-none.php} +0 -0
  39. data/layouts/theme/templates/partials/{content.php.erb → content.php} +0 -0
  40. data/layouts/theme/templates/partials/{searchform.php.erb → searchform.php} +0 -0
  41. data/lib/marv.rb +8 -8
  42. data/lib/marv/cli.rb +15 -192
  43. data/lib/marv/cli/project.rb +57 -0
  44. data/lib/marv/cli/server.rb +65 -0
  45. data/lib/marv/global.rb +285 -0
  46. data/lib/marv/project/actions.rb +144 -0
  47. data/lib/marv/project/builder.rb +61 -0
  48. data/lib/marv/project/builder/assets.rb +112 -0
  49. data/lib/marv/{engines.rb → project/builder/engines.rb} +3 -1
  50. data/lib/marv/project/builder/functions.rb +112 -0
  51. data/lib/marv/project/builder/templates.rb +37 -0
  52. data/lib/marv/project/create.rb +139 -0
  53. data/lib/marv/project/guard.rb +83 -0
  54. data/lib/marv/project/guard/assets.rb +37 -0
  55. data/lib/{guard/marv → marv/project/guard}/config.rb +5 -9
  56. data/lib/marv/project/guard/functions.rb +44 -0
  57. data/lib/marv/project/guard/templates.rb +35 -0
  58. data/lib/marv/project/project.rb +149 -0
  59. data/lib/marv/server/actions.rb +79 -0
  60. data/lib/marv/server/create.rb +100 -0
  61. data/lib/marv/server/server.rb +201 -0
  62. data/marv.gemspec +69 -71
  63. metadata +82 -107
  64. data/.rspec +0 -1
  65. data/features/step_definitions/marv_steps.rb +0 -38
  66. data/features/support/env.rb +0 -17
  67. data/layouts/config/project-config.rb +0 -17
  68. data/layouts/plugin/javascripts/plugin.js +0 -1
  69. data/layouts/theme/stylesheets/_header.scss.erb +0 -18
  70. data/lib/guard/marv/assets.rb +0 -33
  71. data/lib/guard/marv/folders.rb +0 -33
  72. data/lib/guard/marv/functions.rb +0 -34
  73. data/lib/guard/marv/templates.rb +0 -33
  74. data/lib/marv/builder.rb +0 -355
  75. data/lib/marv/error.rb +0 -8
  76. data/lib/marv/generator.rb +0 -140
  77. data/lib/marv/guard.rb +0 -68
  78. data/lib/marv/project.rb +0 -134
  79. data/lib/marv/server.rb +0 -284
  80. data/spec/lib/marv/project_spec.rb +0 -34
  81. data/spec/spec_helper.rb +0 -12
@@ -0,0 +1,79 @@
1
+ require 'net/http'
2
+ require 'childprocess'
3
+
4
+ module Marv
5
+ module Server
6
+ class Actions
7
+
8
+ # Initialize actions
9
+ def initialize(server)
10
+ @server = server
11
+ @task = server.task
12
+ @path = server.path
13
+ @name = server.name
14
+ end
15
+
16
+ # Initialize server start
17
+ def start
18
+ # Setup server
19
+ server = TCPServer.new('127.0.0.1', 0)
20
+ port = server.addr[1]
21
+ server.close()
22
+
23
+ # Run PHP server
24
+ ::Dir.chdir @path
25
+ @php = ChildProcess.build 'php', '-S', "#{@server.host}:#{@server.port}", 'router.php'
26
+ @php.start
27
+
28
+ # Write PHP proccess id to file
29
+ @task.shell.mute do
30
+ @task.create_file ::File.join(@path, 'php.pid'), @php.pid, :force => true
31
+ end
32
+
33
+ @task.say "Server #{@server.name} is running", :cyan
34
+ @task.say "Visit http://#{@server.host}:#{@server.port}", :green
35
+ end
36
+
37
+ # Initialize server stop
38
+ def stop
39
+ pid_file = ::File.join(@path, 'php.pid')
40
+
41
+ begin
42
+ if File.exists?(pid_file)
43
+ pid = ::File.read(pid_file).to_i
44
+
45
+ ::Process.kill('KILL', pid)
46
+ @task.say "Server #{@name} stopped", :yellow
47
+ end
48
+ rescue Exception => e
49
+ @task.say "Server #{@name} is not running", :yellow
50
+ end
51
+ end
52
+
53
+ # Initialize server restart
54
+ def restart
55
+ stop
56
+ start
57
+ end
58
+
59
+ # Remove server
60
+ def remove
61
+ begin
62
+ @server.remove_database
63
+
64
+ @task.shell.mute do
65
+ stop
66
+ @task.remove_dir @path
67
+ end
68
+ rescue Exception => e
69
+ @task.say "Error while removing server:"
70
+ @task.say e.message + "\n", :red
71
+ exit
72
+ end
73
+
74
+ @task.say "Server successfully removed", :green
75
+ end
76
+
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,100 @@
1
+ require 'zip'
2
+
3
+ module Marv
4
+ module Server
5
+ class Create
6
+
7
+ # Initialize server creator
8
+ def initialize(server)
9
+ @server = server
10
+ @task = server.task
11
+ @global = Marv::Global.new(server.task)
12
+ @name = server.name
13
+ @path = server.path
14
+ @database = server.database
15
+ @config = server.config
16
+
17
+ create_server
18
+ end
19
+
20
+ # Create server
21
+ def create_server
22
+ begin
23
+ @task.shell.mute do
24
+ create_server_dir
25
+ copy_wordpress_files
26
+ @server.create_database
27
+ add_config_files
28
+ end
29
+ rescue Exception => e
30
+ @task.say "Error while creating server:"
31
+ @task.say e.message + "\n", :red
32
+ abort
33
+ end
34
+
35
+ @task.say "Server #{@name} created successfully!", :green
36
+ start_server
37
+ end
38
+
39
+ # Starts the new server
40
+ def start_server
41
+ unless @task.no?("Would you like to start #{@name} server?")
42
+ action = Marv::Server::Actions.new(@server)
43
+ action.start
44
+ end
45
+ end
46
+
47
+ # Creates a directory for a new server
48
+ def create_server_dir
49
+ if ::File.exists?(@server.config_file)
50
+ @task.say "A server with the name #{@name} already exists", :red
51
+ abort
52
+ end
53
+
54
+ @task.remove_dir @path
55
+ @task.empty_directory @path
56
+ end
57
+
58
+ # Downloads WordPress from wordpress.org
59
+ def download_wordpress
60
+ package = "/tmp/wordpress-#{@config[:wp_version]}.zip"
61
+ # Download package file
62
+ unless ::File.exists?(package)
63
+ @task.get "https://wordpress.org/wordpress-#{@config[:wp_version]}.zip" do |content|
64
+ @task.create_file package, content
65
+ end
66
+ end
67
+ # Return package file
68
+ package
69
+ end
70
+
71
+ # Copy WordPress files
72
+ def copy_wordpress_files
73
+ package = download_wordpress
74
+ tmp_dir = ::File.expand_path "/tmp/wordpress-latest-#{Time.now.to_i}"
75
+ @task.empty_directory tmp_dir unless ::File.directory?(tmp_dir)
76
+
77
+ # Extract package to temporary dir
78
+ ::Zip.on_exists_proc = true
79
+ ::Zip::File.open(package) do |zip_file|
80
+ zip_file.each do |entry|
81
+ entry.extract(::File.join(tmp_dir, entry.to_s))
82
+ end
83
+ end
84
+
85
+ @task.directory ::File.join(tmp_dir, 'wordpress'), @path
86
+ @task.remove_dir tmp_dir
87
+ end
88
+
89
+ # Add configuration files
90
+ def add_config_files
91
+ layouts = ::File.join(Marv.root, 'layouts', 'config')
92
+
93
+ @global.template ::File.join(layouts, 'server.rb'), ::File.join(@path, 'config.rb'), @server.context
94
+ @global.template ::File.join(layouts, 'router.php'), ::File.join(@path, 'router.php'), @server.context
95
+ @global.template ::File.join(layouts, 'wp-config.php'), ::File.join(@path, 'wp-config.php'), @server.context
96
+ end
97
+
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,201 @@
1
+ require 'mysql2'
2
+
3
+ require 'marv/server/actions'
4
+ require 'marv/server/create'
5
+
6
+ module Marv
7
+ module Server
8
+ class Server
9
+
10
+ attr_accessor :task, :name, :path, :config, :host, :port, :database, :context
11
+
12
+ # Initialize server config
13
+ def initialize(task, dir)
14
+ @task = task
15
+ @global = Marv::Global.new(task)
16
+ @name = dir
17
+ @path = server_path
18
+ @config_file = config_file
19
+ @options = server_options
20
+ @config = server_config
21
+ @host = server_host
22
+ @port = server_port
23
+ @database = db_client
24
+ @context = server_context
25
+
26
+ @global.clean_broken_links(server_projects_paths)
27
+ end
28
+
29
+ # Server path
30
+ def server_path
31
+ ::File.join(@global.servers_path, @name)
32
+ end
33
+
34
+ # Config file
35
+ def config_file
36
+ ::File.join(server_path, 'config.rb')
37
+ end
38
+
39
+ # Database name
40
+ def db_name
41
+ 'marv_'+@name.gsub(/\W/, '_').downcase
42
+ end
43
+
44
+ # Database username
45
+ def db_user
46
+ @config[:db_user]
47
+ end
48
+
49
+ # Database user password
50
+ def db_password
51
+ @config[:db_password]
52
+ end
53
+
54
+ # Database host
55
+ def db_host
56
+ @config[:db_host]
57
+ end
58
+
59
+ # Database port
60
+ def db_port
61
+ @config[:db_port]
62
+ end
63
+
64
+ # Wordpress version
65
+ def wp_version
66
+ @config[:wp_version]
67
+ end
68
+
69
+ # Server host
70
+ def server_host
71
+ @config[:server_host]
72
+ end
73
+
74
+ # Server port
75
+ def server_port
76
+ @config[:server_port]
77
+ end
78
+
79
+ # Server config file
80
+ def server_config
81
+ config = @global.config
82
+
83
+ # Check for user options
84
+ unless @options.nil?
85
+ config.merge!(@options)
86
+ end
87
+
88
+ # Check for config.rb in server folder
89
+ if ::File.exists?(@config_file)
90
+ config.merge!(@global.load_ruby_config(@config_file))
91
+ end
92
+
93
+ return config
94
+ end
95
+
96
+ # Ask for server options
97
+ def server_options
98
+ options = {}
99
+
100
+ unless ::File.exists?(@config_file)
101
+ @task.say "This will create a new development server.", :cyan
102
+ @task.say "Please enter server settings below."
103
+
104
+ options.merge!(ask_server_details)
105
+ options.merge!(ask_database_details)
106
+ options.merge!(ask_wordpress_details)
107
+ end
108
+
109
+ return options
110
+ end
111
+
112
+ # Server details
113
+ def ask_server_details
114
+ options = {}
115
+ options[:server_host] = @task.ask "Where do you want to run the server?", :default => @global.config[:server_host]
116
+ options[:server_port] = @task.ask "Which port do you want to use?", :default => @global.config[:server_port]
117
+
118
+ return options
119
+ end
120
+
121
+ # Database details
122
+ def ask_database_details
123
+ options = {}
124
+ options[:db_user] = @task.ask "MySQL database username?", :default => @global.config[:db_user]
125
+ options[:db_password] = @task.ask "MySQL database password?", :default => @global.config[:db_password]
126
+ options[:db_host] = @task.ask "MySQL database host?", :default => @global.config[:db_host]
127
+ options[:db_port] = @task.ask "MySQL database port?", :default => @global.config[:db_port]
128
+
129
+ return options
130
+ end
131
+
132
+ # Wordpress details
133
+ def ask_wordpress_details
134
+ options = {}
135
+ options[:wp_version] = @task.ask "WordPress version to install?", :default => @global.config[:wp_version]
136
+
137
+ return options
138
+ end
139
+
140
+ # Server database
141
+ def db_client
142
+ ::Mysql2::Client.new(:host => db_host, :port => db_port, :username => db_user, :password => db_password)
143
+ end
144
+
145
+ # MySQL create database
146
+ def db_client_create
147
+ @database.query("CREATE DATABASE IF NOT EXISTS #{db_name}")
148
+ end
149
+
150
+ # MySQL create database
151
+ def db_client_drop
152
+ @database.query("DROP DATABASE IF EXISTS #{db_name}")
153
+ end
154
+
155
+ # MySQL grant all privileges
156
+ def db_client_grant_all
157
+ @database.query("GRANT ALL PRIVILEGES ON #{db_name}.* TO '#{@db_user}'@'#{db_host}'")
158
+ end
159
+
160
+ # MySQL revoke all privileges
161
+ def db_client_revoke_all
162
+ @database.query("REVOKE ALL PRIVILEGES ON #{db_name}.* FROM '#{@db_user}'@'#{db_host}'")
163
+ end
164
+
165
+ # MySQL flush privileges
166
+ def db_client_flush_priv
167
+ @database.query("FLUSH PRIVILEGES")
168
+ end
169
+
170
+ # Create MySQL database
171
+ def create_database
172
+ db_client_create
173
+ db_client_grant_all
174
+ db_client_flush_priv
175
+ @database.close
176
+ end
177
+
178
+ # Remove MySQL database
179
+ def remove_database
180
+ db_client_drop
181
+ db_client_revoke_all
182
+ db_client_flush_priv
183
+ @database.close
184
+ end
185
+
186
+ # Get server class context
187
+ def server_context
188
+ instance_eval('binding')
189
+ end
190
+
191
+ # Server projects paths
192
+ def server_projects_paths
193
+ paths = ::Dir.glob(::File.join(server_path, 'wp-content', 'themes', '*'))
194
+ paths = paths + ::Dir.glob(::File.join(server_path, 'wp-content', 'plugins', '*'))
195
+
196
+ return paths
197
+ end
198
+
199
+ end
200
+ end
201
+ end
data/marv.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "marv"
8
- s.version = "0.3.2"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jonian Guveli", "Olibia Tsati"]
12
- s.date = "2014-09-19"
12
+ s.date = "2014-09-30"
13
13
  s.description = "A toolkit for bootstrapping and developing WordPress themes and plugins using Sass, LESS, and CoffeeScript."
14
14
  s.email = "info@hardpixel.eu"
15
15
  s.executables = ["marv"]
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  "README.md"
19
19
  ]
20
20
  s.files = [
21
- ".rspec",
21
+ ".document",
22
22
  "CHANGELOG.md",
23
23
  "Gemfile",
24
24
  "Gemfile.lock",
@@ -27,63 +27,67 @@ Gem::Specification.new do |s|
27
27
  "Rakefile",
28
28
  "VERSION",
29
29
  "bin/marv",
30
- "features/step_definitions/marv_steps.rb",
31
- "features/support/env.rb",
32
- "layouts/config/project-config.rb",
33
- "layouts/config/router.php.erb",
34
- "layouts/config/wp-config.php.erb",
35
- "layouts/plugin/functions/plugin.php.erb",
36
- "layouts/plugin/images/screenshot.png",
37
- "layouts/plugin/javascripts/admin.coffee",
38
- "layouts/plugin/javascripts/admin.js",
39
- "layouts/plugin/javascripts/plugin.coffee",
40
- "layouts/plugin/javascripts/plugin.js",
41
- "layouts/plugin/stylesheets/plugin.scss",
42
- "layouts/theme/functions/functions.php.erb",
43
- "layouts/theme/images/screenshot.png",
44
- "layouts/theme/includes/filters-admin.php.erb",
45
- "layouts/theme/includes/filters.php.erb",
46
- "layouts/theme/includes/helpers.php.erb",
47
- "layouts/theme/javascripts/admin.coffee",
48
- "layouts/theme/javascripts/admin.js",
49
- "layouts/theme/javascripts/theme.coffee",
50
- "layouts/theme/javascripts/theme.js",
51
- "layouts/theme/stylesheets/_header.scss.erb",
52
- "layouts/theme/stylesheets/style.scss.erb",
53
- "layouts/theme/templates/404.php.erb",
54
- "layouts/theme/templates/archive.php.erb",
55
- "layouts/theme/templates/author.php.erb",
30
+ "layouts/config/global.rb",
31
+ "layouts/config/project.rb",
32
+ "layouts/config/router.php",
33
+ "layouts/config/server.rb",
34
+ "layouts/config/wp-config.php",
35
+ "layouts/plugin/assets/images/screenshot.png",
36
+ "layouts/plugin/assets/javascripts/admin.coffee",
37
+ "layouts/plugin/assets/javascripts/admin.js",
38
+ "layouts/plugin/assets/javascripts/plugin.coffee",
39
+ "layouts/plugin/assets/javascripts/plugin.js",
40
+ "layouts/plugin/assets/stylesheets/plugin.scss",
41
+ "layouts/plugin/functions/plugin.php",
42
+ "layouts/theme/assets/images/screenshot.png",
43
+ "layouts/theme/assets/javascripts/admin.coffee",
44
+ "layouts/theme/assets/javascripts/admin.js",
45
+ "layouts/theme/assets/javascripts/theme.coffee",
46
+ "layouts/theme/assets/javascripts/theme.js",
47
+ "layouts/theme/assets/stylesheets/_header.scss",
48
+ "layouts/theme/assets/stylesheets/style.scss",
49
+ "layouts/theme/functions/functions.php",
50
+ "layouts/theme/includes/filters-admin.php",
51
+ "layouts/theme/includes/filters.php",
52
+ "layouts/theme/includes/helpers.php",
56
53
  "layouts/theme/templates/footer.php",
57
54
  "layouts/theme/templates/header.php",
58
55
  "layouts/theme/templates/index.php",
59
56
  "layouts/theme/templates/page.php",
60
- "layouts/theme/templates/partials/comments.php.erb",
61
- "layouts/theme/templates/partials/content-none.php.erb",
57
+ "layouts/theme/templates/pages/404.php",
58
+ "layouts/theme/templates/pages/archive.php",
59
+ "layouts/theme/templates/pages/author.php",
60
+ "layouts/theme/templates/pages/search.php",
61
+ "layouts/theme/templates/partials/comments.php",
62
+ "layouts/theme/templates/partials/content-none.php",
62
63
  "layouts/theme/templates/partials/content-page.php",
63
64
  "layouts/theme/templates/partials/content-single.php",
64
- "layouts/theme/templates/partials/content.php.erb",
65
- "layouts/theme/templates/partials/searchform.php.erb",
65
+ "layouts/theme/templates/partials/content.php",
66
+ "layouts/theme/templates/partials/searchform.php",
66
67
  "layouts/theme/templates/partials/sidebar.php",
67
- "layouts/theme/templates/search.php.erb",
68
68
  "layouts/theme/templates/single.php",
69
- "lib/guard/marv/assets.rb",
70
- "lib/guard/marv/config.rb",
71
- "lib/guard/marv/folders.rb",
72
- "lib/guard/marv/functions.rb",
73
- "lib/guard/marv/templates.rb",
74
69
  "lib/marv.rb",
75
- "lib/marv/builder.rb",
76
70
  "lib/marv/cli.rb",
77
- "lib/marv/engines.rb",
78
- "lib/marv/error.rb",
79
- "lib/marv/generator.rb",
80
- "lib/marv/guard.rb",
81
- "lib/marv/project.rb",
82
- "lib/marv/server.rb",
83
- "marv-0.3.2.gem",
84
- "marv.gemspec",
85
- "spec/lib/marv/project_spec.rb",
86
- "spec/spec_helper.rb"
71
+ "lib/marv/cli/project.rb",
72
+ "lib/marv/cli/server.rb",
73
+ "lib/marv/global.rb",
74
+ "lib/marv/project/actions.rb",
75
+ "lib/marv/project/builder.rb",
76
+ "lib/marv/project/builder/assets.rb",
77
+ "lib/marv/project/builder/engines.rb",
78
+ "lib/marv/project/builder/functions.rb",
79
+ "lib/marv/project/builder/templates.rb",
80
+ "lib/marv/project/create.rb",
81
+ "lib/marv/project/guard.rb",
82
+ "lib/marv/project/guard/assets.rb",
83
+ "lib/marv/project/guard/config.rb",
84
+ "lib/marv/project/guard/functions.rb",
85
+ "lib/marv/project/guard/templates.rb",
86
+ "lib/marv/project/project.rb",
87
+ "lib/marv/server/actions.rb",
88
+ "lib/marv/server/create.rb",
89
+ "lib/marv/server/server.rb",
90
+ "marv.gemspec"
87
91
  ]
88
92
  s.homepage = "http://hardpixel.github.io/marv"
89
93
  s.licenses = ["MIT"]
@@ -98,54 +102,48 @@ Gem::Specification.new do |s|
98
102
  s.add_runtime_dependency(%q<thor>, [">= 0.19.1"])
99
103
  s.add_runtime_dependency(%q<guard-livereload>, [">= 2.3.0"])
100
104
  s.add_runtime_dependency(%q<sprockets>, [">= 2.12.0"])
101
- s.add_runtime_dependency(%q<rubyzip>, [">= 1.1.6"])
102
105
  s.add_runtime_dependency(%q<childprocess>, [">= 0.3.5"])
103
106
  s.add_runtime_dependency(%q<mysql2>, [">= 0.3.15"])
107
+ s.add_runtime_dependency(%q<uglifier>, [">= 2.5.0"])
104
108
  s.add_runtime_dependency(%q<sass>, [">= 3.3.0"])
105
109
  s.add_runtime_dependency(%q<less>, [">= 2.6.0"])
106
110
  s.add_runtime_dependency(%q<coffee-script>, [">= 2.3.0"])
107
111
  s.add_runtime_dependency(%q<therubyracer>, [">= 0.12.0"])
108
- s.add_runtime_dependency(%q<uglifier>, [">= 2.5.0"])
109
- s.add_development_dependency(%q<rake>, [">= 0"])
110
- s.add_development_dependency(%q<rspec>, [">= 0"])
111
- s.add_development_dependency(%q<aruba>, [">= 0"])
112
- s.add_development_dependency(%q<cucumber>, [">= 0"])
113
- s.add_development_dependency(%q<jeweler>, [">= 0"])
112
+ s.add_runtime_dependency(%q<rubyzip>, [">= 1.1.6"])
113
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
114
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
115
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
114
116
  else
115
117
  s.add_dependency(%q<thor>, [">= 0.19.1"])
116
118
  s.add_dependency(%q<guard-livereload>, [">= 2.3.0"])
117
119
  s.add_dependency(%q<sprockets>, [">= 2.12.0"])
118
- s.add_dependency(%q<rubyzip>, [">= 1.1.6"])
119
120
  s.add_dependency(%q<childprocess>, [">= 0.3.5"])
120
121
  s.add_dependency(%q<mysql2>, [">= 0.3.15"])
122
+ s.add_dependency(%q<uglifier>, [">= 2.5.0"])
121
123
  s.add_dependency(%q<sass>, [">= 3.3.0"])
122
124
  s.add_dependency(%q<less>, [">= 2.6.0"])
123
125
  s.add_dependency(%q<coffee-script>, [">= 2.3.0"])
124
126
  s.add_dependency(%q<therubyracer>, [">= 0.12.0"])
125
- s.add_dependency(%q<uglifier>, [">= 2.5.0"])
126
- s.add_dependency(%q<rake>, [">= 0"])
127
- s.add_dependency(%q<rspec>, [">= 0"])
128
- s.add_dependency(%q<aruba>, [">= 0"])
129
- s.add_dependency(%q<cucumber>, [">= 0"])
130
- s.add_dependency(%q<jeweler>, [">= 0"])
127
+ s.add_dependency(%q<rubyzip>, [">= 1.1.6"])
128
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
129
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
130
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
131
131
  end
132
132
  else
133
133
  s.add_dependency(%q<thor>, [">= 0.19.1"])
134
134
  s.add_dependency(%q<guard-livereload>, [">= 2.3.0"])
135
135
  s.add_dependency(%q<sprockets>, [">= 2.12.0"])
136
- s.add_dependency(%q<rubyzip>, [">= 1.1.6"])
137
136
  s.add_dependency(%q<childprocess>, [">= 0.3.5"])
138
137
  s.add_dependency(%q<mysql2>, [">= 0.3.15"])
138
+ s.add_dependency(%q<uglifier>, [">= 2.5.0"])
139
139
  s.add_dependency(%q<sass>, [">= 3.3.0"])
140
140
  s.add_dependency(%q<less>, [">= 2.6.0"])
141
141
  s.add_dependency(%q<coffee-script>, [">= 2.3.0"])
142
142
  s.add_dependency(%q<therubyracer>, [">= 0.12.0"])
143
- s.add_dependency(%q<uglifier>, [">= 2.5.0"])
144
- s.add_dependency(%q<rake>, [">= 0"])
145
- s.add_dependency(%q<rspec>, [">= 0"])
146
- s.add_dependency(%q<aruba>, [">= 0"])
147
- s.add_dependency(%q<cucumber>, [">= 0"])
148
- s.add_dependency(%q<jeweler>, [">= 0"])
143
+ s.add_dependency(%q<rubyzip>, [">= 1.1.6"])
144
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
145
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
146
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
149
147
  end
150
148
  end
151
149