scaffoldhub 0.0.8 → 0.0.10

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.8)
4
+ scaffoldhub (0.0.10)
5
5
  rails
6
6
 
7
7
  GEM
@@ -58,4 +58,7 @@ Scaffoldhub::Specification.new do
58
58
  # Copy any file without running an ERB transformation
59
59
  # file 'xyz.html', :dest => 'path/to/xyz.html'
60
60
 
61
+ # Add a gem to the Gemfile
62
+ # gem 'some_gem', '1.0'
63
+ # gem "some_other_gem", :group => :test, :git => "git://github.com/rails/rails"
61
64
  end
@@ -21,4 +21,10 @@ class ScaffoldhubGenerator < Rails::Generators::ScaffoldGenerator
21
21
  copy_file template_file.src, replace_name_tokens(template_file.dest)
22
22
  end
23
23
  end
24
+
25
+ def add_gems_to_gemfile
26
+ each_gem do |args|
27
+ gem(*args)
28
+ end
29
+ end
24
30
  end
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.8'
9
+ VERSION = '0.0.10'
10
10
  SCAFFOLD_HUB_SERVER = 'scaffoldhub.org'
11
11
  end
@@ -41,6 +41,23 @@ module Scaffoldhub
41
41
  end
42
42
  end
43
43
 
44
+ def each_gem
45
+ begin
46
+ gems = scaffold_spec.gems.each do |gem|
47
+ yield gem
48
+ end
49
+ rescue Errno::ENOENT => e
50
+ say_status :error, e.message, :red
51
+ nil
52
+ rescue Scaffoldhub::NotFoundException => e
53
+ say_status :error, "HTTP 404 not found error for #{e.message}", :red
54
+ nil
55
+ rescue Scaffoldhub::NetworkErrorException => e
56
+ say_status :error, "HTTP error connecting to #{e.message}", :red
57
+ nil
58
+ end
59
+ end
60
+
44
61
  def scaffold_spec
45
62
  Helper.scaffold_spec ||= download_scaffold_spec!
46
63
  end
@@ -73,6 +73,14 @@ module Scaffoldhub
73
73
  end
74
74
  end
75
75
 
76
+ def gems
77
+ if @local
78
+ Specification.gems
79
+ else
80
+ YAML::load(@spec[:gems])
81
+ end
82
+ end
83
+
76
84
  def to_yaml
77
85
  Specification.to_yaml if @local
78
86
  end
@@ -42,10 +42,11 @@ module Scaffoldhub
42
42
  mattr_accessor :name, :description, :base_url, :blog_post, :screenshot, :parameter_example
43
43
  define_dsl_attributes :name, :description, :base_url, :blog_post, :screenshot, :parameter_example
44
44
 
45
- mattr_accessor :files, :errors, :tags
45
+ mattr_accessor :files, :errors, :tags, :gems
46
46
  @@files = []
47
47
  @@errors = []
48
48
  @@tags = []
49
+ @@gems = []
49
50
 
50
51
  define_dsl_file_keyword :model, :migration, :controller, :view, :layout
51
52
 
@@ -65,6 +66,7 @@ module Scaffoldhub
65
66
  :description => description,
66
67
  :base_url => adjusted_base_url,
67
68
  :blog_post => blog_post,
69
+ :gems => gems,
68
70
  :files => files,
69
71
  :screenshot => screenshot,
70
72
  :tags => tags,
@@ -155,6 +157,10 @@ module Scaffoldhub
155
157
  self.class.add_tag(keyword)
156
158
  end
157
159
 
160
+ def gem(*args)
161
+ @@gems << args
162
+ end
163
+
158
164
  protected
159
165
 
160
166
  def join_with_parent(parent_value, new_value)
@@ -18,13 +18,13 @@ Scaffoldhub::Specification.new do
18
18
  # Tag(s) to help scaffoldhub.org users find your scaffold
19
19
  tag 'jquery'
20
20
  tag 'autocomplete'
21
- end
22
21
 
23
- # Optionally specify an example of a scaffold parameter
24
- parameter_example 'FIELD_NAME'
22
+ # Optionally specify an example of a scaffold parameter
23
+ parameter_example 'FIELD_NAME'
25
24
 
26
- # Optionally post a link to an article you write explaining how the scaffold works.
27
- blog_post 'http://patshaughnessy.net/2011/3/13/view-mapper-for-rails-3-scaffoldhub'
25
+ # Optionally post a link to an article you write explaining how the scaffold works.
26
+ blog_post 'http://patshaughnessy.net/2011/3/13/view-mapper-for-rails-3-scaffoldhub'
27
+ end
28
28
 
29
29
  # Define a model template - this ERB file will be used to generate a new
30
30
  # model class with this path & filename: app/models/NAME.rb
@@ -38,9 +38,8 @@ Scaffoldhub::Specification.new do
38
38
  # view file with this path & filename: app/views/PLURAL_NAME/view_file_name.rb
39
39
  view 'templates/_form.html.erb'
40
40
 
41
- # Define a view layout template - this ERB file will be used to generate a new
42
- # view layout file with this path & filename: app/views/layouts/PLURAL_NAME.html.erb
43
- layout 'templates/layout.erb'
41
+ gem 'some_gem', '1.0'
42
+ gem "some_other_gem", :group => :test, :git => "git://github.com/rails/rails"
44
43
 
45
44
  # You can use "with_options" to specify the same source folder for a series of templates:
46
45
  with_options :src => 'templates' do
@@ -13,6 +13,9 @@ describe Scaffoldhub::ScaffoldSpec do
13
13
  before do
14
14
  @status_proc = mock
15
15
  @status_proc.stubs(:call)
