rang 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.rspec +3 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +195 -0
- data/Rakefile +1 -0
- data/TODO.md +43 -0
- data/app/controllers/rang/application_controller.rb +4 -0
- data/app/controllers/rang/root_controller.rb +7 -0
- data/config/routes.rb +3 -0
- data/lib/rails/generators/rang/add_root/add_root_generator.rb +12 -0
- data/lib/rails/generators/rang/api/configure/configure_generator.rb +70 -0
- data/lib/rails/generators/rang/api/configure/templates/active_model_serializer.rb +5 -0
- data/lib/rails/generators/rang/assets/init/init_generator.rb +52 -0
- data/lib/rails/generators/rang/assets/init/templates/_base.scss +11 -0
- data/lib/rails/generators/rang/assets/init/templates/application.js +14 -0
- data/lib/rails/generators/rang/assets/init/templates/application.scss +3 -0
- data/lib/rails/generators/rang/assets/init/templates/components.js +2 -0
- data/lib/rails/generators/rang/bower/add/add_generator.rb +48 -0
- data/lib/rails/generators/rang/bower/bower_generator.rb +28 -0
- data/lib/rails/generators/rang/bower/init/init_generator.rb +35 -0
- data/lib/rails/generators/rang/example/example_generator.rb +17 -0
- data/lib/rails/generators/rang/example/templates/frontend/application.js.tt +21 -0
- data/lib/rails/generators/rang/example/templates/frontend/application.scss +6 -0
- data/lib/rails/generators/rang/example/templates/frontend/components/components.js +2 -0
- data/lib/rails/generators/rang/example/templates/frontend/components/simple_format/simple_format.directive.js +12 -0
- data/lib/rails/generators/rang/example/templates/frontend/components/simple_format/simple_format.module.js +4 -0
- data/lib/rails/generators/rang/example/templates/frontend/posts/index.ctrl.js.tt +6 -0
- data/lib/rails/generators/rang/example/templates/frontend/posts/index.ctrl.spec.js.tt +12 -0
- data/lib/rails/generators/rang/example/templates/frontend/posts/index.slim.tt +14 -0
- data/lib/rails/generators/rang/example/templates/frontend/posts/posts.module.js.tt +12 -0
- data/lib/rails/generators/rang/example/templates/frontend/posts/posts.scss +3 -0
- data/lib/rails/generators/rang/example/templates/frontend/posts/posts.service.js.tt +44 -0
- data/lib/rails/generators/rang/example/templates/frontend/style/_base.scss +11 -0
- data/lib/rails/generators/rang/example/templates/frontend/style/_layout.scss +3 -0
- data/lib/rails/generators/rang/install/install_generator.rb +66 -0
- data/lib/rails/generators/rang/install/templates/rang.rb +25 -0
- data/lib/rails/generators/rang/teaspoon/install/install_generator.rb +75 -0
- data/lib/rang.rb +18 -0
- data/lib/rang/config.rb +12 -0
- data/lib/rang/engine/railtie.rb +5 -0
- data/lib/rang/helpers.rb +35 -0
- data/lib/rang/patcher.rb +50 -0
- data/lib/rang/util.rb +11 -0
- data/lib/rang/version.rb +3 -0
- data/rang.gemspec +29 -0
- data/spec/controllers/root_controller_spec.rb +12 -0
- data/spec/generators/add_root_spec.rb +21 -0
- data/spec/generators/api_configure_spec.rb +44 -0
- data/spec/generators/assets_init_spec.rb +91 -0
- data/spec/generators/bower_add_spec.rb +61 -0
- data/spec/generators/bower_init_spec.rb +57 -0
- data/spec/generators/install_spec.rb +40 -0
- data/spec/generators/teaspoon_install_spec.rb +123 -0
- data/spec/helpers_spec.rb +64 -0
- data/spec/patcher_spec.rb +103 -0
- data/spec/rails_app/.gitignore +16 -0
- data/spec/rails_app/Gemfile +41 -0
- data/spec/rails_app/README.rdoc +28 -0
- data/spec/rails_app/Rakefile +6 -0
- data/spec/rails_app/app/assets/images/.keep +0 -0
- data/spec/rails_app/app/assets/javascripts/application.js +16 -0
- data/spec/rails_app/app/assets/stylesheets/application.css +15 -0
- data/spec/rails_app/app/controllers/application_controller.rb +5 -0
- data/spec/rails_app/app/controllers/concerns/.keep +0 -0
- data/spec/rails_app/app/helpers/application_helper.rb +2 -0
- data/spec/rails_app/app/mailers/.keep +0 -0
- data/spec/rails_app/app/models/.keep +0 -0
- data/spec/rails_app/app/models/concerns/.keep +0 -0
- data/spec/rails_app/app/views/layouts/application.html.erb +14 -0
- data/spec/rails_app/bin/bundle +3 -0
- data/spec/rails_app/bin/rails +8 -0
- data/spec/rails_app/bin/rake +8 -0
- data/spec/rails_app/bin/spring +18 -0
- data/spec/rails_app/config.ru +4 -0
- data/spec/rails_app/config/application.rb +23 -0
- data/spec/rails_app/config/boot.rb +4 -0
- data/spec/rails_app/config/database.yml +25 -0
- data/spec/rails_app/config/environment.rb +5 -0
- data/spec/rails_app/config/environments/development.rb +37 -0
- data/spec/rails_app/config/environments/production.rb +82 -0
- data/spec/rails_app/config/environments/test.rb +39 -0
- data/spec/rails_app/config/initializers/assets.rb +8 -0
- data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/rails_app/config/initializers/cookies_serializer.rb +3 -0
- data/spec/rails_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/rails_app/config/initializers/inflections.rb +16 -0
- data/spec/rails_app/config/initializers/mime_types.rb +4 -0
- data/spec/rails_app/config/initializers/session_store.rb +3 -0
- data/spec/rails_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/rails_app/config/locales/en.yml +23 -0
- data/spec/rails_app/config/routes.rb +56 -0
- data/spec/rails_app/config/secrets.yml +22 -0
- data/spec/rails_app/db/seeds.rb +7 -0
- data/spec/rails_app/lib/assets/.keep +0 -0
- data/spec/rails_app/lib/tasks/.keep +0 -0
- data/spec/rails_app/log/.keep +0 -0
- data/spec/rails_app/public/404.html +67 -0
- data/spec/rails_app/public/422.html +67 -0
- data/spec/rails_app/public/500.html +66 -0
- data/spec/rails_app/public/favicon.ico +0 -0
- data/spec/rails_app/public/robots.txt +5 -0
- data/spec/rails_app/test/controllers/.keep +0 -0
- data/spec/rails_app/test/fixtures/.keep +0 -0
- data/spec/rails_app/test/helpers/.keep +0 -0
- data/spec/rails_app/test/integration/.keep +0 -0
- data/spec/rails_app/test/mailers/.keep +0 -0
- data/spec/rails_app/test/models/.keep +0 -0
- data/spec/rails_app/test/test_helper.rb +10 -0
- data/spec/rails_app/vendor/assets/javascripts/.keep +0 -0
- data/spec/rails_app/vendor/assets/stylesheets/.keep +0 -0
- data/spec/spec_helper.rb +79 -0
- data/spec/util_spec.rb +27 -0
- data/spec/version_spec.rb +9 -0
- data/vendor/assets/javascripts/angular-templates.js.erb +14 -0
- metadata +327 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rails/generators'
|
3
|
+
require_relative '../../lib/rails/generators/rang/install/install_generator.rb'
|
4
|
+
|
5
|
+
describe Rang::Generators::InstallGenerator do
|
6
|
+
|
7
|
+
let(:klass) { Rang::Generators::InstallGenerator }
|
8
|
+
let(:generator) { klass.new }
|
9
|
+
|
10
|
+
it "has a description" do
|
11
|
+
expect(klass.desc.empty?).to be_falsey
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#install_generator" do
|
15
|
+
let(:expected_config) do
|
16
|
+
{
|
17
|
+
patch_sprockets_to_use_html_extension: true,
|
18
|
+
disable_html_precompilation: true,
|
19
|
+
frontend_assets_directory: "frontend"
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
it "installs the generator" do
|
24
|
+
expect(generator).to receive(:template).with("rang.rb", "config/initializers/rang.rb")
|
25
|
+
generator.install_initializer
|
26
|
+
end
|
27
|
+
|
28
|
+
it "installs a generator with appropriate config" do
|
29
|
+
expect(generator).to receive(:template) do |file, path|
|
30
|
+
eval(IO.read(File.join(klass.source_root, file)))
|
31
|
+
expected_config.each do |key, value|
|
32
|
+
expect(Rang::Config.send(key)).to eq value
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
generator.install_initializer
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "rails/generators"
|
3
|
+
require_relative "../../lib/rails/generators/rang/teaspoon/install/install_generator.rb"
|
4
|
+
|
5
|
+
describe Rang::Teaspoon::Generators::InstallGenerator do
|
6
|
+
|
7
|
+
let(:klass) { Rang::Teaspoon::Generators::InstallGenerator }
|
8
|
+
let(:generator) { klass.new }
|
9
|
+
|
10
|
+
it "has a description" do
|
11
|
+
expect(klass.desc.empty?).to be_falsey
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#add_teaspoon_to_gemfile" do
|
15
|
+
it "Adds gems to gemfile" do
|
16
|
+
expect(generator).to receive(:gem_group).with(:development, :test).and_yield
|
17
|
+
expect(generator).to receive(:gem).with("teaspoon", an_instance_of(String))
|
18
|
+
expect(generator).to receive(:gem).with("phantomjs", an_instance_of(String))
|
19
|
+
generator.add_teaspoon_to_gemfile
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#add_angular_mocks_to_gemfile" do
|
24
|
+
it "Runs bower:add generator with angular-mocks" do
|
25
|
+
expect(generator).to receive(:generate)
|
26
|
+
.with("rang:bower:add", "angular-mocks '~> 1.2.0' quiet")
|
27
|
+
generator.add_angular_mocks_to_gemfile
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#teaspoon_install" do
|
32
|
+
it "runs teaspoon:install" do
|
33
|
+
expect(generator).to receive(:generate).with("teaspoon:install")
|
34
|
+
generator.teaspoon_install
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#add_teaspoon_assets_hack" do
|
39
|
+
it "injects fix into teaspoon_env" do
|
40
|
+
expect(generator).to receive(:inject_into_file)
|
41
|
+
.with("spec/teaspoon_env.rb", {before: "Teaspoon.configure do |config|"}) do |a, b, &block|
|
42
|
+
expect(block.call).to be_a String
|
43
|
+
end
|
44
|
+
generator.add_teaspoon_assets_hack
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#add_matcher" do
|
49
|
+
it "adds test matcher to teaspoon_env" do
|
50
|
+
expect(generator).to receive(:inject_into_file) do |filename, regex, &block|
|
51
|
+
expect(filename).to eq "spec/teaspoon_env.rb"
|
52
|
+
expect(block.call).to be_a String
|
53
|
+
end
|
54
|
+
generator.add_matcher
|
55
|
+
end
|
56
|
+
|
57
|
+
it "uses a line regex that matches the right line" do
|
58
|
+
expect(generator).to receive(:inject_into_file) do |filename, regex, &block|
|
59
|
+
regex = regex[:after]
|
60
|
+
expect("#suite.matcher = \"{spec/javascripts,app/assets}/**/*[_.]spec.{js,js.coffee,coffee}\"" =~ regex).to be_truthy
|
61
|
+
end
|
62
|
+
generator.add_matcher
|
63
|
+
end
|
64
|
+
|
65
|
+
it "uses a line regex that doesn't match the similar line later on" do
|
66
|
+
expect(generator).to receive(:inject_into_file) do |filename, regex, &block|
|
67
|
+
regex = regex[:after]
|
68
|
+
expect(" #config.suite :targeted do |suite|\n# suite.matcher = \"test/javascripts/targeted/*_test.{js,js.coffee,coffee}\"\n #end" =~ regex ).to be_falsey
|
69
|
+
end
|
70
|
+
generator.add_matcher
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "#require_angular_mocks" do
|
75
|
+
it "adds angular-mocks require to test_helper" do
|
76
|
+
expect(generator).to receive(:inject_into_file) do |filename, regex, &block|
|
77
|
+
expect(filename).to eq "spec/javascripts/spec_helper.js"
|
78
|
+
expect(block.call).to eq "//= require angular\n//= require angular-mocks\n"
|
79
|
+
end
|
80
|
+
generator.require_angular_mocks
|
81
|
+
end
|
82
|
+
|
83
|
+
it "uses a line regex that matches the right line" do
|
84
|
+
expect(generator).to receive(:inject_into_file) do |filename, regex, &block|
|
85
|
+
regex = regex[:before]
|
86
|
+
expect("//= require application" =~ regex).to be_truthy
|
87
|
+
end
|
88
|
+
generator.require_angular_mocks
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#inform_of_actions" do
|
93
|
+
it "informs the user of some things" do
|
94
|
+
expect(generator).to receive(:say).at_least(1).times
|
95
|
+
generator.inform_of_actions
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "#inform_about_better_errors" do
|
100
|
+
context "when better_errors is in the Gemfile" do
|
101
|
+
before do
|
102
|
+
allow(Gem::Specification).to receive(:find_all_by_name).with('better_errors').and_return([true])
|
103
|
+
end
|
104
|
+
|
105
|
+
it "warns the user" do
|
106
|
+
expect(generator).to receive(:say).at_least(1).times
|
107
|
+
generator.inform_about_better_errors
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
context "when better_errors is not in the Gemfile" do
|
112
|
+
before do
|
113
|
+
allow(Gem::Specification).to receive(:find_all_by_name).with('better_errors').and_return([])
|
114
|
+
end
|
115
|
+
|
116
|
+
it "does not speak" do
|
117
|
+
expect(generator).to_not receive(:say)
|
118
|
+
generator.inform_about_better_errors
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class ContextFake
|
4
|
+
def return_self(*arguments)
|
5
|
+
self
|
6
|
+
end
|
7
|
+
|
8
|
+
def escape_javascript(string)
|
9
|
+
string
|
10
|
+
end
|
11
|
+
|
12
|
+
alias_method :assets, :return_self
|
13
|
+
alias_method :logical_paths, :return_self
|
14
|
+
alias_method :assets, :return_self
|
15
|
+
alias_method :environment, :return_self
|
16
|
+
alias_method :find_asset, :return_self
|
17
|
+
alias_method :depend_on_asset, :return_self
|
18
|
+
end
|
19
|
+
|
20
|
+
describe Rang::Helpers do
|
21
|
+
|
22
|
+
describe '#templates' do
|
23
|
+
let(:context) { ContextFake.new }
|
24
|
+
|
25
|
+
it 'calls given block for each template path' do
|
26
|
+
allow(context).to receive(:logical_paths).and_return(['one.html','two.html','three.html', 'invalid.jpg'])
|
27
|
+
expect do |b|
|
28
|
+
Rang::Helpers.templates(context, &b)
|
29
|
+
end.to yield_control.exactly(3).times
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'calls given block with valid slimmed path' do
|
33
|
+
allow(context).to receive(:logical_paths).and_return(['one.html'])
|
34
|
+
expect do |b|
|
35
|
+
Rang::Helpers.templates(context, &b)
|
36
|
+
end.to yield_with_args('one.html', anything)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'calls given block with template string' do
|
40
|
+
template_string = '<p>html</p>'
|
41
|
+
allow(context).to receive(:logical_paths).and_return(['one.html'])
|
42
|
+
allow(context).to receive(:find_asset).and_return(template_string)
|
43
|
+
expect do |b|
|
44
|
+
Rang::Helpers.templates(context, &b)
|
45
|
+
end.to yield_with_args(anything, Rang::Helpers.escape_javascript(template_string))
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'calls given block with escaped template string' do
|
49
|
+
template_string = '<p>html</p>'
|
50
|
+
allow(context).to receive(:logical_paths).and_return(['one.html'])
|
51
|
+
allow(Rang::Helpers).to receive(:escape_javascript).and_return(template_string)
|
52
|
+
expect do |b|
|
53
|
+
Rang::Helpers.templates(context, &b)
|
54
|
+
end.to yield_with_args(anything, template_string)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'calls depend_on_asset for each template' do
|
58
|
+
template_path = 'one.html'
|
59
|
+
allow(context).to receive(:logical_paths).and_return([template_path, 'invalid.jpg'])
|
60
|
+
expect(context).to receive(:depend_on_asset).with(template_path)
|
61
|
+
Rang::Helpers.templates(context) {}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Rang::Patcher do
|
4
|
+
|
5
|
+
def enable_config(prop, value=true)
|
6
|
+
allow(Rang::Config).to receive(prop).and_return(value)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#patch_sprockets_to_use_html_extension!" do
|
10
|
+
let(:trail) { double() }
|
11
|
+
|
12
|
+
before do
|
13
|
+
enable_config(:patch_sprockets_to_use_html_extension)
|
14
|
+
allow(trail).to receive(:alias_extension)
|
15
|
+
allow(Rails.application.assets).to receive(:send).and_return(trail)
|
16
|
+
allow(Rails.application.assets).to receive(:instance_eval)
|
17
|
+
allow(Rails.application.assets).to receive(:register_mime_type)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "patches sprockets trail with slim->html alias" do
|
21
|
+
expect(Rails.application.assets).to receive(:send).with(:trail).and_return(trail)
|
22
|
+
expect(trail).to receive(:alias_extension).with(".slim", ".html")
|
23
|
+
Rang::Patcher.patch!
|
24
|
+
end
|
25
|
+
|
26
|
+
it "patches assets to change #extension_for_mime_type behaviour" do
|
27
|
+
expect(Rails.application.assets).to receive(:instance_eval).and_call_original
|
28
|
+
allow(Rails.application.assets).to receive(:register_mime_type).and_call_original
|
29
|
+
Rang::Patcher.patch!
|
30
|
+
end
|
31
|
+
|
32
|
+
it "registers the text/html mime type to .html" do
|
33
|
+
allow(Rails.application.assets).to receive(:instance_eval).and_call_original
|
34
|
+
allow(Rails.application.assets).to receive(:register_mime_type).and_call_original
|
35
|
+
Rang::Patcher.patch!
|
36
|
+
expect(Rails.application.assets.extension_for_mime_type("text/html")).to eq ".html"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#disable_html_precompilation!" do
|
41
|
+
before do
|
42
|
+
enable_config(:disable_html_precompilation)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "Changes assets.precompile to ignore html files" do
|
46
|
+
expect(Rails.application.config.assets).to receive(:precompile=) do |proc, regex|
|
47
|
+
expect(proc.call("asset.html", "app/assets")).to be_falsey
|
48
|
+
end
|
49
|
+
Rang::Patcher.patch!
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#add_frontend_assets_directory!" do
|
54
|
+
before do
|
55
|
+
enable_config(:frontend_assets_directory, "frontend")
|
56
|
+
end
|
57
|
+
|
58
|
+
it "adds /frontend to assets directories" do
|
59
|
+
Rang::Patcher.patch!
|
60
|
+
expect(Rails.application.config.assets.paths).to include "#{Rails.root}/app/assets/frontend"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "#register_slim_as_assets_engine!" do
|
65
|
+
context "when slim gem is present" do
|
66
|
+
before do
|
67
|
+
allow(Rang::Util).to receive(:gem_present?).and_return(true)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "registers slim as an assets engine" do
|
71
|
+
expect(Rails.application.assets).to receive(:register_engine)
|
72
|
+
.with(".slim", ::Slim::Template)
|
73
|
+
Rang::Patcher.patch!
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "when slim gem is not present" do
|
78
|
+
before do
|
79
|
+
allow(Rang::Util).to receive(:gem_present?).and_return(false)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "does not register slim as an assets engine" do
|
83
|
+
expect(Rails.application.assets).to_not receive(:register_engine)
|
84
|
+
.with(".slim", ::Slim::Template)
|
85
|
+
Rang::Patcher.patch!
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "#remove_angular_delims_from_slim!" do
|
91
|
+
|
92
|
+
before do
|
93
|
+
allow(Rang::Util).to receive(:gem_present?).and_return(true)
|
94
|
+
enable_config(:remove_angular_delims_from_slim, "frontend")
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should change attr_delims in slim default_config" do
|
98
|
+
expect(Slim::Engine).to receive(:set_default_options).with({attr_delims: {'(' => ')', '[' => ']'}})
|
99
|
+
Rang::Patcher.patch!
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile '~/.gitignore_global'
|
6
|
+
|
7
|
+
# Ignore bundler config.
|
8
|
+
/.bundle
|
9
|
+
|
10
|
+
# Ignore the default SQLite database.
|
11
|
+
/db/*.sqlite3
|
12
|
+
/db/*.sqlite3-journal
|
13
|
+
|
14
|
+
# Ignore all logfiles and tempfiles.
|
15
|
+
/log/*.log
|
16
|
+
/tmp
|
@@ -0,0 +1,41 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
|
4
|
+
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
5
|
+
gem 'rails', '4.1.4'
|
6
|
+
# Use sqlite3 as the database for Active Record
|
7
|
+
gem 'sqlite3'
|
8
|
+
# Use SCSS for stylesheets
|
9
|
+
gem 'sass-rails', '~> 4.0.3'
|
10
|
+
# Use Uglifier as compressor for JavaScript assets
|
11
|
+
gem 'uglifier', '>= 1.3.0'
|
12
|
+
# Use CoffeeScript for .js.coffee assets and views
|
13
|
+
gem 'coffee-rails', '~> 4.0.0'
|
14
|
+
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
15
|
+
# gem 'therubyracer', platforms: :ruby
|
16
|
+
|
17
|
+
# Use jquery as the JavaScript library
|
18
|
+
gem 'jquery-rails'
|
19
|
+
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
20
|
+
gem 'turbolinks'
|
21
|
+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
22
|
+
gem 'jbuilder', '~> 2.0'
|
23
|
+
# bundle exec rake doc:rails generates the API under doc/api.
|
24
|
+
gem 'sdoc', '~> 0.4.0', group: :doc
|
25
|
+
|
26
|
+
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
27
|
+
gem 'spring', group: :development
|
28
|
+
|
29
|
+
# Use ActiveModel has_secure_password
|
30
|
+
# gem 'bcrypt', '~> 3.1.7'
|
31
|
+
|
32
|
+
# Use unicorn as the app server
|
33
|
+
# gem 'unicorn'
|
34
|
+
|
35
|
+
# Use Capistrano for deployment
|
36
|
+
# gem 'capistrano-rails', group: :development
|
37
|
+
|
38
|
+
# Use debugger
|
39
|
+
# gem 'debugger', group: [:development, :test]
|
40
|
+
|
41
|
+
gem 'rang', path: '../../'
|
@@ -0,0 +1,28 @@
|
|
1
|
+
== README
|
2
|
+
|
3
|
+
This README would normally document whatever steps are necessary to get the
|
4
|
+
application up and running.
|
5
|
+
|
6
|
+
Things you may want to cover:
|
7
|
+
|
8
|
+
* Ruby version
|
9
|
+
|
10
|
+
* System dependencies
|
11
|
+
|
12
|
+
* Configuration
|
13
|
+
|
14
|
+
* Database creation
|
15
|
+
|
16
|
+
* Database initialization
|
17
|
+
|
18
|
+
* How to run the test suite
|
19
|
+
|
20
|
+
* Services (job queues, cache servers, search engines, etc.)
|
21
|
+
|
22
|
+
* Deployment instructions
|
23
|
+
|
24
|
+
* ...
|
25
|
+
|
26
|
+
|
27
|
+
Please feel free to use a different markup language if you do not plan to run
|
28
|
+
<tt>rake doc:app</tt>.
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require turbolinks
|
16
|
+
//= require_tree .
|