shining 1.3.5 → 1.3.6

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.
@@ -1,4 +1,9 @@
1
- = 1.3.5
1
+ = 1.3.6
2
+
3
+ * slide steps, so you can progressively show content.
4
+ * deploying to Heroku now tries to use the presentation's name as the application name.
5
+
6
+ = 1.3.5 (20/06/2010)
2
7
 
3
8
  * image loading now won't screw with the stage positioning.
4
9
  * slide styles loading now works again. Fuck my specless life.
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010 Julio Cesar Ody
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/Rakefile CHANGED
@@ -26,6 +26,7 @@ begin
26
26
  gem.add_dependency 'json_pure', '>= 1.1.9'
27
27
  gem.add_dependency 'heroku', '>= 1.9.9'
28
28
  gem.add_dependency 'rack', '>= 0.9'
29
+ gem.add_dependency 'stringex', '>= 1.1.0'
29
30
  gem.add_dependency 'jeweler', '>= 1.4.0'
30
31
  gem.add_development_dependency 'rspec', '1.3.0'
31
32
  gem.add_development_dependency 'jspec', '4.2.0'
data/TODO.txt CHANGED
@@ -10,8 +10,6 @@
10
10
  - themes
11
11
  * add a white theme.
12
12
  - optimization
13
- * bundling of CSS and JS.
14
13
  * rely more on events so duplicate code is eliminated.
15
- * perhaps bundle at the rackup file level?
16
14
  - spec/tests
17
15
  * write my own test suite for this app.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.5
1
+ 1.3.6
data/bin/shine CHANGED
@@ -3,16 +3,18 @@
3
3
  $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
4
 
5
5
  require 'shining'
6
+ require 'stringex'
6
7
  include Shining::FileMethods
7
8
 
8
9
  ACTIONS = {
9
- :new_on! => ['build'],
10
- :new_slide! => ['slide'],
11
- :help_and_exit! => ['help', '-h', '--help'],
12
- :play => ['play', 'go'],
13
- :deploy => ['deploy'],
14
- :remove => ['remove', 'delete', 'rm'],
15
- :version => ['version', '-v']
10
+ :new_on! => ['build'],
11
+ :new_slide! => ['slide'],
12
+ :help_and_exit! => ['help', '-h', '--help'],
13
+ :play => ['play', 'go'],
14
+ :deploy => ['deploy'],
15
+ :remove => ['remove', 'delete', 'rm'],
16
+ :version => ['version', '-v'],
17
+ :start => ['go', 'start']
16
18
  }
17
19
 
18
20
  def bail! reason
@@ -64,14 +66,16 @@ def new_slide! name, format = 'html'
64
66
  end
65
67
 
66
68
  def play
67
- preso = Shining::Preso.open Dir.pwd
68
- player = Shining::Player.new preso
69
+ preso = Shining::Preso.open Dir.pwd
70
+ player = Shining::Player.new preso
69
71
  player.go!
70
72
  end
71
73
 
72
74
  def deploy name = nil
73
- preso = Shining::Preso.open Dir.pwd
74
- Shining::Heroku.deploy preso, name
75
+ preso = Shining::Preso.open(Dir.pwd)
76
+ heroku = Shining::Heroku.new preso
77
+ name ||= preso.name.to_url
78
+ heroku.deploy name
75
79
  end
76
80
 
77
81
  def remove slide
@@ -83,4 +87,11 @@ def version
83
87
  Shining.say Shining::VERSION
84
88
  end
85
89
 
90
+ def start port = 4567
91
+ preso = Shining::Preso.open Dir.pwd
92
+ raise "Cannot find the rackup command in your path. Make sure Rack is installed!" if `which rackup`.empty?
93
+ puts "Shining started on port #{port}."
94
+ `rackup -p #{port}`
95
+ end
96
+
86
97
  figure_what_to_do!
@@ -28,6 +28,8 @@ ul { display: inline-block; margin-left: 2em }
28
28
  #stage > * { text-rendering: optimizeLegibility }
29
29
  a { cursor: pointer }
30
30
 
31
+ .step { display: none }
32
+
31
33
  div.slice { position: absolute; display: block; width: 0; top: -10px; bottom: -10px }
32
34
 
33
35
  #help {
