appscrolls 0.7.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/.gitignore +8 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/ChangeLog.md +63 -0
- data/Gemfile +3 -0
- data/Guardfile +18 -0
- data/MIT_LICENSE +20 -0
- data/README.md +154 -0
- data/Rakefile +78 -0
- data/appscrolls.gemspec +32 -0
- data/bin/appscrolls +7 -0
- data/features/step_definitions/common_steps.rb +211 -0
- data/features/support/common.rb +51 -0
- data/features/support/env.rb +18 -0
- data/lib/appscrolls.rb +10 -0
- data/lib/appscrolls/command.rb +85 -0
- data/lib/appscrolls/config.rb +86 -0
- data/lib/appscrolls/scroll.rb +106 -0
- data/lib/appscrolls/scrolls.rb +38 -0
- data/lib/appscrolls/template.rb +67 -0
- data/lib/rails/generators/.DS_Store +0 -0
- data/lib/rails/generators/run_template/USAGE +13 -0
- data/lib/rails/generators/run_template/run_template_generator.rb +13 -0
- data/sample.rb +75 -0
- data/scrolls/active_admin.rb +19 -0
- data/scrolls/capybara.rb +34 -0
- data/scrolls/cucumber.rb +21 -0
- data/scrolls/delayed_job.rb +94 -0
- data/scrolls/env_yaml.rb +53 -0
- data/scrolls/eycloud.rb +72 -0
- data/scrolls/eycloud_recipes_on_deploy.rb +20 -0
- data/scrolls/git.rb +17 -0
- data/scrolls/github.rb +38 -0
- data/scrolls/guard.rb +75 -0
- data/scrolls/jquery.rb +11 -0
- data/scrolls/mysql.rb +51 -0
- data/scrolls/passenger.rb +11 -0
- data/scrolls/postgresql.rb +54 -0
- data/scrolls/prototype.rb +21 -0
- data/scrolls/puma.rb +11 -0
- data/scrolls/rails_basics.rb +54 -0
- data/scrolls/redis.rb +19 -0
- data/scrolls/resque.rb +59 -0
- data/scrolls/rspec.rb +21 -0
- data/scrolls/simple_form.rb +19 -0
- data/scrolls/split.rb +35 -0
- data/scrolls/spork.rb +19 -0
- data/scrolls/sqlite3.rb +10 -0
- data/scrolls/test_unit.rb +11 -0
- data/scrolls/thin.rb +10 -0
- data/scrolls/twitter_bootstrap.rb +41 -0
- data/scrolls/unicorn.rb +10 -0
- data/scrolls/zzz/activerecord.rb +69 -0
- data/scrolls/zzz/cancan.rb +16 -0
- data/scrolls/zzz/carrierwave.rb +42 -0
- data/scrolls/zzz/carrierwave_direct.rb +13 -0
- data/scrolls/zzz/cartographer.rb +33 -0
- data/scrolls/zzz/devise.rb +52 -0
- data/scrolls/zzz/devise_invitable.rb +23 -0
- data/scrolls/zzz/event_calendar.rb +12 -0
- data/scrolls/zzz/factory_girl.rb +38 -0
- data/scrolls/zzz/ffaker.rb +22 -0
- data/scrolls/zzz/fixture_builder.rb +35 -0
- data/scrolls/zzz/forgery.rb +15 -0
- data/scrolls/zzz/haml.rb +11 -0
- data/scrolls/zzz/heroku.rb +58 -0
- data/scrolls/zzz/hoptoad.rb +34 -0
- data/scrolls/zzz/inherited_resources.rb +12 -0
- data/scrolls/zzz/intercom.rb +35 -0
- data/scrolls/zzz/jammit.rb +43 -0
- data/scrolls/zzz/jasmine.rb +12 -0
- data/scrolls/zzz/mini_magick.rb +13 -0
- data/scrolls/zzz/mongo_mapper.rb +20 -0
- data/scrolls/zzz/mongohq.rb +61 -0
- data/scrolls/zzz/mongoid.rb +20 -0
- data/scrolls/zzz/mootools.rb +23 -0
- data/scrolls/zzz/newrelic.rb +11 -0
- data/scrolls/zzz/nifty_generators.rb +21 -0
- data/scrolls/zzz/oa_oauth.rb +12 -0
- data/scrolls/zzz/omniauth.rb +55 -0
- data/scrolls/zzz/paper_trail.rb +17 -0
- data/scrolls/zzz/pow.rb +12 -0
- data/scrolls/zzz/rails_admin.rb +22 -0
- data/scrolls/zzz/rails_dev_tweaks.rb +10 -0
- data/scrolls/zzz/rails_erd.rb +9 -0
- data/scrolls/zzz/rails_footnotes.rb +14 -0
- data/scrolls/zzz/ransack.rb +32 -0
- data/scrolls/zzz/rmagick.rb +13 -0
- data/scrolls/zzz/sass.rb +13 -0
- data/scrolls/zzz/sequel.rb +13 -0
- data/scrolls/zzz/settingslogic.rb +43 -0
- data/scrolls/zzz/shoulda_matchers.rb +11 -0
- data/scrolls/zzz/sidekiq.rb +23 -0
- data/scrolls/zzz/slim.rb +11 -0
- data/scrolls/zzz/thinking_sphinx.rb +14 -0
- data/scrolls/zzz/vanity.rb +35 -0
- data/spec/appscrolls/config_spec.rb +99 -0
- data/spec/appscrolls/scroll_spec.rb +103 -0
- data/spec/appscrolls/scrolls/sanity_spec.rb +30 -0
- data/spec/appscrolls/scrolls_spec.rb +24 -0
- data/spec/appscrolls/template_spec.rb +57 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/rails_directory.rb +17 -0
- data/spec/support/template_runner.rb +28 -0
- data/templates/helpers.erb +45 -0
- data/templates/layout.erb +44 -0
- data/templates/new_scroll.erb +28 -0
- data/templates/scroll.erb +10 -0
- data/version.rb +3 -0
- metadata +297 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppScrollsScrolls::Scroll do
|
|
4
|
+
context "with a generated scroll" do
|
|
5
|
+
subject{ AppScrollsScrolls::Scroll.generate('scroll_example', "# this is a test", :category => 'example', :name => "AppScrolls Example") }
|
|
6
|
+
|
|
7
|
+
context 'string setter methods' do
|
|
8
|
+
(AppScrollsScrolls::Scroll::ATTRIBUTES - ['config']).each do |setter|
|
|
9
|
+
it "should be able to set #{setter} with an argument" do
|
|
10
|
+
subject.send(setter + '=', "test")
|
|
11
|
+
subject.send(setter).should == 'test'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'should be able to get the value from the instance' do
|
|
15
|
+
subject.send(setter + '=', 'test')
|
|
16
|
+
subject.new.send(setter).should == subject.send(setter)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '.attributes' do
|
|
22
|
+
it 'should be accessible from the instance' do
|
|
23
|
+
subject.new.attributes.should == subject.attributes
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe '.generate' do
|
|
28
|
+
it 'should work with a string and hash as arguments' do
|
|
29
|
+
scroll = AppScrollsScrolls::Scroll.generate('some_key', '# some code', :name => "Example")
|
|
30
|
+
scroll.superclass.should == AppScrollsScrolls::Scroll
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'should work with an IO object' do
|
|
34
|
+
file = StringIO.new <<-RUBY
|
|
35
|
+
# this is an example
|
|
36
|
+
|
|
37
|
+
__END__
|
|
38
|
+
|
|
39
|
+
category: example
|
|
40
|
+
name: This is an Example
|
|
41
|
+
description: You know it's an exmaple.
|
|
42
|
+
RUBY
|
|
43
|
+
scroll = AppScrollsScrolls::Scroll.generate('just_a_test', file)
|
|
44
|
+
scroll.template.should == '# this is an example'
|
|
45
|
+
scroll.category.should == 'example'
|
|
46
|
+
scroll.name.should == 'This is an Example'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'should raise an exception if the file is incorrectly formatted' do
|
|
50
|
+
file = StringIO.new <<-RUBY
|
|
51
|
+
# just ruby, no YAML
|
|
52
|
+
RUBY
|
|
53
|
+
lambda{AppScrollsScrolls::Scroll.generate('testing',file)}.should raise_error(ArgumentError)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe '#compile' do
|
|
58
|
+
it 'should say the name' do
|
|
59
|
+
subject.name = "Awesome Sauce"
|
|
60
|
+
subject.new.compile.should be_include("say_scroll 'Awesome Sauce'")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it 'should include the template' do
|
|
64
|
+
subject.template = "This is only a test."
|
|
65
|
+
subject.new.compile.should be_include(subject.template)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it 'should set default attributes' do
|
|
71
|
+
scroll = AppScrollsScrolls::Scroll.generate('abc','# test')
|
|
72
|
+
|
|
73
|
+
AppScrollsScrolls::Scroll::DEFAULT_ATTRIBUTES.each_pair do |k,v|
|
|
74
|
+
scroll.send(k).should == v
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
context 'Comparable' do
|
|
79
|
+
subject{ AppScrollsScrolls::Scroll }
|
|
80
|
+
it 'a < b.run_after(a)' do
|
|
81
|
+
A = subject.generate('a', '#')
|
|
82
|
+
B = subject.generate('b', '#', :run_after => ['a'])
|
|
83
|
+
|
|
84
|
+
(A < B).should be_true
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it 'a > b.run_before(a)' do
|
|
88
|
+
A = subject.generate('a', '#')
|
|
89
|
+
B = subject.generate('b', '#', :run_before => ['a'])
|
|
90
|
+
|
|
91
|
+
(A > B).should be_true
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
after do
|
|
95
|
+
Object.send :remove_const, :A if defined?(A)
|
|
96
|
+
Object.send :remove_const, :B if defined?(B)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
__END__
|
|
102
|
+
|
|
103
|
+
this is a test
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
# This is a simple set of tests to make sure that
|
|
4
|
+
# all of the scrolls conform to the base requirements.
|
|
5
|
+
|
|
6
|
+
AppScrollsScrolls::Scrolls.list_classes.each do |scroll|
|
|
7
|
+
describe scroll do
|
|
8
|
+
it("should have a name"){ scroll.name.should be_kind_of(String) }
|
|
9
|
+
it("should have a description"){ scroll.description.should be_kind_of(String) }
|
|
10
|
+
it("should have a template"){ scroll.template.should be_kind_of(String) }
|
|
11
|
+
it("should be able to compile"){ scroll.new.compile.should be_kind_of(String) }
|
|
12
|
+
|
|
13
|
+
it "should have a string or nil category" do
|
|
14
|
+
if scroll.category
|
|
15
|
+
scroll.category.should be_kind_of(String)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should have a Config or nil config" do
|
|
20
|
+
if scroll.config
|
|
21
|
+
scroll.config.should be_kind_of(AppScrollsScrolls::Config)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should be in the list" do
|
|
26
|
+
AppScrollsScrolls::Scrolls.list_classes.should be_include(scroll)
|
|
27
|
+
AppScrollsScrolls::Scrolls.list.should be_include(scroll.key)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppScrollsScrolls::Scrolls do
|
|
4
|
+
subject{ AppScrollsScrolls::Scrolls }
|
|
5
|
+
let(:scroll){ AppScrollsScrolls::Scroll.generate("scroll_test", "# Testing", :name => "Test Scroll", :category => "test", :description => "Just a test.")}
|
|
6
|
+
|
|
7
|
+
before(:all) do
|
|
8
|
+
AppScrollsScrolls::Scrolls.add(scroll)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it '.list_classes should include scroll classes' do
|
|
12
|
+
subject.list_classes.should be_include(scroll)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it '.list should include scroll keys' do
|
|
16
|
+
subject.list.should be_include('scroll_test')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
describe '.for' do
|
|
20
|
+
it 'should find for a given category' do
|
|
21
|
+
AppScrollsScrolls::Scrolls.for('test').should be_include('scroll_test')
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppScrollsScrolls::Template do
|
|
4
|
+
subject{ AppScrollsScrolls::Template }
|
|
5
|
+
let(:scroll){ AppScrollsScrolls::Scroll.generate('name','# test') }
|
|
6
|
+
|
|
7
|
+
describe '#initialize' do
|
|
8
|
+
it 'should work with classes' do
|
|
9
|
+
subject.new([scroll]).scrolls.should == [scroll]
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe '#scrolls_with_dependencies' do
|
|
14
|
+
def s(*deps)
|
|
15
|
+
mock(:Class, :requires => deps, :superclass => AppScrollsScrolls::Scroll)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def scroll(name)
|
|
19
|
+
AppScrollsScrolls::Scrolls[name]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
subject do
|
|
23
|
+
@template = AppScrollsScrolls::Template.new([])
|
|
24
|
+
@template.stub!(:scrolls).and_return(@scrolls)
|
|
25
|
+
@template.stub!(:scroll_classes).and_return(@scrolls)
|
|
26
|
+
@template
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should return the same number scrolls if none have dependencies' do
|
|
30
|
+
@scrolls = [s, s]
|
|
31
|
+
subject.scrolls_with_dependencies.size.should == 2
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'should handle simple dependencies' do
|
|
35
|
+
@scrolls = [s(s, s), s(s)]
|
|
36
|
+
subject.scrolls_with_dependencies.size.should == 5
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it 'should handle multi-level dependencies' do
|
|
40
|
+
@scrolls = [s(s(s))]
|
|
41
|
+
subject.scrolls_with_dependencies.size.should == 3
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'should uniqify' do
|
|
45
|
+
a = s
|
|
46
|
+
b = s(a)
|
|
47
|
+
c = s(s, a, b)
|
|
48
|
+
@scrolls = [a,b,c]
|
|
49
|
+
subject.scrolls_with_dependencies.size.should == 4
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'should resolve and sort' do
|
|
53
|
+
template = AppScrollsScrolls::Template.new([scroll('eycloud')])
|
|
54
|
+
template.resolve_scrolls.should == [scroll('eycloud_recipes_on_deploy'), scroll('git'), scroll('github'), scroll('eycloud')]
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class RailsDirectory
|
|
2
|
+
def initialize(path)
|
|
3
|
+
@path = path
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def file_path(path)
|
|
7
|
+
File.join(@path, path)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def has_file?(path)
|
|
11
|
+
File.exist?(file_path(path))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def [](path)
|
|
15
|
+
File.open(file_path(path)).read
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class TemplateRunner
|
|
2
|
+
attr_reader :template, :config, :app_name, :dir, :rails_dir, :output
|
|
3
|
+
def initialize(template, config)
|
|
4
|
+
@template = template
|
|
5
|
+
@config = config
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def run(app_name = 'rails_app')
|
|
9
|
+
@app_name = app_name
|
|
10
|
+
@dir = Dir.mktmpdir
|
|
11
|
+
@rails_dir = File.join(@dir, @app_name)
|
|
12
|
+
Dir.chrdir(@dir) do
|
|
13
|
+
template_file = File.open 'template.rb', 'w'
|
|
14
|
+
template_file.write
|
|
15
|
+
template_file.close
|
|
16
|
+
@output = `rails new #{@app_name} -m template.rb`
|
|
17
|
+
end
|
|
18
|
+
@output
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def rails
|
|
22
|
+
RailsDirectory.new(@rails_dir)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def clean
|
|
26
|
+
FileUtils.remove_entry_secure @dir
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
def scrolls; @scrolls end
|
|
2
|
+
def scroll?(name); @scrolls.include?(name) end
|
|
3
|
+
|
|
4
|
+
def say_custom(tag, text); say "\033[1m\033[36m" + tag.to_s.rjust(10) + "\033[0m" + " #{text}" end
|
|
5
|
+
def say_scroll(name); say "\033[1m\033[36m" + "scroll".rjust(10) + "\033[0m" + " Running #{name} scroll..." end
|
|
6
|
+
def say_wizard(text); say_custom(@current_scroll || 'wizard', text) end
|
|
7
|
+
|
|
8
|
+
def ask_wizard(question)
|
|
9
|
+
ask "\033[1m\033[30m\033[46m" + (@current_scroll || "prompt").rjust(10) + "\033[0m\033[36m" + " #{question}\033[0m"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def yes_wizard?(question)
|
|
13
|
+
answer = ask_wizard(question + " \033[33m(y/n)\033[0m")
|
|
14
|
+
case answer.downcase
|
|
15
|
+
when "yes", "y"
|
|
16
|
+
true
|
|
17
|
+
when "no", "n"
|
|
18
|
+
false
|
|
19
|
+
else
|
|
20
|
+
yes_wizard?(question)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def no_wizard?(question); !yes_wizard?(question) end
|
|
25
|
+
|
|
26
|
+
def multiple_choice(question, choices)
|
|
27
|
+
say_custom('question', question)
|
|
28
|
+
values = {}
|
|
29
|
+
choices.each_with_index do |choice,i|
|
|
30
|
+
values[(i + 1).to_s] = choice[1]
|
|
31
|
+
say_custom (i + 1).to_s + ')', choice[0]
|
|
32
|
+
end
|
|
33
|
+
answer = ask_wizard("Enter your selection:") while !values.keys.include?(answer)
|
|
34
|
+
values[answer]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
@current_scroll = nil
|
|
38
|
+
@configs = {}
|
|
39
|
+
|
|
40
|
+
@after_blocks = []
|
|
41
|
+
def after_bundler(&block); @after_blocks << [@current_scroll, block]; end
|
|
42
|
+
@after_everything_blocks = []
|
|
43
|
+
def after_everything(&block); @after_everything_blocks << [@current_scroll, block]; end
|
|
44
|
+
@before_configs = {}
|
|
45
|
+
def before_config(&block); @before_configs[@current_scroll] = block; end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# >---------------------------------------------------------------------------<
|
|
2
|
+
#
|
|
3
|
+
# ___ ____ ____
|
|
4
|
+
# / _ | ___ ___ / __/__________ / / /__
|
|
5
|
+
# / __ |/ _ \/ _ \ _\ \/ __/ __/ _ \/ / (_-<
|
|
6
|
+
# /_/ |_/ .__/ .__/ /___/\__/_/ \___/_/_/___/
|
|
7
|
+
# /_/ /_/
|
|
8
|
+
#
|
|
9
|
+
# This template was generated by App Scrolls, the amazing and awesome Rails
|
|
10
|
+
# application template builder. Get started at http://appscrolls.org
|
|
11
|
+
#
|
|
12
|
+
# >---------------------------------------------------------------------------<
|
|
13
|
+
|
|
14
|
+
# >----------------------------[ Initial Setup ]------------------------------<
|
|
15
|
+
|
|
16
|
+
initializer 'generators.rb', <<-RUBY
|
|
17
|
+
Rails.application.config.generators do |g|
|
|
18
|
+
end
|
|
19
|
+
RUBY
|
|
20
|
+
|
|
21
|
+
@scrolls = <%= resolve_scrolls.map(&:key).inspect %>
|
|
22
|
+
|
|
23
|
+
<%= render "helpers" %>
|
|
24
|
+
|
|
25
|
+
<% resolve_scrolls.each do |scroll| %>
|
|
26
|
+
<%= render 'scroll', scroll.get_binding %>
|
|
27
|
+
<% end %>
|
|
28
|
+
|
|
29
|
+
<% if custom_code? %># >-----------------------------[ Custom Code ]-------------------------------<
|
|
30
|
+
|
|
31
|
+
<%= custom_code %><% end %>
|
|
32
|
+
|
|
33
|
+
@current_scroll = nil
|
|
34
|
+
|
|
35
|
+
# >-----------------------------[ Run Bundler ]-------------------------------<
|
|
36
|
+
|
|
37
|
+
say_wizard "Running Bundler install. This will take a while."
|
|
38
|
+
run 'bundle install'
|
|
39
|
+
say_wizard "Running after Bundler callbacks."
|
|
40
|
+
@after_blocks.each{|b| config = @configs[b[0]] || {}; @current_scroll = b[0]; b[1].call}
|
|
41
|
+
|
|
42
|
+
@current_scroll = nil
|
|
43
|
+
say_wizard "Running after everything callbacks."
|
|
44
|
+
@after_everything_blocks.each{|b| config = @configs[b[0]] || {}; @current_scroll = b[0]; b[1].call}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
gem '<%= name %>'
|
|
2
|
+
|
|
3
|
+
after_bundler do
|
|
4
|
+
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
after_everything do
|
|
8
|
+
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
__END__
|
|
12
|
+
|
|
13
|
+
name: <%= name.humanize.capitalize %>
|
|
14
|
+
description:
|
|
15
|
+
website:
|
|
16
|
+
author: <%= `whoami`.strip %>
|
|
17
|
+
|
|
18
|
+
requires: []
|
|
19
|
+
run_after: []
|
|
20
|
+
run_before: []
|
|
21
|
+
|
|
22
|
+
category: other # authentication, testing, persistence, javascript, css, services, deployment, and templating
|
|
23
|
+
# exclusive:
|
|
24
|
+
|
|
25
|
+
# config:
|
|
26
|
+
# - foo:
|
|
27
|
+
# type: boolean
|
|
28
|
+
# prompt: "Is foo true?"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# ><%= "[ #{name} ]".center(75,'-') %><
|
|
2
|
+
|
|
3
|
+
@current_scroll = "<%= key %>"
|
|
4
|
+
@before_configs["<%= key %>"].call if @before_configs["<%= key %>"]
|
|
5
|
+
say_scroll '<%= name %>'
|
|
6
|
+
|
|
7
|
+
<%= config.compile if config %>
|
|
8
|
+
@configs[@current_scroll] = config
|
|
9
|
+
|
|
10
|
+
<%= template %>
|
data/version.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: appscrolls
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.7.0
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Michael Bleigh
|
|
9
|
+
- Dr Nic Williams
|
|
10
|
+
autorequire:
|
|
11
|
+
bindir: bin
|
|
12
|
+
cert_chain: []
|
|
13
|
+
date: 2012-04-09 00:00:00.000000000 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: i18n
|
|
17
|
+
requirement: &70151529778680 !ruby/object:Gem::Requirement
|
|
18
|
+
none: false
|
|
19
|
+
requirements:
|
|
20
|
+
- - ! '>='
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '0'
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: *70151529778680
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: json
|
|
28
|
+
requirement: &70151529791620 !ruby/object:Gem::Requirement
|
|
29
|
+
none: false
|
|
30
|
+
requirements:
|
|
31
|
+
- - =
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 1.6.5
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: *70151529791620
|
|
37
|
+
- !ruby/object:Gem::Dependency
|
|
38
|
+
name: activesupport
|
|
39
|
+
requirement: &70151529788200 !ruby/object:Gem::Requirement
|
|
40
|
+
none: false
|
|
41
|
+
requirements:
|
|
42
|
+
- - ~>
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '3.0'
|
|
45
|
+
type: :runtime
|
|
46
|
+
prerelease: false
|
|
47
|
+
version_requirements: *70151529788200
|
|
48
|
+
- !ruby/object:Gem::Dependency
|
|
49
|
+
name: thor
|
|
50
|
+
requirement: &70151529785580 !ruby/object:Gem::Requirement
|
|
51
|
+
none: false
|
|
52
|
+
requirements:
|
|
53
|
+
- - ! '>='
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
56
|
+
type: :runtime
|
|
57
|
+
prerelease: false
|
|
58
|
+
version_requirements: *70151529785580
|
|
59
|
+
- !ruby/object:Gem::Dependency
|
|
60
|
+
name: rspec
|
|
61
|
+
requirement: &70151529798100 !ruby/object:Gem::Requirement
|
|
62
|
+
none: false
|
|
63
|
+
requirements:
|
|
64
|
+
- - ~>
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: 2.5.0
|
|
67
|
+
type: :development
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: *70151529798100
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: guard-rspec
|
|
72
|
+
requirement: &70151529765520 !ruby/object:Gem::Requirement
|
|
73
|
+
none: false
|
|
74
|
+
requirements:
|
|
75
|
+
- - ! '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
78
|
+
type: :development
|
|
79
|
+
prerelease: false
|
|
80
|
+
version_requirements: *70151529765520
|
|
81
|
+
- !ruby/object:Gem::Dependency
|
|
82
|
+
name: cucumber
|
|
83
|
+
requirement: &70151529757920 !ruby/object:Gem::Requirement
|
|
84
|
+
none: false
|
|
85
|
+
requirements:
|
|
86
|
+
- - ! '>='
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
type: :development
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: *70151529757920
|
|
92
|
+
- !ruby/object:Gem::Dependency
|
|
93
|
+
name: guard-cucumber
|
|
94
|
+
requirement: &70151529804360 !ruby/object:Gem::Requirement
|
|
95
|
+
none: false
|
|
96
|
+
requirements:
|
|
97
|
+
- - ! '>='
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '0'
|
|
100
|
+
type: :development
|
|
101
|
+
prerelease: false
|
|
102
|
+
version_requirements: *70151529804360
|
|
103
|
+
- !ruby/object:Gem::Dependency
|
|
104
|
+
name: bundler
|
|
105
|
+
requirement: &70151529815720 !ruby/object:Gem::Requirement
|
|
106
|
+
none: false
|
|
107
|
+
requirements:
|
|
108
|
+
- - ~>
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 1.1.0
|
|
111
|
+
type: :development
|
|
112
|
+
prerelease: false
|
|
113
|
+
version_requirements: *70151529815720
|
|
114
|
+
- !ruby/object:Gem::Dependency
|
|
115
|
+
name: guard-bundler
|
|
116
|
+
requirement: &70151529828480 !ruby/object:Gem::Requirement
|
|
117
|
+
none: false
|
|
118
|
+
requirements:
|
|
119
|
+
- - ! '>='
|
|
120
|
+
- !ruby/object:Gem::Version
|
|
121
|
+
version: '0'
|
|
122
|
+
type: :development
|
|
123
|
+
prerelease: false
|
|
124
|
+
version_requirements: *70151529828480
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rails
|
|
127
|
+
requirement: &70151529843540 !ruby/object:Gem::Requirement
|
|
128
|
+
none: false
|
|
129
|
+
requirements:
|
|
130
|
+
- - ~>
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: '3.0'
|
|
133
|
+
type: :development
|
|
134
|
+
prerelease: false
|
|
135
|
+
version_requirements: *70151529843540
|
|
136
|
+
description: ! 'The App Scrolls is a magical tool to generate new Rails and modify
|
|
137
|
+
existing Rails applications (coming) to include your favourite, powerful magic. '
|
|
138
|
+
email:
|
|
139
|
+
- michael@intridea.com
|
|
140
|
+
- drnicwilliams@gmail.com
|
|
141
|
+
executables:
|
|
142
|
+
- appscrolls
|
|
143
|
+
extensions: []
|
|
144
|
+
extra_rdoc_files: []
|
|
145
|
+
files:
|
|
146
|
+
- .gitignore
|
|
147
|
+
- .rspec
|
|
148
|
+
- .travis.yml
|
|
149
|
+
- ChangeLog.md
|
|
150
|
+
- Gemfile
|
|
151
|
+
- Guardfile
|
|
152
|
+
- MIT_LICENSE
|
|
153
|
+
- README.md
|
|
154
|
+
- Rakefile
|
|
155
|
+
- appscrolls.gemspec
|
|
156
|
+
- bin/appscrolls
|
|
157
|
+
- features/step_definitions/common_steps.rb
|
|
158
|
+
- features/support/common.rb
|
|
159
|
+
- features/support/env.rb
|
|
160
|
+
- lib/appscrolls.rb
|
|
161
|
+
- lib/appscrolls/command.rb
|
|
162
|
+
- lib/appscrolls/config.rb
|
|
163
|
+
- lib/appscrolls/scroll.rb
|
|
164
|
+
- lib/appscrolls/scrolls.rb
|
|
165
|
+
- lib/appscrolls/template.rb
|
|
166
|
+
- lib/rails/generators/.DS_Store
|
|
167
|
+
- lib/rails/generators/run_template/USAGE
|
|
168
|
+
- lib/rails/generators/run_template/run_template_generator.rb
|
|
169
|
+
- sample.rb
|
|
170
|
+
- scrolls/active_admin.rb
|
|
171
|
+
- scrolls/capybara.rb
|
|
172
|
+
- scrolls/cucumber.rb
|
|
173
|
+
- scrolls/delayed_job.rb
|
|
174
|
+
- scrolls/env_yaml.rb
|
|
175
|
+
- scrolls/eycloud.rb
|
|
176
|
+
- scrolls/eycloud_recipes_on_deploy.rb
|
|
177
|
+
- scrolls/git.rb
|
|
178
|
+
- scrolls/github.rb
|
|
179
|
+
- scrolls/guard.rb
|
|
180
|
+
- scrolls/jquery.rb
|
|
181
|
+
- scrolls/mysql.rb
|
|
182
|
+
- scrolls/passenger.rb
|
|
183
|
+
- scrolls/postgresql.rb
|
|
184
|
+
- scrolls/prototype.rb
|
|
185
|
+
- scrolls/puma.rb
|
|
186
|
+
- scrolls/rails_basics.rb
|
|
187
|
+
- scrolls/redis.rb
|
|
188
|
+
- scrolls/resque.rb
|
|
189
|
+
- scrolls/rspec.rb
|
|
190
|
+
- scrolls/simple_form.rb
|
|
191
|
+
- scrolls/split.rb
|
|
192
|
+
- scrolls/spork.rb
|
|
193
|
+
- scrolls/sqlite3.rb
|
|
194
|
+
- scrolls/test_unit.rb
|
|
195
|
+
- scrolls/thin.rb
|
|
196
|
+
- scrolls/twitter_bootstrap.rb
|
|
197
|
+
- scrolls/unicorn.rb
|
|
198
|
+
- scrolls/zzz/activerecord.rb
|
|
199
|
+
- scrolls/zzz/cancan.rb
|
|
200
|
+
- scrolls/zzz/carrierwave.rb
|
|
201
|
+
- scrolls/zzz/carrierwave_direct.rb
|
|
202
|
+
- scrolls/zzz/cartographer.rb
|
|
203
|
+
- scrolls/zzz/devise.rb
|
|
204
|
+
- scrolls/zzz/devise_invitable.rb
|
|
205
|
+
- scrolls/zzz/event_calendar.rb
|
|
206
|
+
- scrolls/zzz/factory_girl.rb
|
|
207
|
+
- scrolls/zzz/ffaker.rb
|
|
208
|
+
- scrolls/zzz/fixture_builder.rb
|
|
209
|
+
- scrolls/zzz/forgery.rb
|
|
210
|
+
- scrolls/zzz/haml.rb
|
|
211
|
+
- scrolls/zzz/heroku.rb
|
|
212
|
+
- scrolls/zzz/hoptoad.rb
|
|
213
|
+
- scrolls/zzz/inherited_resources.rb
|
|
214
|
+
- scrolls/zzz/intercom.rb
|
|
215
|
+
- scrolls/zzz/jammit.rb
|
|
216
|
+
- scrolls/zzz/jasmine.rb
|
|
217
|
+
- scrolls/zzz/mini_magick.rb
|
|
218
|
+
- scrolls/zzz/mongo_mapper.rb
|
|
219
|
+
- scrolls/zzz/mongohq.rb
|
|
220
|
+
- scrolls/zzz/mongoid.rb
|
|
221
|
+
- scrolls/zzz/mootools.rb
|
|
222
|
+
- scrolls/zzz/newrelic.rb
|
|
223
|
+
- scrolls/zzz/nifty_generators.rb
|
|
224
|
+
- scrolls/zzz/oa_oauth.rb
|
|
225
|
+
- scrolls/zzz/omniauth.rb
|
|
226
|
+
- scrolls/zzz/paper_trail.rb
|
|
227
|
+
- scrolls/zzz/pow.rb
|
|
228
|
+
- scrolls/zzz/rails_admin.rb
|
|
229
|
+
- scrolls/zzz/rails_dev_tweaks.rb
|
|
230
|
+
- scrolls/zzz/rails_erd.rb
|
|
231
|
+
- scrolls/zzz/rails_footnotes.rb
|
|
232
|
+
- scrolls/zzz/ransack.rb
|
|
233
|
+
- scrolls/zzz/rmagick.rb
|
|
234
|
+
- scrolls/zzz/sass.rb
|
|
235
|
+
- scrolls/zzz/sequel.rb
|
|
236
|
+
- scrolls/zzz/settingslogic.rb
|
|
237
|
+
- scrolls/zzz/shoulda_matchers.rb
|
|
238
|
+
- scrolls/zzz/sidekiq.rb
|
|
239
|
+
- scrolls/zzz/slim.rb
|
|
240
|
+
- scrolls/zzz/thinking_sphinx.rb
|
|
241
|
+
- scrolls/zzz/vanity.rb
|
|
242
|
+
- spec/appscrolls/config_spec.rb
|
|
243
|
+
- spec/appscrolls/scroll_spec.rb
|
|
244
|
+
- spec/appscrolls/scrolls/sanity_spec.rb
|
|
245
|
+
- spec/appscrolls/scrolls_spec.rb
|
|
246
|
+
- spec/appscrolls/template_spec.rb
|
|
247
|
+
- spec/spec_helper.rb
|
|
248
|
+
- spec/support/rails_directory.rb
|
|
249
|
+
- spec/support/template_runner.rb
|
|
250
|
+
- templates/helpers.erb
|
|
251
|
+
- templates/layout.erb
|
|
252
|
+
- templates/new_scroll.erb
|
|
253
|
+
- templates/scroll.erb
|
|
254
|
+
- version.rb
|
|
255
|
+
homepage: http://appscrolls.org/
|
|
256
|
+
licenses: []
|
|
257
|
+
post_install_message:
|
|
258
|
+
rdoc_options: []
|
|
259
|
+
require_paths:
|
|
260
|
+
- lib
|
|
261
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
262
|
+
none: false
|
|
263
|
+
requirements:
|
|
264
|
+
- - ! '>='
|
|
265
|
+
- !ruby/object:Gem::Version
|
|
266
|
+
version: '0'
|
|
267
|
+
segments:
|
|
268
|
+
- 0
|
|
269
|
+
hash: 2425115342394268705
|
|
270
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
|
+
none: false
|
|
272
|
+
requirements:
|
|
273
|
+
- - ! '>='
|
|
274
|
+
- !ruby/object:Gem::Version
|
|
275
|
+
version: '0'
|
|
276
|
+
segments:
|
|
277
|
+
- 0
|
|
278
|
+
hash: 2425115342394268705
|
|
279
|
+
requirements: []
|
|
280
|
+
rubyforge_project:
|
|
281
|
+
rubygems_version: 1.8.17
|
|
282
|
+
signing_key:
|
|
283
|
+
specification_version: 3
|
|
284
|
+
summary: The App Scrolls is a magical tool to generate new Rails and modify existing
|
|
285
|
+
Rails applications (coming) to include your favourite, powerful magic.
|
|
286
|
+
test_files:
|
|
287
|
+
- features/step_definitions/common_steps.rb
|
|
288
|
+
- features/support/common.rb
|
|
289
|
+
- features/support/env.rb
|
|
290
|
+
- spec/appscrolls/config_spec.rb
|
|
291
|
+
- spec/appscrolls/scroll_spec.rb
|
|
292
|
+
- spec/appscrolls/scrolls/sanity_spec.rb
|
|
293
|
+
- spec/appscrolls/scrolls_spec.rb
|
|
294
|
+
- spec/appscrolls/template_spec.rb
|
|
295
|
+
- spec/spec_helper.rb
|
|
296
|
+
- spec/support/rails_directory.rb
|
|
297
|
+
- spec/support/template_runner.rb
|