rails-embryo 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.md +6 -0
- data/README.md +35 -10
- data/lib/generators/embryo.rb +34 -0
- data/lib/generators/embryo/capybara.rb +24 -0
- data/lib/{embryo → generators/embryo}/default_view.rb +9 -8
- data/lib/generators/embryo/factory_girl.rb +21 -0
- data/lib/generators/embryo/model.rb +37 -0
- data/lib/generators/embryo/poltergeist.rb +20 -0
- data/lib/{embryo → generators/embryo}/rspec.rb +10 -7
- data/lib/generators/embryo/ruby_version.rb +12 -0
- data/lib/{embryo → generators/embryo}/template_support.rb +21 -15
- data/lib/rails-embryo.rb +8 -47
- data/lib/rails-embryo/generator_helpers/hidden.rb +13 -0
- data/lib/rails-embryo/version.rb +1 -1
- metadata +30 -22
- checksums.yaml +0 -7
- data/lib/embryo/capybara.rb +0 -22
- data/lib/embryo/factory_girl.rb +0 -19
- data/lib/embryo/filesystem.rb +0 -53
- data/lib/embryo/gemfile.rb +0 -39
- data/lib/embryo/poltergeist.rb +0 -18
- data/lib/embryo/ruby_version.rb +0 -12
- data/lib/embryo/test_support.rb +0 -19
data/History.md
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/rails-embryo.png)](http://badge.fury.io/rb/rails-embryo)
|
3
3
|
[![Build Status](https://travis-ci.org/brianauton/rails-embryo.png?branch=master)](https://travis-ci.org/brianauton/rails-embryo)
|
4
4
|
[![Code Climate](https://codeclimate.com/github/brianauton/rails-embryo.png)](https://codeclimate.com/github/brianauton/rails-embryo)
|
5
|
-
[![Dependency Status](https://gemnasium.com/brianauton/rails-embryo.png)](https://gemnasium.com/brianauton/rails-embryo)
|
6
5
|
|
7
6
|
Rails-embryo is a Ruby gem that helps get a new Rails application up and
|
8
7
|
running quickly. In just one step, it adds many of the the tweaks and
|
@@ -16,12 +15,14 @@ configurable in the future.
|
|
16
15
|
### Requirements
|
17
16
|
|
18
17
|
* Ruby 1.9.3 or newer
|
19
|
-
* Rails 4.1.
|
18
|
+
* Rails 4.1.4 or newer
|
20
19
|
|
21
|
-
###
|
20
|
+
### Generating a New Application
|
22
21
|
|
23
|
-
|
24
|
-
|
22
|
+
To generate a new Rails application with all Rails Embryo features
|
23
|
+
added, first make sure the gem is installed in your current
|
24
|
+
environment (this will also install Rails 4.1.4 if it's not already
|
25
|
+
present).
|
25
26
|
|
26
27
|
gem install rails-embryo
|
27
28
|
|
@@ -54,16 +55,33 @@ Bootstrap-enhanced landing page.
|
|
54
55
|
|
55
56
|
rails server
|
56
57
|
|
57
|
-
###
|
58
|
+
### Generators Available in the Application
|
58
59
|
|
59
|
-
You can also install the
|
60
|
+
You can also install the Rails Embryo enhancements by adding the gem
|
60
61
|
to an existing Rails application and running the "embryo" generator:
|
61
62
|
|
62
63
|
rails generate embryo
|
63
64
|
|
65
|
+
Once Rails Embryo has has been initialized in an application, more
|
66
|
+
generators are available to add features to the app.
|
67
|
+
|
68
|
+
#### Models
|
69
|
+
|
70
|
+
To generate a new model, run the `embryo:model` generator with the
|
71
|
+
same arguments you would pass to Rails' basic `model` generator.
|
72
|
+
|
73
|
+
rails generate embryo:model user name email age:integer
|
74
|
+
|
75
|
+
A class, migration, spec and factory will all be generated for the
|
76
|
+
model. All options available for the [basic model
|
77
|
+
generator](http://railsguides.net/advanced-rails-model-generators/)
|
78
|
+
are accepted.
|
79
|
+
|
64
80
|
### Enhancements Added
|
65
81
|
|
66
|
-
All of the following enhancements are added by
|
82
|
+
All of the following enhancements are added to new applications by
|
83
|
+
rails-embryo, and are used whenever possible by the other "embryo"
|
84
|
+
generators.
|
67
85
|
|
68
86
|
#### Views and Templating
|
69
87
|
|
@@ -91,8 +109,15 @@ For acceptance testing,
|
|
91
109
|
[Capybara](https://github.com/jnicklas/capybara) is installed, along
|
92
110
|
with a simple end-to-end spec that uses it to test the `Welcome#index`
|
93
111
|
action. [Poltergeist](https://github.com/teampoltergeist/poltergeist)
|
94
|
-
is configured and ready for JavaScript-enabled testing; just add `
|
95
|
-
|
112
|
+
is configured and ready for JavaScript-enabled testing; just add a `:js`
|
113
|
+
metadata tag to any RSpec `feature` or `scenario` blocks that require
|
114
|
+
JavaScript:
|
115
|
+
|
116
|
+
```ruby
|
117
|
+
feature "Customer searches for widgets" do
|
118
|
+
scenario "using the auto-suggest search box", :js do
|
119
|
+
# ...
|
120
|
+
```
|
96
121
|
|
97
122
|
#### Other Enhancements
|
98
123
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
require "generators/embryo/ruby_version"
|
3
|
+
require "generators/embryo/default_view"
|
4
|
+
require "generators/embryo/template_support"
|
5
|
+
require "generators/embryo/rspec"
|
6
|
+
require "generators/embryo/factory_girl"
|
7
|
+
require "generators/embryo/capybara"
|
8
|
+
require "generators/embryo/poltergeist"
|
9
|
+
|
10
|
+
class EmbryoGenerator < Rails::Generators::Base
|
11
|
+
def install(force: false, bundle: false)
|
12
|
+
add_embryo_gem
|
13
|
+
invoke "embryo:ruby_version"
|
14
|
+
invoke "embryo:rspec"
|
15
|
+
invoke "embryo:factory_girl"
|
16
|
+
invoke "embryo:capybara"
|
17
|
+
invoke "embryo:poltergeist"
|
18
|
+
invoke "embryo:template_support"
|
19
|
+
invoke "embryo:default_view"
|
20
|
+
clean_files
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def clean_files
|
26
|
+
gsub_file "Gemfile", /^#.*$/, "", verbose: false
|
27
|
+
gsub_file "Gemfile", /\n\n+/, "\n", verbose: false
|
28
|
+
append_to_file "Gemfile", "\n\n"
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_embryo_gem
|
32
|
+
gem "rails-embryo", "~> #{Rails::Embryo::VERSION}", group: :development
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
class CapybaraGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
|
+
|
7
|
+
def install
|
8
|
+
gem "capybara", "~> 2.0", group: :test
|
9
|
+
gem "launchy", "~> 2.0", group: :test
|
10
|
+
create_file "spec/support/capybara.rb", capybara_helper_data
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def capybara_helper_data
|
16
|
+
'require "capybara/rails"
|
17
|
+
require "capybara/rspec"
|
18
|
+
RSpec.configure do |config|
|
19
|
+
config.include Capybara::DSL, type: :feature
|
20
|
+
end
|
21
|
+
'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,14 +1,15 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
require "rails/generators"
|
3
|
+
|
1
4
|
module Embryo
|
2
|
-
class
|
3
|
-
|
4
|
-
@filesystem = filesystem
|
5
|
-
end
|
5
|
+
class DefaultViewGenerator < Rails::Generators::Base
|
6
|
+
include GeneratorHelpers::Hidden
|
6
7
|
|
7
8
|
def install
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
create_file "config/routes.rb", routes_data
|
10
|
+
create_file "app/controllers/dashboard_controller.rb", controller_data
|
11
|
+
create_file "spec/controllers/dashboard_controller_spec.rb", controller_spec_data
|
12
|
+
create_file "spec/features/dashboard_spec.rb", feature_spec_data
|
12
13
|
end
|
13
14
|
|
14
15
|
private
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
class FactoryGirlGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
|
+
|
7
|
+
def install
|
8
|
+
gem "factory_girl_rails", "~> 4.0", group: :test
|
9
|
+
create_file "spec/support/factory_girl.rb", factory_girl_helper_data
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def factory_girl_helper_data
|
15
|
+
'RSpec.configure do |config|
|
16
|
+
config.include FactoryGirl::Syntax::Methods
|
17
|
+
end
|
18
|
+
'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
class ModelGenerator < Rails::Generators::NamedBase
|
5
|
+
def install
|
6
|
+
generate "rails:model", "#{ARGV.join ' '} --no-test-framework"
|
7
|
+
create_file "spec/factories/#{file_path}.rb", factory_data
|
8
|
+
create_file "spec/models/#{file_path}_spec.rb", spec_data
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def factory_data
|
14
|
+
class_option = class_path.any? ? ", class: #{class_name}" : ""
|
15
|
+
'FactoryGirl.define do
|
16
|
+
factory :' + factory_name + class_option + ' do
|
17
|
+
end
|
18
|
+
end
|
19
|
+
'
|
20
|
+
end
|
21
|
+
|
22
|
+
def spec_data
|
23
|
+
'require "rails_helper"
|
24
|
+
|
25
|
+
describe ' + class_name + ' do
|
26
|
+
it "initializes successfully" do
|
27
|
+
expect(build :' + factory_name + ').to be_valid
|
28
|
+
end
|
29
|
+
end
|
30
|
+
'
|
31
|
+
end
|
32
|
+
|
33
|
+
def factory_name
|
34
|
+
file_path.gsub "/", "_"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
class PoltergeistGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
|
+
|
7
|
+
def install
|
8
|
+
gem "poltergeist", "~> 1.0", group: :test
|
9
|
+
create_file "spec/support/poltergeist.rb", poltergeist_helper_data
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def poltergeist_helper_data
|
15
|
+
'require "capybara/poltergeist"
|
16
|
+
Capybara.javascript_driver = :poltergeist
|
17
|
+
'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,15 +1,18 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
1
3
|
module Embryo
|
2
|
-
class
|
3
|
-
|
4
|
-
@filesystem = filesystem
|
5
|
-
end
|
4
|
+
class RspecGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
6
|
|
7
7
|
def install
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
gem "rspec-rails", "~> 3.0", group: :test
|
9
|
+
create_file "spec/spec_helper.rb", spec_helper_data
|
10
|
+
create_file "spec/rails_helper.rb", rails_helper_data
|
11
|
+
remove_dir "test"
|
11
12
|
end
|
12
13
|
|
14
|
+
private
|
15
|
+
|
13
16
|
def spec_helper_data
|
14
17
|
'RSpec.configure do |config|
|
15
18
|
config.color = true
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
class RubyVersionGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
|
+
|
7
|
+
def install
|
8
|
+
create_file ".ruby-version", "2.1.2\n"
|
9
|
+
create_file ".ruby-gemset", "#{File.basename Dir.getwd}\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,21 +1,23 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
1
3
|
module Embryo
|
2
|
-
class
|
3
|
-
|
4
|
-
@filesystem = filesystem
|
5
|
-
end
|
4
|
+
class TemplateSupportGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
6
|
|
7
7
|
def install
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
gem "haml", "~> 4.0"
|
9
|
+
gem "haml-rails", ">= 0"
|
10
|
+
gem "bootstrap-sass", "~> 3.0"
|
11
|
+
create_file "app/views/layouts/application.html.haml", layout_data
|
12
|
+
create_file "app/views/layouts/_navigation.html.haml", navigation_data
|
13
|
+
create_file "app/views/layouts/_messages.html.haml", messages_data
|
14
|
+
create_file "app/assets/javascripts/application.js", javascript_data
|
15
|
+
create_file "app/assets/stylesheets/bootstrap-custom.css.scss", stylesheet_data
|
16
|
+
remove_file "app/views/layouts/application.html.erb"
|
17
17
|
end
|
18
18
|
|
19
|
+
private
|
20
|
+
|
19
21
|
def layout_data
|
20
22
|
'!!! 5
|
21
23
|
%html(lang="en")
|
@@ -23,7 +25,7 @@ module Embryo
|
|
23
25
|
%meta(charset="utf-8")
|
24
26
|
%meta(http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1")
|
25
27
|
%meta(name="viewport" content="width=device-width, initial-scale=1.0")
|
26
|
-
%title ' +
|
28
|
+
%title ' + application_human_name + '
|
27
29
|
= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true
|
28
30
|
= javascript_include_tag "application", "data_turbolinks_track" => true
|
29
31
|
= csrf_meta_tags
|
@@ -44,7 +46,7 @@ module Embryo
|
|
44
46
|
%span.icon-bar
|
45
47
|
%span.icon-bar
|
46
48
|
%span.icon-bar
|
47
|
-
= link_to "' +
|
49
|
+
= link_to "' + application_human_name + '", root_path, class: "navbar-brand"
|
48
50
|
.navbar-collapse.collapse
|
49
51
|
%ul.nav.navbar-nav
|
50
52
|
%li= link_to "Home", root_path
|
@@ -75,5 +77,9 @@ module Embryo
|
|
75
77
|
body { padding-top: 70px; }
|
76
78
|
'
|
77
79
|
end
|
80
|
+
|
81
|
+
def application_human_name
|
82
|
+
File.basename(Dir.getwd).titleize
|
83
|
+
end
|
78
84
|
end
|
79
85
|
end
|
data/lib/rails-embryo.rb
CHANGED
@@ -1,50 +1,11 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
require "rails/generators/app_base"
|
3
1
|
require "rails-embryo/version"
|
4
|
-
require "embryo/
|
5
|
-
require "embryo
|
6
|
-
require "embryo/
|
7
|
-
require "
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
@force = force || options.force?
|
13
|
-
clean_files
|
14
|
-
add_embryo_gem
|
15
|
-
Embryo::RubyVersion.new(filesystem).install
|
16
|
-
Embryo::TestSupport.new(filesystem).install
|
17
|
-
Embryo::TemplateSupport.new(filesystem).install
|
18
|
-
Embryo::DefaultView.new(filesystem).install
|
19
|
-
filesystem.commit_changes
|
20
|
-
update_bundle if bundle
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def clean_files
|
26
|
-
gemfile.remove_noise
|
27
|
-
end
|
28
|
-
|
29
|
-
def add_embryo_gem
|
30
|
-
filesystem.require_gem "rails-embryo", "~> #{Rails::Embryo::VERSION}"
|
31
|
-
end
|
32
|
-
|
33
|
-
def filesystem
|
34
|
-
@filesystem ||= Embryo::Filesystem.new self, force: @force
|
35
|
-
end
|
36
|
-
|
37
|
-
def gemfile
|
38
|
-
filesystem.gemfile
|
39
|
-
end
|
40
|
-
|
41
|
-
def update_bundle
|
42
|
-
command = "bundle install"
|
43
|
-
if `which bundle`.strip.present?
|
44
|
-
say_status :run, command
|
45
|
-
`#{command}`
|
46
|
-
else
|
47
|
-
say_status :skip, command, :yellow
|
48
|
-
end
|
2
|
+
require "rails-embryo/generator_helpers/hidden"
|
3
|
+
require "generators/embryo"
|
4
|
+
require "generators/embryo/model"
|
5
|
+
require "rails/railtie"
|
6
|
+
|
7
|
+
class EmbryoHiddenGeneratorsRailtie < Rails::Railtie
|
8
|
+
config.app_generators do |generators|
|
9
|
+
generators.hidden_namespaces.concat Embryo::GeneratorHelpers::Hidden.namespaces
|
49
10
|
end
|
50
11
|
end
|
data/lib/rails-embryo/version.rb
CHANGED
metadata
CHANGED
@@ -1,32 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-embryo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Brian Auton
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rails
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - "
|
19
|
+
- - "~>"
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.1.
|
21
|
+
version: 4.1.4
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.1.
|
29
|
+
version: 4.1.4
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rspec
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - "~>"
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - "~>"
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rake
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - "~>"
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -60,44 +67,45 @@ executables:
|
|
60
67
|
extensions: []
|
61
68
|
extra_rdoc_files: []
|
62
69
|
files:
|
70
|
+
- lib/rails-embryo/generator_helpers/hidden.rb
|
71
|
+
- lib/rails-embryo/version.rb
|
72
|
+
- lib/rails-embryo.rb
|
73
|
+
- lib/generators/embryo/factory_girl.rb
|
74
|
+
- lib/generators/embryo/capybara.rb
|
75
|
+
- lib/generators/embryo/default_view.rb
|
76
|
+
- lib/generators/embryo/model.rb
|
77
|
+
- lib/generators/embryo/template_support.rb
|
78
|
+
- lib/generators/embryo/poltergeist.rb
|
79
|
+
- lib/generators/embryo/rspec.rb
|
80
|
+
- lib/generators/embryo/ruby_version.rb
|
81
|
+
- lib/generators/embryo.rb
|
82
|
+
- README.md
|
63
83
|
- History.md
|
64
84
|
- License.txt
|
65
|
-
- README.md
|
66
85
|
- bin/rails-embryo
|
67
|
-
- lib/embryo/capybara.rb
|
68
|
-
- lib/embryo/default_view.rb
|
69
|
-
- lib/embryo/factory_girl.rb
|
70
|
-
- lib/embryo/filesystem.rb
|
71
|
-
- lib/embryo/gemfile.rb
|
72
|
-
- lib/embryo/poltergeist.rb
|
73
|
-
- lib/embryo/rspec.rb
|
74
|
-
- lib/embryo/ruby_version.rb
|
75
|
-
- lib/embryo/template_support.rb
|
76
|
-
- lib/embryo/test_support.rb
|
77
|
-
- lib/rails-embryo.rb
|
78
|
-
- lib/rails-embryo/version.rb
|
79
86
|
homepage: http://github.com/brianauton/rails-embryo
|
80
87
|
licenses:
|
81
88
|
- MIT
|
82
|
-
metadata: {}
|
83
89
|
post_install_message:
|
84
90
|
rdoc_options: []
|
85
91
|
require_paths:
|
86
92
|
- lib
|
87
93
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
88
95
|
requirements:
|
89
96
|
- - ">="
|
90
97
|
- !ruby/object:Gem::Version
|
91
98
|
version: '0'
|
92
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
93
101
|
requirements:
|
94
102
|
- - ">="
|
95
103
|
- !ruby/object:Gem::Version
|
96
104
|
version: 1.3.6
|
97
105
|
requirements: []
|
98
106
|
rubyforge_project:
|
99
|
-
rubygems_version:
|
107
|
+
rubygems_version: 1.8.29
|
100
108
|
signing_key:
|
101
|
-
specification_version:
|
109
|
+
specification_version: 3
|
102
110
|
summary: Generators for quick setup of advanced Rails practices
|
103
111
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: e320f4f9a4efed26ee96d1734d44a7487075b7ca
|
4
|
-
data.tar.gz: 1d459d50c459dbfa6b33d15b0fae53bd23e4fd8b
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: c17ec6e686cbd30e3c0005d7ffd5b426cfe44e17d30abe6cf8afb0b84bb0296e2ac644cc371668dee1b83ec4f6dab74daaf5b92ab237511935875b3e53d169a1
|
7
|
-
data.tar.gz: 23ef35d270cf9d87197c9333fb224b7fd6b9a17fa84e3151a1ef7f803d68c27330ea6233556970adf8ad07a9567b8741d444f9efb47f7f540128ee87bb4bb964
|
data/lib/embryo/capybara.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Embryo
|
2
|
-
class Capybara
|
3
|
-
def initialize(filesystem)
|
4
|
-
@filesystem = filesystem
|
5
|
-
end
|
6
|
-
|
7
|
-
def install
|
8
|
-
@filesystem.require_gem "capybara", "~> 2.0", group: :test
|
9
|
-
@filesystem.require_gem "launchy", "~> 2.0", group: :test
|
10
|
-
@filesystem.write "spec/support/capybara.rb", capybara_helper_data
|
11
|
-
end
|
12
|
-
|
13
|
-
def capybara_helper_data
|
14
|
-
'require "capybara/rails"
|
15
|
-
require "capybara/rspec"
|
16
|
-
RSpec.configure do |config|
|
17
|
-
config.include Capybara::DSL, type: :feature
|
18
|
-
end
|
19
|
-
'
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/embryo/factory_girl.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module Embryo
|
2
|
-
class FactoryGirl
|
3
|
-
def initialize(filesystem)
|
4
|
-
@filesystem = filesystem
|
5
|
-
end
|
6
|
-
|
7
|
-
def install
|
8
|
-
@filesystem.require_gem "factory_girl_rails", "~> 4.0", group: :test
|
9
|
-
@filesystem.write "spec/support/factory_girl.rb", factory_girl_helper_data
|
10
|
-
end
|
11
|
-
|
12
|
-
def factory_girl_helper_data
|
13
|
-
'RSpec.configure do |config|
|
14
|
-
config.include FactoryGirl::Syntax::Methods
|
15
|
-
end
|
16
|
-
'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/lib/embryo/filesystem.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
require "embryo/gemfile"
|
2
|
-
require "tmpdir"
|
3
|
-
require "active_support/inflector"
|
4
|
-
|
5
|
-
module Embryo
|
6
|
-
class Filesystem
|
7
|
-
def initialize(generator, *write_options)
|
8
|
-
@generator = generator
|
9
|
-
@write_options = write_options
|
10
|
-
@write_cache = {}
|
11
|
-
@gemfile = nil
|
12
|
-
end
|
13
|
-
|
14
|
-
def commit_changes
|
15
|
-
@gemfile.write(*@write_options) if @gemfile
|
16
|
-
sorted_cache.each do |path, data|
|
17
|
-
if data
|
18
|
-
@generator.create_file path, data, *@write_options
|
19
|
-
else
|
20
|
-
@generator.remove_file path, *@write_options if File.exist? path
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def sorted_cache
|
26
|
-
@write_cache.sort.to_h
|
27
|
-
end
|
28
|
-
|
29
|
-
def require_gem(*args)
|
30
|
-
gemfile.require_gem(*args)
|
31
|
-
end
|
32
|
-
|
33
|
-
def gemfile
|
34
|
-
@gemfile ||= Gemfile.current generator: @generator
|
35
|
-
end
|
36
|
-
|
37
|
-
def write(path, data)
|
38
|
-
@write_cache[path] = data
|
39
|
-
end
|
40
|
-
|
41
|
-
def delete(path)
|
42
|
-
@write_cache[path] = nil
|
43
|
-
end
|
44
|
-
|
45
|
-
def application_name
|
46
|
-
File.basename Dir.getwd
|
47
|
-
end
|
48
|
-
|
49
|
-
def application_human_name
|
50
|
-
application_name.titleize
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
data/lib/embryo/gemfile.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
module Embryo
|
2
|
-
class Gemfile
|
3
|
-
attr_accessor :path, :data
|
4
|
-
|
5
|
-
def initialize(path, generator: nil)
|
6
|
-
@path = path
|
7
|
-
@generator = generator
|
8
|
-
@data = File.exist?(path) ? File.read(path) : ""
|
9
|
-
end
|
10
|
-
|
11
|
-
def remove_noise
|
12
|
-
@data = @data.each_line.select { |line| line[0] != "#" }.join
|
13
|
-
@data.gsub!(/\n\n+/, "\n\n")
|
14
|
-
@data.gsub!(/\n+$/, "\n")
|
15
|
-
end
|
16
|
-
|
17
|
-
def require_gem(name, version, options = {})
|
18
|
-
remove_gem name
|
19
|
-
@data << "\n" unless @data[-1] == "\n"
|
20
|
-
@data << "gem '#{name}', '#{version}'"
|
21
|
-
options.each { |key, value| @data << ", #{key}: #{value.inspect}" }
|
22
|
-
@data << "\n"
|
23
|
-
end
|
24
|
-
|
25
|
-
def remove_gem(name)
|
26
|
-
@data = @data.each_line.reject do |line|
|
27
|
-
line.match(/ *gem +'#{name}'/) or line.match(/ *gem +"#{name}"/)
|
28
|
-
end.join
|
29
|
-
end
|
30
|
-
|
31
|
-
def write(force: false)
|
32
|
-
@generator.create_file path, data, force: force
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.current(generator: nil)
|
36
|
-
new "Gemfile", generator: generator
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/lib/embryo/poltergeist.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Embryo
|
2
|
-
class Poltergeist
|
3
|
-
def initialize(filesystem)
|
4
|
-
@filesystem = filesystem
|
5
|
-
end
|
6
|
-
|
7
|
-
def install
|
8
|
-
@filesystem.require_gem "poltergeist", "~> 1.0", group: :test
|
9
|
-
@filesystem.write "spec/support/poltergeist.rb", poltergeist_helper_data
|
10
|
-
end
|
11
|
-
|
12
|
-
def poltergeist_helper_data
|
13
|
-
'require "capybara/poltergeist"
|
14
|
-
Capybara.javascript_driver = :poltergeist
|
15
|
-
'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/lib/embryo/ruby_version.rb
DELETED
data/lib/embryo/test_support.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require "embryo/rspec"
|
2
|
-
require "embryo/factory_girl"
|
3
|
-
require "embryo/capybara"
|
4
|
-
require "embryo/poltergeist"
|
5
|
-
|
6
|
-
module Embryo
|
7
|
-
class TestSupport
|
8
|
-
def initialize(filesystem)
|
9
|
-
@filesystem = filesystem
|
10
|
-
end
|
11
|
-
|
12
|
-
def install
|
13
|
-
Rspec.new(@filesystem).install
|
14
|
-
FactoryGirl.new(@filesystem).install
|
15
|
-
Capybara.new(@filesystem).install
|
16
|
-
Poltergeist.new(@filesystem).install
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|