16
+ Scaffoldhub::Specification.files = []
17
+ Scaffoldhub::Specification.gems = []
18
+ Scaffoldhub::Specification.base_url = nil
16
19
  end
17
20
 
18
21
  describe 'parsing scaffold spec' do
@@ -34,6 +37,13 @@ describe Scaffoldhub::ScaffoldSpec do
34
37
  subject.blog_post.should == 'http://patshaughnessy.net/2011/3/13/view-mapper-for-rails-3-scaffoldhub'
35
38
  end
36
39
 
40
+ it 'should parse all of the gems' do
41
+ subject.gems.should == [
42
+ [ 'some_gem', '1.0' ],
43
+ [ 'some_other_gem', { :group => :test, :git => 'git://github.com/rails/rails' } ]
44
+ ]
45
+ end
46
+
37
47
  it 'should parse the model file' do
38
48
  model_spec = subject.template_file_specs.detect { |spec| spec[:type] == :model }
39
49
  find_spec(subject, :model, 'templates/model.rb').should_not be_nil
@@ -47,10 +57,6 @@ describe Scaffoldhub::ScaffoldSpec do
47
57
  find_spec(subject, :view, 'templates/_form.html.erb').should_not be_nil
48
58
  end
49
59
 
50
- it 'should parse a layout file' do
51
- find_spec(subject, :layout, 'templates/layout.erb').should_not be_nil
52
- end
53
-
54
60
  it 'should parse with_options and use :src as a folder for the given file' do
55
61
  find_spec(subject, :view, 'templates/new.html.erb').should_not be_nil
56
62
  find_spec(subject, :view, 'templates/edit.html.erb').should_not be_nil
@@ -96,24 +102,29 @@ describe Scaffoldhub::ScaffoldSpec do
96
102
 
97
103
  describe 'parsing remote scaffold spec' do
98
104
 
99
- before do
100
- Scaffoldhub::Specification.files = []
101
- Scaffoldhub::Specification.base_url = nil
102
- end
103
-
104
105
  TEST_YAML = <<YAML
106
+ ---
107
+ :base_url: http://github.com/patshaughnessy/scaffolds/default
108
+ :files:
109
+ - :src: templates/index3.html.erb
110
+ :dest:
111
+ :rename:
112
+ :type: view
113
+ - :src: templates/index2.html.erb
114
+ :dest:
115
+ :rename: new_file_name.rb
116
+ :type: controller
117
+ - :src: templates/index.html.erb
118
+ :dest: app/views/welcome
119
+ :rename:
120
+ :type: file
121
+ :gems: |
105
122
  ---
106
- :base_url: http://github.com/patshaughnessy/scaffolds/default
107
- :files:
108
- - :src: templates/index3.html.erb
109
- :dest:
110
- :type: view
111
- - :src: templates/index2.html.erb
112
- :dest:
113
- :type: controller
114
- - :src: templates/index.html.erb
115
- :dest: app/views/welcome
116
- :type: file
123
+ - - some_gem
124
+ - "1.0"
125
+ - - some_other_gem
126
+ - :group: :test
127
+ :git: git://github.com/rails/rails
117
128
  YAML
118
129
 
119
130
  subject do
@@ -121,19 +132,21 @@ YAML
121
132
  end
122
133
 
123
134
  before do
124
- Scaffoldhub::Specification.files = []
125
- Scaffoldhub::Specification.base_url = nil
126
135
  subject.expects(:remote_file_contents!).returns(TEST_YAML)
127
136
  end
128
137
 
129
138
  it 'should parse a remote yaml scaffold' do
130
139
  subject.download_and_parse!
131
140
  subject.template_file_specs.should == [
132
- { :type => 'view', :src => 'templates/index3.html.erb', :dest => nil },
133
- { :type => 'controller', :src => 'templates/index2.html.erb', :dest => nil },
134
- { :type => 'file', :src => 'templates/index.html.erb', :dest => 'app/views/welcome' }
141
+ { :type => 'view', :src => 'templates/index3.html.erb', :dest => nil, :rename => nil },
142
+ { :type => 'controller', :src => 'templates/index2.html.erb', :dest => nil, :rename => 'new_file_name.rb' },
143
+ { :type => 'file', :src => 'templates/index.html.erb', :dest => 'app/views/welcome', :rename => nil }
135
144
  ]
136
145
  subject.base_url.should == 'http://github.com/patshaughnessy/scaffolds/default'
146
+ subject.gems.should == [
147
+ [ 'some_gem', '1.0' ],
148
+ [ 'some_other_gem', { :group => :test, :git => 'git://github.com/rails/rails' } ]
149
+ ]
137
150
  end
138
151
  end
139
152
  end
@@ -154,6 +167,10 @@ YAML
154
167
  parsed_yaml[:blog_post].should == 'http://patshaughnessy.net/2011/3/13/view-mapper-for-rails-3-scaffoldhub'
155
168
  parsed_yaml[:name].should == 'test_scaffold'
156
169
  parsed_yaml[:description].should == 'The test_scaffold scaffold.'
170
+ parsed_yaml[:gems].should == [
171
+ [ 'some_gem', '1.0' ],
172
+ [ 'some_other_gem', { :group => :test, :git => 'git://github.com/rails/rails' } ]
173
+ ]
157
174
  parsed_yaml[:parameter_example].should == 'FIELD_NAME'
158
175
  model_spec = find_spec_in_array(parsed_yaml[:files], :model, 'templates/model.rb')
159
176
  model_spec.should_not be_nil
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: 15
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
9
+ - 10
10
+ version: 0.0.10
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-08 00:00:00 -04:00
18
+ date: 2011-05-10 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency