eldarscrolls 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/.gitignore +8 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +6 -0
  4. data/ChangeLog.md +63 -0
  5. data/Gemfile +3 -0
  6. data/Guardfile +18 -0
  7. data/MIT_LICENSE +20 -0
  8. data/README.md +157 -0
  9. data/Rakefile +78 -0
  10. data/bin/eldar +7 -0
  11. data/bin/eldarscrolls +7 -0
  12. data/eldarscrolls.gemspec +32 -0
  13. data/features/step_definitions/common_steps.rb +211 -0
  14. data/features/support/common.rb +51 -0
  15. data/features/support/env.rb +18 -0
  16. data/lib/eldarscrolls.rb +10 -0
  17. data/lib/eldarscrolls/command.rb +85 -0
  18. data/lib/eldarscrolls/config.rb +86 -0
  19. data/lib/eldarscrolls/scroll.rb +106 -0
  20. data/lib/eldarscrolls/scrolls.rb +38 -0
  21. data/lib/eldarscrolls/template.rb +67 -0
  22. data/lib/rails/generators/.DS_Store +0 -0
  23. data/lib/rails/generators/run_template/USAGE +13 -0
  24. data/lib/rails/generators/run_template/run_template_generator.rb +13 -0
  25. data/sample.rb +74 -0
  26. data/scrolls/active_admin.rb +19 -0
  27. data/scrolls/capybara.rb +34 -0
  28. data/scrolls/cucumber.rb +21 -0
  29. data/scrolls/delayed_job.rb +94 -0
  30. data/scrolls/env_yaml.rb +53 -0
  31. data/scrolls/eycloud.rb +72 -0
  32. data/scrolls/eycloud_recipes_on_deploy.rb +20 -0
  33. data/scrolls/git.rb +17 -0
  34. data/scrolls/github.rb +38 -0
  35. data/scrolls/guard.rb +75 -0
  36. data/scrolls/jquery.rb +11 -0
  37. data/scrolls/mysql.rb +51 -0
  38. data/scrolls/passenger.rb +11 -0
  39. data/scrolls/postgresql.rb +54 -0
  40. data/scrolls/prototype.rb +21 -0
  41. data/scrolls/puma.rb +11 -0
  42. data/scrolls/rails_basics.rb +54 -0
  43. data/scrolls/redis.rb +19 -0
  44. data/scrolls/resque.rb +59 -0
  45. data/scrolls/rspec.rb +21 -0
  46. data/scrolls/simple_form.rb +19 -0
  47. data/scrolls/split.rb +35 -0
  48. data/scrolls/spork.rb +19 -0
  49. data/scrolls/sqlite3.rb +10 -0
  50. data/scrolls/test_unit.rb +11 -0
  51. data/scrolls/thin.rb +10 -0
  52. data/scrolls/twitter_bootstrap.rb +41 -0
  53. data/scrolls/unicorn.rb +10 -0
  54. data/scrolls/zzz/activerecord.rb +69 -0
  55. data/scrolls/zzz/cancan.rb +16 -0
  56. data/scrolls/zzz/carrierwave.rb +42 -0
  57. data/scrolls/zzz/carrierwave_direct.rb +13 -0
  58. data/scrolls/zzz/cartographer.rb +33 -0
  59. data/scrolls/zzz/devise.rb +52 -0
  60. data/scrolls/zzz/devise_invitable.rb +23 -0
  61. data/scrolls/zzz/event_calendar.rb +12 -0
  62. data/scrolls/zzz/factory_girl.rb +38 -0
  63. data/scrolls/zzz/ffaker.rb +22 -0
  64. data/scrolls/zzz/fixture_builder.rb +35 -0
  65. data/scrolls/zzz/forgery.rb +15 -0
  66. data/scrolls/zzz/haml.rb +11 -0
  67. data/scrolls/zzz/heroku.rb +58 -0
  68. data/scrolls/zzz/hoptoad.rb +34 -0
  69. data/scrolls/zzz/inherited_resources.rb +12 -0
  70. data/scrolls/zzz/intercom.rb +35 -0
  71. data/scrolls/zzz/jammit.rb +43 -0
  72. data/scrolls/zzz/jasmine.rb +12 -0
  73. data/scrolls/zzz/mini_magick.rb +13 -0
  74. data/scrolls/zzz/mongo_mapper.rb +20 -0
  75. data/scrolls/zzz/mongohq.rb +61 -0
  76. data/scrolls/zzz/mongoid.rb +20 -0
  77. data/scrolls/zzz/mootools.rb +23 -0
  78. data/scrolls/zzz/newrelic.rb +11 -0
  79. data/scrolls/zzz/nifty_generators.rb +21 -0
  80. data/scrolls/zzz/oa_oauth.rb +12 -0
  81. data/scrolls/zzz/omniauth.rb +55 -0
  82. data/scrolls/zzz/paper_trail.rb +17 -0
  83. data/scrolls/zzz/pow.rb +12 -0
  84. data/scrolls/zzz/rails_admin.rb +22 -0
  85. data/scrolls/zzz/rails_dev_tweaks.rb +10 -0
  86. data/scrolls/zzz/rails_erd.rb +9 -0
  87. data/scrolls/zzz/rails_footnotes.rb +14 -0
  88. data/scrolls/zzz/ransack.rb +32 -0
  89. data/scrolls/zzz/rmagick.rb +13 -0
  90. data/scrolls/zzz/sass.rb +13 -0
  91. data/scrolls/zzz/sequel.rb +13 -0
  92. data/scrolls/zzz/settingslogic.rb +43 -0
  93. data/scrolls/zzz/shoulda_matchers.rb +11 -0
  94. data/scrolls/zzz/sidekiq.rb +23 -0
  95. data/scrolls/zzz/slim.rb +11 -0
  96. data/scrolls/zzz/thinking_sphinx.rb +14 -0
  97. data/scrolls/zzz/vanity.rb +35 -0
  98. data/spec/eldarscrolls/config_spec.rb +99 -0
  99. data/spec/eldarscrolls/scroll_spec.rb +103 -0
  100. data/spec/eldarscrolls/scrolls/sanity_spec.rb +30 -0
  101. data/spec/eldarscrolls/scrolls_spec.rb +24 -0
  102. data/spec/eldarscrolls/template_spec.rb +57 -0
  103. data/spec/spec_helper.rb +11 -0
  104. data/spec/support/rails_directory.rb +17 -0
  105. data/spec/support/template_runner.rb +28 -0
  106. data/templates/helpers.erb +45 -0
  107. data/templates/layout.erb +43 -0
  108. data/templates/new_scroll.erb +28 -0
  109. data/templates/scroll.erb +10 -0
  110. data/version.rb +3 -0
  111. metadata +299 -0
@@ -0,0 +1,103 @@
1
+ require 'spec_helper'
2
+
3
+ describe EldarScrolls::Scroll do
4
+ context "with a generated scroll" do
5
+ subject{ EldarScrolls::Scroll.generate('scroll_example', "# this is a test", :category => 'example', :name => "Eldar Example") }
6
+
7
+ context 'string setter methods' do
8
+ (EldarScrolls::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 = EldarScrolls::Scroll.generate('some_key', '# some code', :name => "Example")
30
+ scroll.superclass.should == EldarScrolls::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 = EldarScrolls::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{EldarScrolls::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 = EldarScrolls::Scroll.generate('abc','# test')
72
+
73
+ EldarScrolls::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{ EldarScrolls::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
+ EldarScrolls::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(EldarScrolls::Config)
22
+ end
23
+ end
24
+
25
+ it "should be in the list" do
26
+ EldarScrolls::Scrolls.list_classes.should be_include(scroll)
27
+ EldarScrolls::Scrolls.list.should be_include(scroll.key)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe EldarScrolls::Scrolls do
4
+ subject{ EldarScrolls::Scrolls }
5
+ let(:scroll){ EldarScrolls::Scroll.generate("scroll_test", "# Testing", :name => "Test Scroll", :category => "test", :description => "Just a test.")}
6
+
7
+ before(:all) do
8
+ EldarScrolls::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
+ EldarScrolls::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 EldarScrolls::Template do
4
+ subject{ EldarScrolls::Template }
5
+ let(:scroll){ EldarScrolls::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 => EldarScrolls::Scroll)
16
+ end
17
+
18
+ def scroll(name)
19
+ EldarScrolls::Scrolls[name]
20
+ end
21
+
22
+ subject do
23
+ @template = EldarScrolls::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 = EldarScrolls::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
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ Bundler.setup
3
+ require 'rspec'
4
+
5
+ Dir[File.dirname(__FILE__) + '/support/*'].each{|path| require path}
6
+
7
+ require 'eldarscrolls'
8
+
9
+ RSpec.configure do |config|
10
+
11
+ end
@@ -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,43 @@
1
+ # >---------------------------------------------------------------------------<
2
+ #
3
+ # ______ __ ____ ____
4
+ # / __/ /__/ /__ _____ / __/__________ / / /__
5
+ # / _// / _ / _ `/ __/ _\ \/ __/ __/ _ \/ / (_-<
6
+ # /___/_/\_,_/\_,_/_/ /___/\__/_/ \___/_/_/___/
7
+ #
8
+ # This template was generated by Eldar Scrolls, the amazing and awesome Rails
9
+ # application template builder. Get started at http://eldarscrolls.org
10
+ #
11
+ # >---------------------------------------------------------------------------<
12
+
13
+ # >----------------------------[ Initial Setup ]------------------------------<
14
+
15
+ initializer 'generators.rb', <<-RUBY
16
+ Rails.application.config.generators do |g|
17
+ end
18
+ RUBY
19
+
20
+ @scrolls = <%= resolve_scrolls.map(&:key).inspect %>
21
+
22
+ <%= render "helpers" %>
23
+
24
+ <% resolve_scrolls.each do |scroll| %>
25
+ <%= render 'scroll', scroll.get_binding %>
26
+ <% end %>
27
+
28
+ <% if custom_code? %># >-----------------------------[ Custom Code ]-------------------------------<
29
+
30
+ <%= custom_code %><% end %>
31
+
32
+ @current_scroll = nil
33
+
34
+ # >-----------------------------[ Run Bundler ]-------------------------------<
35
+
36
+ say_wizard "Running Bundler install. This will take a while."
37
+ run 'bundle install'
38
+ say_wizard "Running after Bundler callbacks."
39
+ @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_scroll = b[0]; b[1].call}
40
+
41
+ @current_scroll = nil
42
+ say_wizard "Running after everything callbacks."
43
+ @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 %>
@@ -0,0 +1,3 @@
1
+ module EldarScrolls
2
+ VERSION = "0.7.0"
3
+ end
metadata ADDED
@@ -0,0 +1,299 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eldarscrolls
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: &70276957378520 !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: *70276957378520
26
+ - !ruby/object:Gem::Dependency
27
+ name: json
28
+ requirement: &70276957376440 !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: *70276957376440
37
+ - !ruby/object:Gem::Dependency
38
+ name: activesupport
39
+ requirement: &70276957395860 !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: *70276957395860
48
+ - !ruby/object:Gem::Dependency
49
+ name: thor
50
+ requirement: &70276957393280 !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: *70276957393280
59
+ - !ruby/object:Gem::Dependency
60
+ name: rspec
61
+ requirement: &70276957390260 !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: *70276957390260
70
+ - !ruby/object:Gem::Dependency
71
+ name: guard-rspec
72
+ requirement: &70276957388400 !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: *70276957388400
81
+ - !ruby/object:Gem::Dependency
82
+ name: cucumber
83
+ requirement: &70276957410240 !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: *70276957410240
92
+ - !ruby/object:Gem::Dependency
93
+ name: guard-cucumber
94
+ requirement: &70276957408420 !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: *70276957408420
103
+ - !ruby/object:Gem::Dependency
104
+ name: bundler
105
+ requirement: &70276957405620 !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: *70276957405620
114
+ - !ruby/object:Gem::Dependency
115
+ name: guard-bundler
116
+ requirement: &70276957404840 !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: *70276957404840
125
+ - !ruby/object:Gem::Dependency
126
+ name: rails
127
+ requirement: &70276957420200 !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: *70276957420200
136
+ description: ! 'The Eldar 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
+ - eldar
143
+ - eldarscrolls
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - .gitignore
148
+ - .rspec
149
+ - .travis.yml
150
+ - ChangeLog.md
151
+ - Gemfile
152
+ - Guardfile
153
+ - MIT_LICENSE
154
+ - README.md
155
+ - Rakefile
156
+ - bin/eldar
157
+ - bin/eldarscrolls
158
+ - eldarscrolls.gemspec
159
+ - features/step_definitions/common_steps.rb
160
+ - features/support/common.rb
161
+ - features/support/env.rb
162
+ - lib/eldarscrolls.rb
163
+ - lib/eldarscrolls/command.rb
164
+ - lib/eldarscrolls/config.rb
165
+ - lib/eldarscrolls/scroll.rb
166
+ - lib/eldarscrolls/scrolls.rb
167
+ - lib/eldarscrolls/template.rb
168
+ - lib/rails/generators/.DS_Store
169
+ - lib/rails/generators/run_template/USAGE
170
+ - lib/rails/generators/run_template/run_template_generator.rb
171
+ - sample.rb
172
+ - scrolls/active_admin.rb
173
+ - scrolls/capybara.rb
174
+ - scrolls/cucumber.rb
175
+ - scrolls/delayed_job.rb
176
+ - scrolls/env_yaml.rb
177
+ - scrolls/eycloud.rb
178
+ - scrolls/eycloud_recipes_on_deploy.rb
179
+ - scrolls/git.rb
180
+ - scrolls/github.rb
181
+ - scrolls/guard.rb
182
+ - scrolls/jquery.rb
183
+ - scrolls/mysql.rb
184
+ - scrolls/passenger.rb
185
+ - scrolls/postgresql.rb
186
+ - scrolls/prototype.rb
187
+ - scrolls/puma.rb
188
+ - scrolls/rails_basics.rb
189
+ - scrolls/redis.rb
190
+ - scrolls/resque.rb
191
+ - scrolls/rspec.rb
192
+ - scrolls/simple_form.rb
193
+ - scrolls/split.rb
194
+ - scrolls/spork.rb
195
+ - scrolls/sqlite3.rb
196
+ - scrolls/test_unit.rb
197
+ - scrolls/thin.rb
198
+ - scrolls/twitter_bootstrap.rb
199
+ - scrolls/unicorn.rb
200
+ - scrolls/zzz/activerecord.rb
201
+ - scrolls/zzz/cancan.rb
202
+ - scrolls/zzz/carrierwave.rb
203
+ - scrolls/zzz/carrierwave_direct.rb
204
+ - scrolls/zzz/cartographer.rb
205
+ - scrolls/zzz/devise.rb
206
+ - scrolls/zzz/devise_invitable.rb
207
+ - scrolls/zzz/event_calendar.rb
208
+ - scrolls/zzz/factory_girl.rb
209
+ - scrolls/zzz/ffaker.rb
210
+ - scrolls/zzz/fixture_builder.rb
211
+ - scrolls/zzz/forgery.rb
212
+ - scrolls/zzz/haml.rb
213
+ - scrolls/zzz/heroku.rb
214
+ - scrolls/zzz/hoptoad.rb
215
+ - scrolls/zzz/inherited_resources.rb
216
+ - scrolls/zzz/intercom.rb
217
+ - scrolls/zzz/jammit.rb
218
+ - scrolls/zzz/jasmine.rb
219
+ - scrolls/zzz/mini_magick.rb
220
+ - scrolls/zzz/mongo_mapper.rb
221
+ - scrolls/zzz/mongohq.rb
222
+ - scrolls/zzz/mongoid.rb
223
+ - scrolls/zzz/mootools.rb
224
+ - scrolls/zzz/newrelic.rb
225
+ - scrolls/zzz/nifty_generators.rb
226
+ - scrolls/zzz/oa_oauth.rb
227
+ - scrolls/zzz/omniauth.rb
228
+ - scrolls/zzz/paper_trail.rb
229
+ - scrolls/zzz/pow.rb
230
+ - scrolls/zzz/rails_admin.rb
231
+ - scrolls/zzz/rails_dev_tweaks.rb
232
+ - scrolls/zzz/rails_erd.rb
233
+ - scrolls/zzz/rails_footnotes.rb
234
+ - scrolls/zzz/ransack.rb
235
+ - scrolls/zzz/rmagick.rb
236
+ - scrolls/zzz/sass.rb
237
+ - scrolls/zzz/sequel.rb
238
+ - scrolls/zzz/settingslogic.rb
239
+ - scrolls/zzz/shoulda_matchers.rb
240
+ - scrolls/zzz/sidekiq.rb
241
+ - scrolls/zzz/slim.rb
242
+ - scrolls/zzz/thinking_sphinx.rb
243
+ - scrolls/zzz/vanity.rb
244
+ - spec/eldarscrolls/config_spec.rb
245
+ - spec/eldarscrolls/scroll_spec.rb
246
+ - spec/eldarscrolls/scrolls/sanity_spec.rb
247
+ - spec/eldarscrolls/scrolls_spec.rb
248
+ - spec/eldarscrolls/template_spec.rb
249
+ - spec/spec_helper.rb
250
+ - spec/support/rails_directory.rb
251
+ - spec/support/template_runner.rb
252
+ - templates/helpers.erb
253
+ - templates/layout.erb
254
+ - templates/new_scroll.erb
255
+ - templates/scroll.erb
256
+ - version.rb
257
+ homepage: http://eldarscrolls.org/
258
+ licenses: []
259
+ post_install_message:
260
+ rdoc_options: []
261
+ require_paths:
262
+ - lib
263
+ required_ruby_version: !ruby/object:Gem::Requirement
264
+ none: false
265
+ requirements:
266
+ - - ! '>='
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
269
+ segments:
270
+ - 0
271
+ hash: 832353447708646036
272
+ required_rubygems_version: !ruby/object:Gem::Requirement
273
+ none: false
274
+ requirements:
275
+ - - ! '>='
276
+ - !ruby/object:Gem::Version
277
+ version: '0'
278
+ segments:
279
+ - 0
280
+ hash: 832353447708646036
281
+ requirements: []
282
+ rubyforge_project:
283
+ rubygems_version: 1.8.17
284
+ signing_key:
285
+ specification_version: 3
286
+ summary: The Eldar Scrolls is a magical tool to generate new Rails and modify existing
287
+ Rails applications (coming) to include your favourite, powerful magic.
288
+ test_files:
289
+ - features/step_definitions/common_steps.rb
290
+ - features/support/common.rb
291
+ - features/support/env.rb
292
+ - spec/eldarscrolls/config_spec.rb
293
+ - spec/eldarscrolls/scroll_spec.rb
294
+ - spec/eldarscrolls/scrolls/sanity_spec.rb
295
+ - spec/eldarscrolls/scrolls_spec.rb
296
+ - spec/eldarscrolls/template_spec.rb
297
+ - spec/spec_helper.rb
298
+ - spec/support/rails_directory.rb
299
+ - spec/support/template_runner.rb