scaffoldhub 0.0.14 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scaffoldhub (0.0.14)
4
+ scaffoldhub (0.1.0)
5
5
  rails
6
6
 
7
7
  GEM
data/lib/scaffoldhub.rb CHANGED
@@ -6,6 +6,6 @@ require 'scaffoldhub/helper'
6
6
  require 'scaffoldhub/runner'
7
7
 
8
8
  module Scaffoldhub
9
- VERSION = '0.0.14'
9
+ VERSION = '0.1.0'
10
10
  SCAFFOLD_HUB_SERVER = 'www.scaffoldhub.org'
11
11
  end
@@ -17,6 +17,10 @@ module Scaffoldhub
17
17
  end
18
18
  end
19
19
 
20
+ def method_missing(sym, *args, &block)
21
+ system("rails generate scaffoldhub #{args.join(' ')} --scaffold #{sym.to_s}")
22
+ end
23
+
20
24
  private
21
25
 
22
26
  def load_spec(scaffold_spec)
@@ -77,9 +77,9 @@ module Scaffoldhub
77
77
 
78
78
  def adjusted_base_url
79
79
  if base_url =~ /github.com\/([^\s]+\/[^\s]+)\/(tree|blob)\/(.*)$/
80
- "https://github.com/#{$1}/raw/#{$3}"
80
+ "https://raw.github.com/#{$1}/#{$3}"
81
81
  elsif base_url =~ /github.com\/([^\s^\/]+\/[^\s^\/]+)\/?$/
82
- "https://github.com/#{$1}/raw/master"
82
+ "https://raw.github.com/#{$1}/master"
83
83
  else
84
84
  base_url
85
85
  end
@@ -0,0 +1,91 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Scaffoldhub::Runner do
4
+
5
+ describe 'push valid spec' do
6
+ before do
7
+ @test_scaffold = File.join(File.dirname(__FILE__), 'fixtures', 'test_scaffold.rb')
8
+ Scaffoldhub::Specification.stubs(:valid?).returns(true)
9
+ subject.expects(:post_spec).with(@test_scaffold)
10
+ end
11
+ it 'should post a valid spec' do
12
+ subject.push(@test_scaffold)
13
+ end
14
+ end
15
+
16
+ describe 'push invalid spec' do
17
+ before do
18
+ @test_scaffold = File.join(File.dirname(__FILE__), 'fixtures', 'test_scaffold.rb')
19
+ Scaffoldhub::Specification.stubs(:valid?).returns(false)
20
+ Scaffoldhub::Specification.stubs(:errors).returns(['error one', 'error two'])
21
+ subject.expects(:post_spec).never
22
+ subject.expects(:say).with("Unable to post your new scaffold. Please resolve these errors:")
23
+ subject.expects(:say).with("error one")
24
+ subject.expects(:say).with("error two")
25
+ end
26
+ it 'should post a valid spec' do
27
+ subject.push(@test_scaffold)
28
+ end
29
+ end
30
+
31
+ describe 'push missing spec' do
32
+ before do
33
+ @test_scaffold = '/invalid/path'
34
+ Scaffoldhub::Specification.expects(:valid?).never
35
+ subject.stubs(:say)
36
+ end
37
+ it 'should not post an invalid spec' do
38
+ subject.push(@test_scaffold)
39
+ end
40
+ end
41
+
42
+ describe 'run scaffold via method missing' do
43
+ before do
44
+ subject.expects(:system).with("rails generate scaffoldhub person name:string --scaffold some_scaffold")
45
+ end
46
+ it 'should shell out to the specified scaffold' do
47
+ subject.some_scaffold 'person', 'name:string'
48
+ end
49
+ end
50
+
51
+ describe 'run scaffold with a scaffold parameter via method missing' do
52
+ before do
53
+ subject.expects(:system).with("rails generate scaffoldhub person name:string --scaffold some_scaffold:some_field")
54
+ end
55
+ it 'should shell out to the specified scaffold' do
56
+ subject.send 'some_scaffold:some_field'.to_sym, 'person', 'name:string'
57
+ end
58
+ end
59
+
60
+ describe '#post_spec' do
61
+ before do
62
+ Scaffoldhub::Runner.class_eval { public :post_spec }
63
+ subject.expects(:load_config).returns({:username => 'user', :password => 'pass'})
64
+ URI.expects(:parse).with("http://www.scaffoldhub.org/admin/scaffolds").returns(url = mock)
65
+ url.expects(:path).returns('/admin/scaffolds')
66
+ Net::HTTP::Post.expects(:new).with('/admin/scaffolds').returns(post = mock)
67
+ post.expects(:basic_auth).with('user', 'pass')
68
+ Scaffoldhub::Specification.expects(:to_yaml).returns('yaml')
69
+ post.expects(:set_form_data).with(
70
+ {
71
+ 'scaffold' => 'yaml',
72
+ 'spec_file_name' => 'some_scaffold.rb'
73
+ },
74
+ ';'
75
+ )
76
+ url.expects(:host).returns('www.scaffoldhub.org')
77
+ url.expects(:port).returns(80)
78
+ Net::HTTP.expects(:new).with('www.scaffoldhub.org', 80).returns(http = mock)
79
+ http.expects(:start).returns(response = mock)
80
+ response.expects(:body).twice.returns('New scaffold created.')
81
+ subject.expects(:save_config).with('user', 'pass')
82
+ subject.expects(:say).with('New scaffold created.')
83
+ end
84
+ after do
85
+ Scaffoldhub::Runner.class_eval { private :post_spec }
86
+ end
87
+ it 'should post a scaffold to the server' do
88
+ subject.post_spec('/path/to/some_scaffold.rb')
89
+ end
90
+ end
91
+ end
@@ -169,7 +169,7 @@ YAML
169
169
  it 'should generate yaml from a scaffold spec' do
