tiny-rails 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +21 -0
- data/addons/activerecord.rb +7 -3
- data/addons/client_side_validations.rb +1 -10
- data/lib/tiny-rails/actions.rb +22 -5
- data/lib/tiny-rails/app/initializers/client_side_validations.rb +7 -0
- data/lib/tiny-rails/cli.rb +7 -1
- data/lib/tiny-rails/commands/console.rb +26 -0
- data/lib/tiny-rails/commands/new.rb +1 -1
- data/lib/tiny-rails/version.rb +1 -1
- data/spec/actions_spec.rb +42 -4
- data/spec/commands/add_spec.rb +1 -2
- data/spec/commands/console_spec.rb +40 -0
- data/spec/commands/new_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -0
- data/templates/Gemfile +1 -0
- data/templates/activerecord/migrate +6 -6
- data/templates/{tiny_rails_controller.rb → application_controller.rb} +1 -1
- data/templates/boot.rb +9 -7
- data/templates/server +0 -9
- data/tiny-rails.gemspec +1 -0
- metadata +25 -5
data/README.md
CHANGED
@@ -3,12 +3,26 @@
|
|
3
3
|
Scaffold for tiny Rails apps based on José Valim's Rails Lightweight Stack
|
4
4
|
[code](https://gist.github.com/1942658)
|
5
5
|
|
6
|
+
|
6
7
|
## Installation
|
7
8
|
|
8
9
|
Install it using:
|
9
10
|
|
10
11
|
$ gem install tiny-rails
|
11
12
|
|
13
|
+
|
14
|
+
## WTF?! Why would I use this?
|
15
|
+
|
16
|
+
Although the generated application code could be used on a production server,
|
17
|
+
the idea is to try to give you a really basic application to try out new Rails
|
18
|
+
gems, create spikes and to provide an isolated small Rails environment for
|
19
|
+
reproducing bugs to support bug reports.
|
20
|
+
|
21
|
+
You could also use this to create a single page application with all rails
|
22
|
+
features like code reloading and the asset pipeline without having to set up
|
23
|
+
a Sinatra application from the ground app.
|
24
|
+
|
25
|
+
|
12
26
|
## Usage
|
13
27
|
|
14
28
|
```terminal
|
@@ -28,6 +42,10 @@ This will give you a pretty basic application that you can run with `rackup`
|
|
28
42
|
or you prefferend server. It even supports code reloading for the generated
|
29
43
|
controller!
|
30
44
|
|
45
|
+
You can also fire up a console to play around with the generated app running
|
46
|
+
`tiny-rails console`. If you want to use Pry, you can just add the `pry-rails`
|
47
|
+
gem to your Gemfile.
|
48
|
+
|
31
49
|
|
32
50
|
## Addons
|
33
51
|
|
@@ -54,6 +72,9 @@ folder.
|
|
54
72
|
Here's a list of the addons bundled with the gem:
|
55
73
|
|
56
74
|
* [activerecord](https://github.com/fgrehm/tiny-rails/blob/master/addons/activerecord.rb)
|
75
|
+
* [coffeescript](https://github.com/fgrehm/tiny-rails/blob/master/addons/coffeescript.rb)
|
76
|
+
* [jquery](https://github.com/fgrehm/tiny-rails/blob/master/addons/jquery.rb)
|
77
|
+
* [client_side_validations](https://github.com/fgrehm/tiny-rails/blob/master/addons/client_side_validations.rb)
|
57
78
|
|
58
79
|
|
59
80
|
### Building your own addon
|
data/addons/activerecord.rb
CHANGED
@@ -2,13 +2,16 @@ gem 'activerecord', '~> 3.2'
|
|
2
2
|
gem 'sqlite3'
|
3
3
|
|
4
4
|
template 'activerecord/models.rb', 'models.rb'
|
5
|
+
|
5
6
|
require_models_code = <<-CODE
|
6
7
|
# Enable code reloading for models
|
7
8
|
require_dependency 'models'
|
8
9
|
CODE
|
9
|
-
inject_into_file '
|
10
|
+
inject_into_file 'application_controller.rb', "\n#{require_models_code}", :after => /class ApplicationController < ActionController::Base/
|
10
11
|
|
11
|
-
|
12
|
+
application <<-CODE
|
13
|
+
# We need to override the configuration method here, otherwise Rails will
|
14
|
+
# try to load the yaml configuration file at config/database.yml
|
12
15
|
def config.database_configuration
|
13
16
|
{
|
14
17
|
'development' =>
|
@@ -21,7 +24,8 @@ config_db_code = <<-CODE
|
|
21
24
|
}
|
22
25
|
end
|
23
26
|
CODE
|
24
|
-
|
27
|
+
|
28
|
+
inject_into_file 'boot.rb', "\nrequire \"active_record/railtie\"", :after => /require ['"]action_controller\/railtie['"]/
|
25
29
|
|
26
30
|
template 'activerecord/migrate', 'migrate'
|
27
31
|
chmod 'migrate', 0755
|
@@ -7,13 +7,4 @@ gem 'client_side_validations'
|
|
7
7
|
sentinel = {:after => "#= require jquery\n"}
|
8
8
|
inject_into_file 'application.coffee', "#= require rails.validations\n", sentinel
|
9
9
|
|
10
|
-
|
11
|
-
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
|
12
|
-
unless html_tag =~ /^<label/
|
13
|
-
%{<div class="field_with_errors">\#{html_tag}<label for="\#{instance.send(:tag_id)}" class="message">\#{instance.error_message.first}</label></div>}.html_safe
|
14
|
-
else
|
15
|
-
%{<div class="field_with_errors">\#{html_tag}</div>}.html_safe
|
16
|
-
end
|
17
|
-
end
|
18
|
-
CODE
|
19
|
-
initializer initializer_code
|
10
|
+
initializer 'require "tiny-rails/app/initializers/client_side_validations"'
|
data/lib/tiny-rails/actions.rb
CHANGED
@@ -32,19 +32,23 @@ module TinyRails
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
#
|
35
|
+
# Appends a line inside the TinyRailsApp class on boot.rb.
|
36
36
|
#
|
37
37
|
# application do
|
38
38
|
# "config.assets.enabled = true"
|
39
39
|
# end
|
40
40
|
def application(data=nil, &block)
|
41
|
-
sentinel = /class TinyRailsApp < Rails::Application/i
|
42
41
|
data = block.call if !data && block_given?
|
43
42
|
|
44
|
-
|
43
|
+
data = "\n#{data}" unless data =~ /^\n/
|
44
|
+
data << "\n" unless data =~ /\n$/
|
45
|
+
|
46
|
+
inject_into_file 'boot.rb', data, :after => /^ config\.secret_token = .+\n/
|
45
47
|
end
|
46
48
|
|
47
49
|
def initializer(data)
|
50
|
+
data = open(data) { |io| io.read } if data =~ /https?:\/\//
|
51
|
+
|
48
52
|
if File.exists? 'initializers.rb'
|
49
53
|
append_file 'initializers.rb', "\n#{data}"
|
50
54
|
else
|
@@ -52,16 +56,29 @@ module TinyRails
|
|
52
56
|
end
|
53
57
|
end
|
54
58
|
|
59
|
+
def migration(data)
|
60
|
+
data << "\n" unless data =~ /\n$/
|
61
|
+
|
62
|
+
inject_into_file 'migrate', data, :after => /^ActiveRecord::Schema\.define do\n/
|
63
|
+
end
|
64
|
+
|
65
|
+
def route(new_route)
|
66
|
+
new_route << "\n" unless new_route =~ /\n$/
|
67
|
+
|
68
|
+
inject_into_file 'boot.rb', new_route, :after => /TinyRailsApp\.routes\.draw do\n/
|
69
|
+
end
|
70
|
+
|
55
71
|
# Self explanatory :P
|
56
72
|
def enable_asset_pipeline!
|
57
73
|
return if File.read('boot.rb') =~ /^ config\.assets\.enabled = true$/
|
58
74
|
|
59
|
-
|
75
|
+
application <<-CONFIG
|
76
|
+
# Enable asset pipeline
|
60
77
|
config.assets.enabled = true
|
61
78
|
config.assets.debug = true
|
62
79
|
config.assets.paths << File.dirname(__FILE__)
|
63
80
|
CONFIG
|
64
|
-
|
81
|
+
inject_into_file 'boot.rb', "\nrequire \"sprockets/railtie\"", :after => /require ['"]action_controller\/railtie['"]/
|
65
82
|
end
|
66
83
|
|
67
84
|
def addon(path)
|
@@ -0,0 +1,7 @@
|
|
1
|
+
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
|
2
|
+
unless html_tag =~ /^<label/
|
3
|
+
%{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" class="message">#{instance.error_message.first}</label></div>}.html_safe
|
4
|
+
else
|
5
|
+
%{<div class="field_with_errors">#{html_tag}</div>}.html_safe
|
6
|
+
end
|
7
|
+
end
|
data/lib/tiny-rails/cli.rb
CHANGED
@@ -2,8 +2,9 @@ require 'thor'
|
|
2
2
|
require 'thor/group'
|
3
3
|
|
4
4
|
require 'tiny-rails/actions'
|
5
|
-
require 'tiny-rails/commands/new'
|
6
5
|
require 'tiny-rails/commands/add'
|
6
|
+
require 'tiny-rails/commands/console'
|
7
|
+
require 'tiny-rails/commands/new'
|
7
8
|
|
8
9
|
module TinyRails
|
9
10
|
class CLI < Thor
|
@@ -21,5 +22,10 @@ module TinyRails
|
|
21
22
|
addons = Array(addons)
|
22
23
|
Commands::Add.start(addons)
|
23
24
|
end
|
25
|
+
|
26
|
+
desc 'console', 'Starts the tiny-rails console'
|
27
|
+
def console
|
28
|
+
Commands::Console.start
|
29
|
+
end
|
24
30
|
end
|
25
31
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module TinyRails
|
2
|
+
module Commands
|
3
|
+
class Console < Thor::Group
|
4
|
+
include Thor::Actions
|
5
|
+
include Actions
|
6
|
+
|
7
|
+
# TODO: Move to a base command
|
8
|
+
def self.source_root
|
9
|
+
"#{File.expand_path('../../../../templates', __FILE__)}/"
|
10
|
+
end
|
11
|
+
|
12
|
+
def guard_inside_tiny_rails_app
|
13
|
+
unless File.exists?('boot.rb')
|
14
|
+
puts "Can't start console from outside a TinyRails application, please change to a TinyRails application directory first.\n"
|
15
|
+
exit(1)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def start_console
|
20
|
+
require './boot.rb'
|
21
|
+
require 'rails/commands/console'
|
22
|
+
Rails::Console.start(TinyRailsApp)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/tiny-rails/version.rb
CHANGED
data/spec/actions_spec.rb
CHANGED
@@ -55,12 +55,12 @@ describe TinyRails::Actions do
|
|
55
55
|
describe '#application' do
|
56
56
|
let(:boot_rb) { File.read 'boot.rb' }
|
57
57
|
|
58
|
-
before { action :create_file, 'boot.rb', "class TinyRailsApp
|
58
|
+
before { action :create_file, 'boot.rb', "class TinyRailsApp\n config.secret_token = 'something'\nend" }
|
59
59
|
|
60
60
|
it 'includes data in TinyRailsApp definition' do
|
61
|
-
assets_enable = 'config.assets.enabled = true'
|
61
|
+
assets_enable = ' config.assets.enabled = true'
|
62
62
|
action :application, assets_enable
|
63
|
-
boot_rb.should =~ /class TinyRailsApp
|
63
|
+
boot_rb.should =~ /class TinyRailsApp\n config\.secret_token = 'something'\n\n#{Regexp.escape(assets_enable)}/
|
64
64
|
end
|
65
65
|
|
66
66
|
it 'includes provided block contents in TinyRailsApp definition' do
|
@@ -74,11 +74,25 @@ describe TinyRails::Actions do
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
describe '#route' do
|
78
|
+
let(:boot_rb) { File.read 'boot.rb' }
|
79
|
+
|
80
|
+
before do
|
81
|
+
action :create_file, 'boot.rb', "TinyRailsApp.routes.draw do\nend"
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'includes data in routes definitions' do
|
85
|
+
new_route = ' match "foo" => "tiny_rails#bar"'
|
86
|
+
action :route, new_route
|
87
|
+
boot_rb.should =~ /TinyRailsApp\.routes.draw do\n#{Regexp.escape(new_route)}end/
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
77
91
|
describe '#enable_asset_pipeline!' do
|
78
92
|
let(:boot_rb) { File.read 'boot.rb' }
|
79
93
|
|
80
94
|
before do
|
81
|
-
action :create_file, 'boot.rb', "
|
95
|
+
action :create_file, 'boot.rb', "require \"action_controller/railtie\"\nclass TinyRailsApp\n config.secret_token = 'something'\nend"
|
82
96
|
action :enable_asset_pipeline!
|
83
97
|
end
|
84
98
|
|
@@ -94,6 +108,10 @@ describe TinyRails::Actions do
|
|
94
108
|
boot_rb.should =~ /^ config\.assets\.paths << File\.dirname\(__FILE__\)$/
|
95
109
|
end
|
96
110
|
|
111
|
+
it 'require sprockets railtie' do
|
112
|
+
boot_rb.should =~ /^require "sprockets\/railtie"/
|
113
|
+
end
|
114
|
+
|
97
115
|
it 'does not duplicate configs' do
|
98
116
|
10.times { action :enable_asset_pipeline! }
|
99
117
|
boot_rb.should have_a_single_occurence_of('config.assets.enabled = true')
|
@@ -102,9 +120,11 @@ describe TinyRails::Actions do
|
|
102
120
|
|
103
121
|
describe '#initializer' do
|
104
122
|
let(:initializers_rb) { File.read 'initializers.rb' }
|
123
|
+
let(:remote_code) { StringIO.new('remote code') }
|
105
124
|
|
106
125
|
before do
|
107
126
|
action :initializer, '# Ruby code...'
|
127
|
+
generator.stub(:open).and_yield(remote_code)
|
108
128
|
end
|
109
129
|
|
110
130
|
it 'creates an initializers.rb file if it doesnt exist' do
|
@@ -115,5 +135,23 @@ describe TinyRails::Actions do
|
|
115
135
|
action :initializer, '# More code...'
|
116
136
|
initializers_rb.should =~ /\n# More code.../
|
117
137
|
end
|
138
|
+
|
139
|
+
it 'supports appending a remote file' do
|
140
|
+
action :initializer, 'http://path.to/gist'
|
141
|
+
initializers_rb.should =~ /\nremote code/
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
describe '#migration' do
|
146
|
+
let(:migrate) { File.read 'migrate' }
|
147
|
+
|
148
|
+
before do
|
149
|
+
action :create_file, 'migrate', "ActiveRecord::Schema.define do\nend"
|
150
|
+
action :migration, ' create_table :users'
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'appends to schema definition on migrate file' do
|
154
|
+
migrate.should =~ /ActiveRecord::Schema.define do\n create_table :users\nend/
|
155
|
+
end
|
118
156
|
end
|
119
157
|
end
|
data/spec/commands/add_spec.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
# TODO: Move these specs to spec/actions_spec.rb
|
4
3
|
describe TinyRails::Commands::Add do
|
5
4
|
before do
|
6
5
|
Dir.exist?('.tmp') ? FileUtils.rm_rf('.tmp/*') : Dir.mkdir('.tmp')
|
7
6
|
@original_wd = Dir.pwd
|
8
7
|
FileUtils.cd '.tmp'
|
9
|
-
%w(.gitignore
|
8
|
+
%w(.gitignore application_controller.rb boot.rb Gemfile).each do |file|
|
10
9
|
`touch #{file}`
|
11
10
|
end
|
12
11
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TinyRails::Commands::Console do
|
4
|
+
before do
|
5
|
+
Dir.exist?('.tmp') ? FileUtils.rm_rf('.tmp/*') : Dir.mkdir('.tmp')
|
6
|
+
@original_wd = Dir.pwd
|
7
|
+
FileUtils.cd '.tmp'
|
8
|
+
`touch boot.rb`
|
9
|
+
|
10
|
+
class ::TinyRailsApp; end
|
11
|
+
class ::Rails
|
12
|
+
class Console
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Rails::Console.stub(:start)
|
17
|
+
|
18
|
+
command = described_class.new
|
19
|
+
@required_files = []
|
20
|
+
command.stub(:require) do |file|
|
21
|
+
@required_files << file
|
22
|
+
end
|
23
|
+
|
24
|
+
capture(:stdout) { command.invoke_all }
|
25
|
+
end
|
26
|
+
|
27
|
+
after { FileUtils.cd @original_wd }
|
28
|
+
|
29
|
+
it 'requires boot.rb file' do
|
30
|
+
@required_files.should include('./boot.rb')
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'requires rails command' do
|
34
|
+
@required_files.should include('rails/commands/console')
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'starts rails console' do
|
38
|
+
Rails::Console.should have_received(:start).with(TinyRailsApp)
|
39
|
+
end
|
40
|
+
end
|
data/spec/commands/new_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/templates/Gemfile
CHANGED
@@ -8,21 +8,21 @@ def confirm_drop_db?
|
|
8
8
|
answer.blank? || answer =~ /^y/
|
9
9
|
end
|
10
10
|
|
11
|
-
exit 0 unless confirm_drop_db?
|
12
|
-
|
13
11
|
config = TinyRailsApp.config.database_configuration[Rails.env]
|
14
12
|
|
15
|
-
# DROP DATABASE
|
16
13
|
require 'pathname'
|
17
14
|
path = Pathname.new(config['database'])
|
18
15
|
file = path.absolute? ? path.to_s : File.join(Rails.root, path)
|
19
|
-
FileUtils.rm(file)
|
20
16
|
|
21
|
-
|
17
|
+
exit 0 if File.exist?(file) && !confirm_drop_db?
|
18
|
+
|
19
|
+
# "Drop" database
|
20
|
+
FileUtils.rm(file) if File.exist?(file)
|
21
|
+
|
22
|
+
# Creates database
|
22
23
|
ActiveRecord::Base.establish_connection(config)
|
23
24
|
ActiveRecord::Base.connection
|
24
25
|
|
25
|
-
|
26
26
|
ActiveRecord::Schema.define do
|
27
27
|
create_table "posts" do |t|
|
28
28
|
t.string "title"
|
data/templates/boot.rb
CHANGED
@@ -3,17 +3,14 @@ $:.unshift Dir.pwd
|
|
3
3
|
require 'bundler'
|
4
4
|
Bundler.setup :default
|
5
5
|
|
6
|
+
require "tiny-rails"
|
6
7
|
require "rails"
|
7
|
-
|
8
|
+
|
9
|
+
require "action_controller/railtie"
|
8
10
|
|
9
11
|
Bundler.require :default
|
10
12
|
|
11
13
|
class TinyRailsApp < Rails::Application
|
12
|
-
routes.append do
|
13
|
-
match "/" => "tiny_rails#index"
|
14
|
-
match "/favicon.ico", :to => proc {|env| [200, {}, [""]] }
|
15
|
-
end
|
16
|
-
|
17
14
|
config.consider_all_requests_local = true
|
18
15
|
|
19
16
|
config.active_support.deprecation = :log
|
@@ -29,6 +26,11 @@ class TinyRailsApp < Rails::Application
|
|
29
26
|
config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
30
27
|
end
|
31
28
|
|
29
|
+
require 'initializers' if File.exists?('initializers.rb')
|
30
|
+
|
32
31
|
TinyRailsApp.initialize!
|
33
32
|
|
34
|
-
|
33
|
+
TinyRailsApp.routes.draw do
|
34
|
+
match "/" => "application#index"
|
35
|
+
match "/favicon.ico", :to => proc {|env| [200, {}, [""]] }
|
36
|
+
end
|
data/templates/server
CHANGED
@@ -2,15 +2,6 @@
|
|
2
2
|
|
3
3
|
require './boot'
|
4
4
|
|
5
|
-
if ARGV[0] == '-v' || ARGV[0] == '--verbose'
|
6
|
-
puts ">> Starting Rails lightweight stack"
|
7
|
-
Rails.configuration.middleware.each do |middleware|
|
8
|
-
puts "use #{middleware.inspect}"
|
9
|
-
end
|
10
|
-
puts "run #{Rails.application.class.name}.routes"
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
5
|
options = {
|
15
6
|
:environment => nil,
|
16
7
|
:pid => nil,
|
data/tiny-rails.gemspec
CHANGED
@@ -22,5 +22,6 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.add_development_dependency 'bundler', '~> 1.0'
|
23
23
|
gem.add_development_dependency 'rake', '~> 0.9'
|
24
24
|
gem.add_development_dependency 'rspec', '~> 2.0'
|
25
|
+
gem.add_development_dependency 'rspec-spies', '~> 2.1'
|
25
26
|
gem.add_development_dependency 'guard-rspec', '~> 2.0'
|
26
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiny-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -81,6 +81,22 @@ dependencies:
|
|
81
81
|
- - ~>
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '2.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec-spies
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ~>
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '2.1'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '2.1'
|
84
100
|
- !ruby/object:Gem::Dependency
|
85
101
|
name: guard-rspec
|
86
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,12 +135,15 @@ files:
|
|
119
135
|
- bin/tiny-rails
|
120
136
|
- lib/tiny-rails.rb
|
121
137
|
- lib/tiny-rails/actions.rb
|
138
|
+
- lib/tiny-rails/app/initializers/client_side_validations.rb
|
122
139
|
- lib/tiny-rails/cli.rb
|
123
140
|
- lib/tiny-rails/commands/add.rb
|
141
|
+
- lib/tiny-rails/commands/console.rb
|
124
142
|
- lib/tiny-rails/commands/new.rb
|
125
143
|
- lib/tiny-rails/version.rb
|
126
144
|
- spec/actions_spec.rb
|
127
145
|
- spec/commands/add_spec.rb
|
146
|
+
- spec/commands/console_spec.rb
|
128
147
|
- spec/commands/new_spec.rb
|
129
148
|
- spec/fixtures/sample_addon_1.rb
|
130
149
|
- spec/fixtures/sample_addon_2.rb
|
@@ -134,11 +153,11 @@ files:
|
|
134
153
|
- templates/Gemfile
|
135
154
|
- templates/activerecord/migrate
|
136
155
|
- templates/activerecord/models.rb
|
156
|
+
- templates/application_controller.rb
|
137
157
|
- templates/boot.rb
|
138
158
|
- templates/config.ru
|
139
159
|
- templates/index.html.erb
|
140
160
|
- templates/server
|
141
|
-
- templates/tiny_rails_controller.rb
|
142
161
|
- tiny-rails.gemspec
|
143
162
|
homepage: http://github.com/fgrehm/tiny-rails
|
144
163
|
licenses: []
|
@@ -154,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
154
173
|
version: '0'
|
155
174
|
segments:
|
156
175
|
- 0
|
157
|
-
hash: -
|
176
|
+
hash: -4104238879239819067
|
158
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
178
|
none: false
|
160
179
|
requirements:
|
@@ -163,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
182
|
version: '0'
|
164
183
|
segments:
|
165
184
|
- 0
|
166
|
-
hash: -
|
185
|
+
hash: -4104238879239819067
|
167
186
|
requirements: []
|
168
187
|
rubyforge_project:
|
169
188
|
rubygems_version: 1.8.23
|
@@ -173,6 +192,7 @@ summary: A generator for tiny Rails apps
|
|
173
192
|
test_files:
|
174
193
|
- spec/actions_spec.rb
|
175
194
|
- spec/commands/add_spec.rb
|
195
|
+
- spec/commands/console_spec.rb
|
176
196
|
- spec/commands/new_spec.rb
|
177
197
|
- spec/fixtures/sample_addon_1.rb
|
178
198
|
- spec/fixtures/sample_addon_2.rb
|