marv 0.3.2 → 0.4.0

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