rails-embryo 0.1.1 → 0.2.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.
- 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
|
[](http://badge.fury.io/rb/rails-embryo)
|
3
3
|
[](https://travis-ci.org/brianauton/rails-embryo)
|
4
4
|
[](https://codeclimate.com/github/brianauton/rails-embryo)
|
5
|
-
[](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
|