170
170
  yaml = subject.to_yaml
171
171
  parsed_yaml = YAML::load(yaml)
172
- parsed_yaml[:base_url].should == 'https://github.com/your_name/your_repo/raw/master'
172
+ parsed_yaml[:base_url].should == 'https://raw.github.com/your_name/your_repo/master'
173
173
  parsed_yaml[:post_install_message].should == 'Please do this, this and that.'
174
174
  parsed_yaml[:blog_post].should == 'http://patshaughnessy.net/2011/3/13/view-mapper-for-rails-3-scaffoldhub'
175
175
  parsed_yaml[:name].should == 'test_scaffold'
@@ -191,23 +191,23 @@ YAML
191
191
  describe '#adjusted_base_url' do
192
192
 
193
193
  it 'should use the raw github url when a repo root is specified' do
194
- Scaffoldhub::Specification.base_url = 'https://github.com/your_name/your_repo'
195
- Scaffoldhub::Specification.adjusted_base_url.should == 'https://github.com/your_name/your_repo/raw/master'
194
+ Scaffoldhub::Specification.base_url = 'https://github.com/patshaughnessy/scaffolds'
195
+ Scaffoldhub::Specification.adjusted_base_url.should == 'https://raw.github.com/patshaughnessy/scaffolds/master'
196
196
  end
197
197
 
198
198
  it 'should use the raw github url when a repo root is specified with a trailing slash' do
199
- Scaffoldhub::Specification.base_url = 'https://github.com/your_name/your_repo/'
200
- Scaffoldhub::Specification.adjusted_base_url.should == 'https://github.com/your_name/your_repo/raw/master'
199
+ Scaffoldhub::Specification.base_url = 'https://github.com/patshaughnessy/scaffolds/'
200
+ Scaffoldhub::Specification.adjusted_base_url.should == 'https://raw.github.com/patshaughnessy/scaffolds/master'
201
201
  end
202
202
 
203
203
  it 'should use the raw github url when a blob url is specified' do
204
204
  Scaffoldhub::Specification.base_url = 'https://github.com/patshaughnessy/scaffolds/blob/master/autocomplete/scaffold_spec.rb'
205
- Scaffoldhub::Specification.adjusted_base_url.should == 'https://github.com/patshaughnessy/scaffolds/raw/master/autocomplete/scaffold_spec.rb'
205
+ Scaffoldhub::Specification.adjusted_base_url.should == 'https://raw.github.com/patshaughnessy/scaffolds/master/autocomplete/scaffold_spec.rb'
206
206
  end
207
207
 
208
208
  it 'should use the raw github url when a tree url is specified' do
209
209
  Scaffoldhub::Specification.base_url = 'https://github.com/patshaughnessy/scaffolds/tree/master/autocomplete/scaffold_spec.rb'
210
- Scaffoldhub::Specification.adjusted_base_url.should == 'https://github.com/patshaughnessy/scaffolds/raw/master/autocomplete/scaffold_spec.rb'
210
+ Scaffoldhub::Specification.adjusted_base_url.should == 'https://raw.github.com/patshaughnessy/scaffolds/master/autocomplete/scaffold_spec.rb'
211
211
  end
212
212
 
213
213
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scaffoldhub
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 14
10
- version: 0.0.14
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pat Shaughnessy
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-29 00:00:00 -04:00
18
+ date: 2011-06-07 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -115,6 +115,7 @@ files:
115
115
  - spec/fixtures/test_scaffold.rb
116
116
  - spec/helper_spec.rb
117
117
  - spec/remote_file_spec.rb
118
+ - spec/runnner_spec.rb
118
119
  - spec/scaffold_spec_spec.rb
119
120
  - spec/spec_helper.rb
120
121
  - spec/template_file_spec.rb
@@ -157,6 +158,7 @@ test_files:
157
158
  - spec/fixtures/test_scaffold.rb
158
159
  - spec/helper_spec.rb
159
160
  - spec/remote_file_spec.rb
161
+ - spec/runnner_spec.rb
160
162
  - spec/scaffold_spec_spec.rb
161
163
  - spec/spec_helper.rb
162
164
  - spec/template_file_spec.rb