@@ -1,3 +1,6 @@
1
+ // Shining - http://shining.heroku.com
2
+ // Copyright (c) 2010 Julio Cesar Ody - See LICENSE.txt
3
+
1
4
  (function($) {
2
5
  var KEY = { SPACE: 32, RIGHT: 39, LEFT: 37 };
3
6
 
@@ -54,18 +57,8 @@
54
57
  // public methods
55
58
  firstSlide: function() { getSlide(Shining.slides.first()) },
56
59
  lastSlide: function() { getSlide(Shining.slides.last() ) },
57
- nextSlide: function() {
58
- if (Shining.slides.next()) {
59
- document.location.hash = Shining.slides.next();
60
- trigger('next');
61
- }
62
- },
63
- previousSlide: function() {
64
- if (Shining.slides.previous()) {
65
- document.location.hash = Shining.slides.previous();
66
- trigger('previous');
67
- }
68
- },
60
+ nextSlide: function() { if (Shining.slides.next()) { trigger('next') } },
61
+ previousSlide: function() { if (Shining.slides.previous()) { trigger('previous') } },
69
62
  getSlide: function(slide) { getSlide(slide) },
70
63
  help: help,
71
64
  init: init,
@@ -197,9 +190,7 @@
197
190
  $(window).resize(function() { centerStage() });
198
191
  $(document).ready(function() {
199
192
  bindKeys();
200
- when('previous', function() { help('←') });
201
- when('next', function() { help('→') });
202
- when('slideplay', function() { loadSlideStyle(arguments[1]) });
193
+ bindEvents();
203
194
  $(window).bind('hashchange', function(event) {
204
195
  var slide = document.location.hash.replace('#', '');
205
196
  if (slide) { Shining.getSlide(slide) };
@@ -344,6 +335,22 @@
344
335
  }
345
336
  })
346
337
  }
338
+
339
+ function bindEvents() {
340
+ when('previous', function() {
341
+ help('←');
342
+ document.location.hash = Shining.slides.previous();
343
+ });
344
+ when('next', function() {
345
+ help('→');
346
+ if ($('#stage .step:not(:visible)').length) {
347
+ $('#stage .step:not(:visible):first').show()
348
+ } else {
349
+ document.location.hash = Shining.slides.next();
350
+ }
351
+ });
352
+ when('slideplay', function() { loadSlideStyle(arguments[1]) });
353
+ }
347
354
 
348
355
  function centerStage() {
349
356
  var top = ($(window).height() - $('#stage').outerHeight()) / 2;
@@ -23,12 +23,12 @@ module Shining
23
23
  end
24
24
 
25
25
  def say something
26
- STDOUT.puts(something) unless quiet?
26
+ STDOUT.puts something unless quiet?
27
27
  yield if block_given?
28
28
  end
29
29
 
30
30
  def error message
31
- STDERR.puts message
31
+ STDERR.puts message unless quiet?
32
32
  end
33
33
 
34
34
  def root
@@ -1,26 +1,59 @@
1
- # Class that handles deploying a presentation to Heroku.
2
- # This is REALLY hard to spec, so I just won't. I'm sure you can forgive me.
1
+ # Handles deploying a presentation to Heroku.
2
+ require 'heroku'
3
+ require 'heroku/command'
3
4
 
4
5
  module Shining
5
6
 
6
7
  class Heroku
7
8
  extend FileMethods
8
- class << self
9
- def deploy preso, name
10
- check_for_git_and_heroku
11
- copy Shining.root/'lib'/'config.ru', preso.path
12
- change_dir preso.path
13
- `git init && git add . && git commit -m 'heroku deploy'`
14
- `heroku create #{name}`
15
- `git push heroku master`
16
- Shining.say "Done!"
9
+ class FailCreatingApp < RuntimeError; end
10
+
11
+ def initialize preso
12
+ raise RuntimeError, 'Git is either not installed or not in your PATH. Check and try again.' if `which git`.empty?
13
+ @preso = preso
14
+ @client = ::Heroku::Command.run_internal 'auth:client', []
15
+ end
16
+
17
+ def create_app name = preso.name
18
+ Shining.say "\tCreating #{name} on Heroku..."
19
+ begin
20
+ @client.create name
21
+ change_dir @preso.path
22
+ `git remote add heroku git@#{@client.host}:#{name}.git`
23
+ rescue RestClient::RequestFailed => error
24
+ case error.http_code
25
+ when 422
26
+ Shining.error "\tApparently #{name} already exists on Heroku. Try again with a different name."
27
+ else
28
+ Shining.error "\tAn error ocurred when creating #{name}. Maybe try again in a moment?"
29
+ end
30
+ raise FailCreatingApp
17
31
  end
32
+ end
18
33
 
19
- private
20
- def check_for_git_and_heroku
21
- raise RuntimeError, 'You need to install the heroku gem before deploying! (Usually "sudo gem install heroku")' if `which heroku`.empty?
22
- raise RuntimeError, 'Git is either not installed or not in your PATH. Check and try again.' if `which git`.empty?
34
+ def deploy name
35
+ copy Shining.root/'lib'/'config.ru', @preso.path
36
+ change_dir @preso.path
37
+ Shining.say "Creating Git repository on #{@preso.path}" do `git init` end unless git_repo?
38
+ Shining.say "Updating presentation's contents" do
39
+ `git add .`
40
+ system "git commit -a -m 'heroku deploy'"
23
41
  end
42
+ create_app(name) unless heroku_app?
43
+ Shining.say "Pushing to Heroku" do
44
+ system "git push heroku master"
45
+ end
46
+ Shining.say "Done! Visit http://#{name}.heroku.com to browse your presentation."
47
+ Shining.say "If you're updating, make sure you do a hard refresh (shift + refresh on most modern browsers)."
48
+ end
49
+
50
+ private
51
+ def git_repo?
52
+ dir? Dir.pwd/'.git'
53
+ end
54
+
55
+ def heroku_app?
56
+ `git remote`.split("\n").include? 'heroku'
24
57
  end
25
58
  end
26
59
 
@@ -5,7 +5,7 @@ module Shining
5
5
 
6
6
  class Preso
7
7
  include FileMethods and extend FileMethods
8
- attr_accessor :path
8
+ attr_reader :path, :name
9
9
 
10
10
  SLIDE_FORMATS = %w(haml markdown html)
11
11
 
@@ -16,7 +16,8 @@ class Preso
16
16
  copy_templates
17
17
  vendorize!
18
18
  end
19
- @config = json(@path/'config.json')
19
+ @config = json(@path/'config.json')
20
+ @name = @config['title']
20
21
  end
21
22
 
22
23
  def self.open dir
@@ -48,10 +49,10 @@ class Preso
48
49
  new_file path/'slides'/"#{name}.js" if options[:with].include?('script') rescue nil
49
50
  config['slides'] << file and save_config!
50
51
  end
51
-
52
+
52
53
  def remove_slide file
53
54
  file = basename(file)
54
- name, format = basename(file, extname(file)), extname(file).sub(/^./, '')
55
+ name, format = basename(file, extname(file)), extname(file).sub(/^./, '')
55
56
  delete! file
56
57
  delete! "#{name}.css"
57
58
  delete! "#{name}.js"
@@ -5,20 +5,22 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{shining}
8
- s.version = "1.3.5"
8
+ s.version = "1.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Julio Cesar Ody"]
12
- s.date = %q{2010-06-21}
12
+ s.date = %q{2010-07-12}
13
13
  s.default_executable = %q{shine}
14
14
  s.description = %q{HTML + CSS + Javascript = awesome presos}
15
15
  s.email = %q{julio.ody@gmail.com}
16
16
  s.executables = ["shine"]
17
17
  s.extra_rdoc_files = [
18
- "README.markdown"
18
+ "LICENSE.txt",
19
+ "README.markdown"
19
20
  ]
20
21
  s.files = [
21
22
  "CHANGELOG.txt",
23
+ "LICENSE.txt",
22
24
  "README.markdown",
23
25
  "Rakefile",
24
26
  "TODO.txt",
@@ -51,7 +53,7 @@ Gem::Specification.new do |s|
51
53
  "shining.gemspec",
52
54
  "spec/cli_spec.rb",
53
55
  "spec/filemethods_spec.rb",
54
- "spec/generators_spec.rb",
56
+ "spec/heroku_spec.rb",
55
57
  "spec/javascripts/dom.html",
56
58
  "spec/javascripts/rhino.js",
57
59
  "spec/javascripts/sample/config.json",
@@ -92,7 +94,7 @@ Gem::Specification.new do |s|
92
94
  s.test_files = [
93
95
  "spec/cli_spec.rb",
94
96
  "spec/filemethods_spec.rb",
95
- "spec/generators_spec.rb",
97
+ "spec/heroku_spec.rb",
96
98
  "spec/preso_spec.rb",
97
99
  "spec/shining_spec.rb",
98
100
  "spec/spec_helper.rb"
@@ -106,6 +108,7 @@ Gem::Specification.new do |s|
106
108
  s.add_runtime_dependency(%q<json_pure>, [">= 1.1.9"])
107
109
  s.add_runtime_dependency(%q<heroku>, [">= 1.9.9"])
108
110
  s.add_runtime_dependency(%q<rack>, [">= 0.9"])
111
+ s.add_runtime_dependency(%q<stringex>, [">= 1.1.0"])
109
112
  s.add_runtime_dependency(%q<jeweler>, [">= 1.4.0"])
110
113
  s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
111
114
  s.add_development_dependency(%q<jspec>, ["= 4.2.0"])
@@ -114,6 +117,7 @@ Gem::Specification.new do |s|
114
117
  s.add_dependency(%q<json_pure>, [">= 1.1.9"])
115
118
  s.add_dependency(%q<heroku>, [">= 1.9.9"])
116
119
  s.add_dependency(%q<rack>, [">= 0.9"])
120
+ s.add_dependency(%q<stringex>, [">= 1.1.0"])
117
121
  s.add_dependency(%q<jeweler>, [">= 1.4.0"])
118
122
  s.add_dependency(%q<rspec>, ["= 1.3.0"])
119
123
  s.add_dependency(%q<jspec>, ["= 4.2.0"])
@@ -123,6 +127,7 @@ Gem::Specification.new do |s|
123
127
  s.add_dependency(%q<json_pure>, [">= 1.1.9"])
124
128
  s.add_dependency(%q<heroku>, [">= 1.9.9"])
125
129
  s.add_dependency(%q<rack>, [">= 0.9"])
130
+ s.add_dependency(%q<stringex>, [">= 1.1.0"])
126
131
  s.add_dependency(%q<jeweler>, [">= 1.4.0"])
127
132
  s.add_dependency(%q<rspec>, ["= 1.3.0"])
128
133
  s.add_dependency(%q<jspec>, ["= 4.2.0"])
@@ -0,0 +1,17 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+
3
+ describe Shining::Heroku do
4
+ context "initializing" do
5
+ it "checks if Git is in the binaries path" do
6
+ old_path = ENV['PATH']
7
+ ENV['PATH'] = ""
8
+ lambda do Shining::Heroku.new(@preso) end.should raise_error
9
+ ENV['PATH'] = old_path
10
+ end
11
+
12
+ it "instances a new Heroku::Client" do
13
+ Heroku::Command.should_receive(:run_internal).with('auth:client', []).and_return(mock_heroku_client)
14
+ Shining::Heroku.new @preso
15
+ end
16
+ end
17
+ end
@@ -1,17 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__), 'spec_helper')
2
2
 
3
3
  describe Shining::Preso do
4
- before :all do
5
- TMP = Dir.tmpdir/'shining-tmp' unless defined?(TMP)
6
- FileUtils.rm_rf TMP
7
- FileUtils.mkdir_p TMP
8
- end
9
-
10
- before :each do
11
- FileUtils.rm_rf TMP/'temp'
12
- @preso = Shining::Preso.new TMP/'temp'
13
- end
14
-
15
4
  context '#new' do
16
5
  it "creates a folder for the presentation on #new" do
17
6
  File.directory?(TMP/'temp').should be_true
@@ -29,7 +18,7 @@ describe Shining::Preso do
29
18
 
30
19
  context "#open" do
31
20
  it "opens an existing presentation" do
32
- @preso.should be_an_instance_of(Shining::Preso)
21
+ @preso.should be_an_instance_of Shining::Preso
33
22
  end
34
23
 
35
24
  it "errors out if the directory is not a Shining presentation" do
@@ -82,4 +71,8 @@ describe Shining::Preso do
82
71
  it "returns a list of the presentation's slides" do
83
72
  @preso.slides.should include('welcome.html')
84
73
  end
74
+
75
+ it "returns the preso's name on #name" do
76
+ @preso.name.should == "Your presentation"
77
+ end
85
78
  end
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "slides": ["first", "second", "third"],
3
- "transitions": false
3
+ "transitions": false,
4
+ "title": "Light and shadow"
4
5
  }
@@ -2,9 +2,25 @@ require 'rubygems'
2
2
  require 'tmpdir'
3
3
  require File.join(File.dirname(__FILE__), *%w(.. lib shining))
4
4
 
5
- gem 'rspec', '>= 1.3.0'; require 'spec'
5
+ gem 'rspec', '= 1.3.0'; require 'spec'
6
6
  gem 'rake', '>= 0.8.7'; require 'rake'
7
7
  gem 'json_pure', '>= 1.1.9'; require 'json/pure'
8
- gem 'haml', '>= 2.2.17'; require 'haml'
9
8
 
10
- Shining.quiet!
9
+ Shining.quiet!
10
+
11
+ def mock_heroku_client
12
+ zemock = mock Heroku::Client, :host => 'heroku.com', :password => 'foo', :user => 'bar'
13
+ end
14
+
15
+ Spec::Runner.configure do |config|
16
+ config.before :all do
17
+ TMP = Dir.tmpdir/'shining-tmp' unless defined?(TMP)
18
+ FileUtils.rm_rf TMP
19
+ FileUtils.mkdir_p TMP
20
+ end
21
+
22
+ config.before :each do
23
+ FileUtils.rm_rf TMP/'temp'
24
+ @preso = Shining::Preso.new TMP/'temp'
25
+ end
26
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shining
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 5
10
- version: 1.3.5
9
+ - 6
10
+ version: 1.3.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Julio Cesar Ody
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-21 00:00:00 +10:00
18
+ date: 2010-07-12 00:00:00 +10:00
19
19
  default_executable: shine
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -66,9 +66,25 @@ dependencies:
66
66
  type: :runtime
67
67
  version_requirements: *id003
68
68
  - !ruby/object:Gem::Dependency
69
- name: jeweler
69
+ name: stringex
70
70
  prerelease: false
71
71
  requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 19
77
+ segments:
78
+ - 1
79
+ - 1
80
+ - 0
81
+ version: 1.1.0
82
+ type: :runtime
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ name: jeweler
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
72
88
  none: false
73
89
  requirements:
74
90
  - - ">="
@@ -80,11 +96,11 @@ dependencies:
80
96
  - 0
81
97
  version: 1.4.0
82
98
  type: :runtime
83
- version_requirements: *id004
99
+ version_requirements: *id005
84
100
  - !ruby/object:Gem::Dependency
85
101
  name: rspec
86
102
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
103
+ requirement: &id006 !ruby/object:Gem::Requirement
88
104
  none: false
89
105
  requirements:
90
106
  - - "="
@@ -96,11 +112,11 @@ dependencies:
96
112
  - 0
97
113
  version: 1.3.0
98
114
  type: :development
99
- version_requirements: *id005
115
+ version_requirements: *id006
100
116
  - !ruby/object:Gem::Dependency
101
117
  name: jspec
102
118
  prerelease: false
103
- requirement: &id006 !ruby/object:Gem::Requirement
119
+ requirement: &id007 !ruby/object:Gem::Requirement
104
120
  none: false
105
121
  requirements:
106
122
  - - "="
@@ -112,11 +128,11 @@ dependencies:
112
128
  - 0
113
129
  version: 4.2.0
114
130
  type: :development
115
- version_requirements: *id006
131
+ version_requirements: *id007
116
132
  - !ruby/object:Gem::Dependency
117
133
  name: rake
118
134
  prerelease: false
119
- requirement: &id007 !ruby/object:Gem::Requirement
135
+ requirement: &id008 !ruby/object:Gem::Requirement
120
136
  none: false
121
137
  requirements:
122
138
  - - "="
@@ -128,7 +144,7 @@ dependencies:
128
144
  - 7
129
145
  version: 0.8.7
130
146
  type: :development
131
- version_requirements: *id007
147
+ version_requirements: *id008
132
148
  description: HTML + CSS + Javascript = awesome presos
133
149
  email: julio.ody@gmail.com
134
150
  executables:
@@ -136,9 +152,11 @@ executables:
136
152
  extensions: []
137
153
 
138
154
  extra_rdoc_files:
155
+ - LICENSE.txt
139
156
  - README.markdown
140
157
  files:
141
158
  - CHANGELOG.txt
159
+ - LICENSE.txt
142
160
  - README.markdown
143
161
  - Rakefile
144
162
  - TODO.txt
@@ -171,7 +189,7 @@ files:
171
189
  - shining.gemspec
172
190
  - spec/cli_spec.rb
173
191
  - spec/filemethods_spec.rb
174
- - spec/generators_spec.rb
192
+ - spec/heroku_spec.rb
175
193
  - spec/javascripts/dom.html
176
194
  - spec/javascripts/rhino.js
177
195
  - spec/javascripts/sample/config.json
@@ -240,7 +258,7 @@ summary: HTML + CSS + Javascript = awesome presos
240
258
  test_files:
241
259
  - spec/cli_spec.rb
242
260
  - spec/filemethods_spec.rb
243
- - spec/generators_spec.rb
261
+ - spec/heroku_spec.rb
244
262
  - spec/preso_spec.rb
245
263
  - spec/shining_spec.rb
246
264
  - spec/spec_helper.rb
File without changes