rail 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 93d14e771035c69b8d4b07f87a83588cab03cb94
4
- data.tar.gz: 7bbf4ca60a96a5cfecee833c04cc4a36d96ed8c8
3
+ metadata.gz: 04be69f5c4562508756c30d288dca2ce37c6cf7a
4
+ data.tar.gz: 24a0eda65d4bc3dbfab7b2c0e31be0c589a91693
5
5
  SHA512:
6
- metadata.gz: abc138b55bdec89cb3a60e50988ecb2a8093d231d9b79849b062236ba5946eecdeb9b5124d0af06ea1825515b57622a8eb81e9f17ec2cdd942b82ec6c99dc339
7
- data.tar.gz: 977f3b41b3a493fc7db4c4733d67475b08ed9b8d1ff39578bf7b29b0d4a6b796756a19008de75fdd0abee87dc603990d0983fdfbb377ee7a49463ca0c5d744c1
6
+ metadata.gz: 7b37d9436041a7b221de1b63dc04bd7b7cc3d5236d6acd0bf523480b27e55450165f2eb00193a8d48fe669ff5d1c2e7b471db68ea543cd04133068d5ae24ee4b
7
+ data.tar.gz: a7f557a6659f7ccec10f5e8d506d17b3d5db1c01d12ebbedd9e337fd8d2754a98e69f6f096505f3185795231b7cad8eb2c4b5d547bffd3ccb42c48105d2ee9cd
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
7
+
8
+ branches:
9
+ only:
10
+ - master
data/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ ## Typekit 0.0.2 (June 21, 2014)
2
+ * The first actual release. A happy union of
3
+ [CoffeeScript](http://coffeescript.org/),
4
+ [Haml](http://haml.info/),
5
+ [Sass](http://sass-lang.com/), and
6
+ [Uglifier](https://github.com/lautis/uglifier).
7
+
8
+ ## Typekit 0.0.1 (June 20, 2014)
9
+ * Less is more. A dummy release.
data/README.md CHANGED
@@ -1,8 +1,68 @@
1
- # Rail
2
- Less is more.
1
+ # Rail [![Gem Version](https://badge.fury.io/rb/rail.svg)](http://badge.fury.io/rb/rail) [![Dependency Status](https://gemnasium.com/IvanUkhov/rail.svg)](https://gemnasium.com/IvanUkhov/rail) [![Build Status](https://travis-ci.org/IvanUkhov/rail.svg?branch=master)](https://travis-ci.org/IvanUkhov/rail)
2
+ A light framework for front-end development inspired by
3
+ [Rails](http://rubyonrails.org/). It is solely based on
4
+ [Sprockets](https://github.com/sstephenson/sprockets) and includes the
5
+ following components out of the box:
6
+ * [CoffeeScript](http://coffeescript.org/) for JavaScript,
7
+ * [Haml](http://haml.info/) for HTML,
8
+ * [Sass](http://sass-lang.com/) for CSS, and
9
+ * [Uglifier](https://github.com/lautis/uglifier) for compression.
10
+
11
+ ## Installation
12
+ First of all, include the gem in your `Gemfile`. Here is an example:
13
+ ```ruby
14
+ source 'https://rubygems.org'
15
+
16
+ gem 'rail', '~> 0.0.2'
17
+
18
+ # The rest is optional
19
+ gem 'redcarpet', '~> 3.1.2' # your favorit complement to Haml
20
+ gem 'thin', '~> 1.6.2' # your favorit Web server
21
+ ```
22
+
23
+ Then run [Bundler](http://bundler.io/):
24
+ ```bash
25
+ $ bundle
26
+ ```
27
+
28
+ Now we need to create two files: `config.ru` and `config/application.rb`.
29
+ In `config.ru`:
30
+ ```ruby
31
+ require_relative 'config/application'
32
+
33
+ run MyProject::Application.new
34
+ ```
35
+
36
+ In `config/application.rb`:
37
+ ```ruby
38
+ require 'bundler'
39
+ Bundler.require(:default)
40
+
41
+ module MyProject
42
+ class Application < Rail::Application
43
+ end
44
+ end
45
+ ```
46
+
47
+ Feel free to replace `MyProject` with the name of your project. That’s it.
48
+
49
+ ## Usage
50
+ Rail closely follows Rails. If you know Rails, you already know how to use
51
+ Rail. Organize your code according to the following convention:
52
+ * scripts in `app/assets/javascripts`,
53
+ * styles in `app/assets/stylesheets`,
54
+ * views in `app/views`, and
55
+ * helpers in `app/helpers`.
56
+
57
+ In addition, `app/views/layouts/application.html.haml` will be used for
58
+ rendering the root of your application (both `/` and `/index.html`).
59
+
60
+ Usage examples can be found [here](https://github.com/IvanUkhov/type-works),
61
+ [here](https://github.com/IvanUkhov/photography), and
62
+ [here](https://github.com/IvanUkhov/liu-profile).
3
63
 
4
64
  ## Contributing
5
- 1. [Fork](https://help.github.com/articles/fork-a-repo) this repository.
65
+ 1. [Fork](https://help.github.com/articles/fork-a-repo) the project.
6
66
  2. Create a branch for your feature (`git checkout -b awesome-feature`).
7
67
  3. Implement your feature (`vim`).
8
68
  4. Commit your changes (`git commit -am 'Implemented an awesome feature'`).
data/Rakefile CHANGED
@@ -1,4 +1,10 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
2
3
 
3
- task :default do
4
+ Rake::TestTask.new do |test|
5
+ test.libs.push('lib')
6
+ test.test_files = FileList[ 'spec/*_spec.rb' ]
7
+ test.verbose = true
4
8
  end
9
+
10
+ task :default => :test
@@ -0,0 +1,106 @@
1
+ module Rail
2
+ class Application
3
+ extend Forwardable
4
+
5
+ attr_reader :browser, :pipeline
6
+ def_delegators :config, :root, :gems, :compress?
7
+
8
+ def initialize
9
+ # config.ru
10
+ config.root ||= self.class.find_root
11
+
12
+ @browser = Browser.new(self)
13
+ @pipeline = Pipeline.new(self)
14
+ end
15
+
16
+ def call(env)
17
+ request = Request.new(env)
18
+ (browser.accept?(request) ? browser : pipeline).process(request)
19
+ end
20
+
21
+ def helpers
22
+ @helpers ||= load_helpers
23
+ end
24
+
25
+ def config
26
+ self.class.config
27
+ end
28
+
29
+ def self.config
30
+ @config ||= build_config
31
+ end
32
+
33
+ def self.load_tasks
34
+ # Rakefile
35
+ config.root ||= find_root
36
+
37
+ Dir[File.join(File.dirname(__FILE__), 'tasks/*.rake')].each do |path|
38
+ Rake::load_rakefile(path)
39
+ end
40
+ end
41
+
42
+ def self.precompile
43
+ return if config.precompile.empty?
44
+
45
+ application = self.new
46
+
47
+ puts 'Precompiling assets...'
48
+ puts
49
+
50
+ config.precompile.each do |path|
51
+ file = File.join('public', path)
52
+ unless File.exist?(File.dirname(file))
53
+ FileUtils.mkdir_p(File.dirname(file))
54
+ end
55
+
56
+ puts "#{ path } -> #{ file }"
57
+
58
+ _, _, source = application.call('PATH_INFO' => path)
59
+
60
+ File.open(file, 'w') { |f| f.write(source.to_s) }
61
+ end
62
+
63
+ puts
64
+ puts 'Done.'
65
+ end
66
+
67
+ def self.find_root
68
+ File.expand_path('..', caller[1].sub(/:.*/, ''))
69
+ end
70
+
71
+ private
72
+
73
+ def load_helpers
74
+ Dir[File.join(root, 'app/helpers/*.rb')].map do |file|
75
+ require file
76
+ Support.constantize(File.basename(file, '.rb'))
77
+ end
78
+ end
79
+
80
+ def self.default_options
81
+ {
82
+ gems: [],
83
+ precompile: [],
84
+ compress: Rail.env.production?
85
+ }
86
+ end
87
+
88
+ def self.build_config
89
+ struct = OpenStruct.new
90
+
91
+ struct.singleton_class.class_eval do
92
+ define_method(:method_missing) do |name, *arguments, &block|
93
+ !!super(name.to_s.sub(/\?$/, '').to_sym, *arguments, &block)
94
+ end
95
+ end
96
+
97
+ default_options.each do |name, value|
98
+ struct.send("#{ name }=", value)
99
+ end
100
+
101
+ struct
102
+ end
103
+
104
+ private_class_method :default_options, :build_config
105
+ end
106
+ end
@@ -0,0 +1,24 @@
1
+ require 'rack'
2
+
3
+ module Rail
4
+ class Browser
5
+ extend Forwardable
6
+
7
+ def_delegator :@host, :root
8
+ def_delegator :@directory, :call
9
+
10
+ def initialize(host)
11
+ @host = host
12
+ @directory ||= Rack::Directory.new(File.join(root, 'public'))
13
+ end
14
+
15
+ def process(request)
16
+ call(request.env)
17
+ end
18
+
19
+ def accept?(request)
20
+ path = request.path
21
+ !path.empty? && File.exist?(File.join(root, 'public', path))
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,85 @@
1
+ module Rail
2
+ class Pipeline
3
+ extend Forwardable
4
+
5
+ def_delegators :@host, :root, :gems, :helpers, :compress?
6
+
7
+ def initialize(host)
8
+ @host = host
9
+ end
10
+
11
+ def process(request)
12
+ Thread.current[:request] = request
13
+
14
+ path = request.path
15
+
16
+ case path
17
+ when '', 'index.html'
18
+ path = 'layouts/application'
19
+ end
20
+
21
+ path = "#{ path }.html" if File.extname(path).empty?
22
+
23
+ asset = sprockets[path]
24
+ code, body = asset ? [ 200, asset ] : [ 404, [ 'Not found' ] ]
25
+
26
+ [ code, {}, body ]
27
+ end
28
+
29
+ private
30
+
31
+ def sprockets
32
+ @sprockets ||= build_sprockets
33
+ end
34
+
35
+ def build_sprockets
36
+ environment = Sprockets::Environment.new
37
+
38
+ paths.each do |directory|
39
+ environment.append_path(directory)
40
+ end
41
+
42
+ if compress?
43
+ environment.js_compressor = :uglify
44
+ environment.css_compressor = :scss
45
+ end
46
+
47
+ # TODO: Find a per-instance way to configure HAML.
48
+ Haml::Options.defaults[:ugly] = compress?
49
+
50
+ helpers.each do |helper|
51
+ environment.context_class.class_eval do
52
+ include helper
53
+ end
54
+ end
55
+
56
+ environment.context_class.class_eval do
57
+ define_method(:request) do
58
+ Thread.current[:request]
59
+ end
60
+ end
61
+
62
+ environment
63
+ end
64
+
65
+ def paths
66
+ (application_paths + gems.map { |name| gem_paths(name) }).flatten
67
+ end
68
+
69
+ def application_paths
70
+ [
71
+ File.join(root, 'app/assets/javascripts'),
72
+ File.join(root, 'app/assets/stylesheets'),
73
+ File.join(root, 'app/views')
74
+ ]
75
+ end
76
+
77
+ def gem_paths(name)
78
+ gem = Gem::Specification.find_by_name(name)
79
+ [
80
+ File.join(gem.gem_dir, 'lib/assets/javascripts'),
81
+ File.join(gem.gem_dir, 'lib/assets/stylesheets')
82
+ ]
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,17 @@
1
+ module Rail
2
+ class Request
3
+ attr_reader :env
4
+
5
+ def initialize(env)
6
+ @env = env
7
+ end
8
+
9
+ def path
10
+ @path ||= env['PATH_INFO'].sub(/^\//, '').sub(/\?.*$/, '')
11
+ end
12
+
13
+ def host
14
+ env['HTTP_HOST']
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module Rail
2
+ class Server < Rack::Server
3
+ def initialize(options = nil)
4
+ options = {
5
+ Port: 3000,
6
+ environment: Rail.env,
7
+ config: 'config.ru'
8
+ }.merge(options || {})
9
+
10
+ super(options)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ module Rail
2
+ module Support
3
+ def self.constantize(name)
4
+ const_get(name.split(/[\s_]+/).map(&:capitalize).join)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ desc 'Precompile assets'
2
+ task :assets do
3
+ Rail.applications.first.precompile
4
+ end
@@ -0,0 +1,4 @@
1
+ desc 'Start server'
2
+ task :server do
3
+ Rail::Server.start
4
+ end
data/lib/rail/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rail
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
data/lib/rail.rb CHANGED
@@ -1,4 +1,44 @@
1
- require 'rail/version'
1
+ require 'ostruct'
2
+ require 'forwardable'
3
+
4
+ require 'rack'
5
+ require 'haml'
6
+ require 'uglifier'
7
+ require 'sprockets'
8
+
9
+ require_relative 'rail/application'
10
+ require_relative 'rail/browser'
11
+ require_relative 'rail/pipeline'
12
+ require_relative 'rail/request'
13
+ require_relative 'rail/server'
14
+ require_relative 'rail/support'
15
+ require_relative 'rail/version'
16
+
17
+ Sprockets.register_engine('.haml', Tilt::HamlTemplate)
2
18
 
3
19
  module Rail
20
+ def self.env
21
+ @env ||= build_env
22
+ end
23
+
24
+ def self.applications
25
+ ObjectSpace.each_object(Class).select do |klass|
26
+ klass < Application
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def self.build_env
33
+ string = ENV['RAIL_ENV'] ? ENV['RAIL_ENV'].dup : 'development'
34
+
35
+ string.singleton_class.class_eval do
36
+ define_method(:method_missing) do |name, *arguments, &block|
37
+ super unless name.to_s =~ /^(?<name>.+)\?$/
38
+ self == Regexp.last_match(:name)
39
+ end
40
+ end
41
+
42
+ string
43
+ end
4
44
  end
data/rail.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Rail::VERSION
9
9
  spec.authors = [ 'Ivan Ukhov' ]
10
10
  spec.email = [ 'ivan.ukhov@gmail.com' ]
11
- spec.summary = 'Less is more'
12
- spec.description = 'Less is more'
11
+ spec.summary = 'A light framework for front-end development'
12
+ spec.description = 'A light framework for front-end development'
13
13
  spec.homepage = 'https://github.com/IvanUkhov/rail'
14
14
  spec.license = 'MIT'
15
15
 
@@ -18,6 +18,15 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^spec/})
19
19
  spec.require_paths = [ 'lib' ]
20
20
 
21
+ spec.add_dependency 'rake'
22
+
23
+ spec.add_dependency 'sprockets', '~> 2.12'
24
+
25
+ spec.add_dependency 'coffee-script', '~> 2.2'
26
+ spec.add_dependency 'haml', '~> 4.0'
27
+ spec.add_dependency 'sass', '~> 3.3'
28
+
29
+ spec.add_dependency 'uglifier', '~> 2.5'
30
+
21
31
  spec.add_development_dependency 'bundler', '~> 1.6'
22
- spec.add_development_dependency 'rake'
23
32
  end
@@ -0,0 +1,42 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+
4
+ require_relative 'project/controller'
5
+
6
+ describe Rail::Application do
7
+ it 'handles uncompressed CoffeeScript assets' do
8
+ controller = Controller.new do
9
+ config.compress = false
10
+ end
11
+ body = controller.process('/application.js')
12
+ assert_equal body.strip, <<-BODY.strip
13
+ (function() {
14
+ window.Font = (function() {
15
+ function Font(name) {
16
+ this.name = name;
17
+ }
18
+
19
+ return Font;
20
+
21
+ })();
22
+
23
+ }).call(this);
24
+ (function() {
25
+ var font;
26
+
27
+ font = new Font('Benton Modern Display');
28
+
29
+ }).call(this);
30
+ BODY
31
+ end
32
+
33
+ it 'handles compressed CoffeeScript assets' do
34
+ controller = Controller.new do
35
+ config.compress = true
36
+ end
37
+ body = controller.process('/application.js')
38
+ assert_equal body.strip, <<-BODY.strip
39
+ (function(){window.Font=function(){function n(n){this.name=n}return n}()}).call(this),function(){var n;n=new Font(\"Benton Modern Display\")}.call(this);
40
+ BODY
41
+ end
42
+ end
data/spec/haml_spec.rb ADDED
@@ -0,0 +1,42 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+
4
+ require_relative 'project/controller'
5
+
6
+ describe Rail::Application do
7
+ it 'handles uncompressed Haml assets' do
8
+ controller = Controller.new do
9
+ config.compress = false
10
+ end
11
+ body = controller.process('/')
12
+ assert_equal body.strip, <<-BODY.strip
13
+ <!DOCTYPE html>
14
+ <html>
15
+ <head>
16
+ <title>Hello</title>
17
+ </head>
18
+ <body>
19
+ <h1>Hello</h1>
20
+ </body>
21
+ </html>
22
+ BODY
23
+ end
24
+
25
+ it 'handles compressed Haml assets' do
26
+ controller = Controller.new do
27
+ config.compress = true
28
+ end
29
+ body = controller.process('/')
30
+ assert_equal body.strip, <<-BODY.strip
31
+ <!DOCTYPE html>
32
+ <html>
33
+ <head>
34
+ <title>Hello</title>
35
+ </head>
36
+ <body>
37
+ <h1>Hello</h1>
38
+ </body>
39
+ </html>
40
+ BODY
41
+ end
42
+ end
@@ -0,0 +1,3 @@
1
+ #= require 'font'
2
+
3
+ font = new Font('Benton Modern Display')
@@ -0,0 +1,2 @@
1
+ class window.Font
2
+ constructor: (@name) ->
@@ -0,0 +1,4 @@
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
@@ -0,0 +1,5 @@
1
+ @import 'reset';
2
+
3
+ body {
4
+ font-family: 'Benton Modern Display';
5
+ }
@@ -0,0 +1,6 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %title Hello
5
+ %body
6
+ %h1 Hello
@@ -0,0 +1,6 @@
1
+ require 'rail'
2
+
3
+ module Project
4
+ class Application < Rail::Application
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ require_relative 'config/application'
2
+
3
+ class Controller
4
+ def initialize(&block)
5
+ Project::Application.class_eval(&block) if block
6
+ @application = Project::Application.new
7
+ end
8
+
9
+ def process(path)
10
+ _, _, body = @application.call('PATH_INFO' => path)
11
+ body.to_s
12
+ end
13
+ end
data/spec/sass_spec.rb ADDED
@@ -0,0 +1,31 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+
4
+ require_relative 'project/controller'
5
+
6
+ describe Rail::Application do
7
+ it 'handles uncompressed Sass assests' do
8
+ controller = Controller.new do
9
+ config.compress = false
10
+ end
11
+ body = controller.process('/application.css')
12
+ assert_equal body.strip, <<-BODY.strip
13
+ * {
14
+ margin: 0;
15
+ padding: 0; }
16
+
17
+ body {
18
+ font-family: 'Benton Modern Display'; }
19
+ BODY
20
+ end
21
+
22
+ it 'handles compressed Sass assets' do
23
+ controller = Controller.new do
24
+ config.compress = true
25
+ end
26
+ body = controller.process('/application.css')
27
+ assert_equal body.strip, <<-BODY.strip
28
+ *{margin:0;padding:0}body{font-family:'Benton Modern Display'}
29
+ BODY
30
+ end
31
+ end
metadata CHANGED
@@ -1,44 +1,114 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Ukhov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-20 00:00:00.000000000 Z
11
+ date: 2014-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sprockets
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
33
+ version: '2.12'
34
+ type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '1.6'
40
+ version: '2.12'
27
41
  - !ruby/object:Gem::Dependency
28
- name: rake
42
+ name: coffee-script
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ">="
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0'
47
+ version: '2.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: haml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sass
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: uglifier
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.5'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.5'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.6'
34
104
  type: :development
35
105
  prerelease: false
36
106
  version_requirements: !ruby/object:Gem::Requirement
37
107
  requirements:
38
- - - ">="
108
+ - - "~>"
39
109
  - !ruby/object:Gem::Version
40
- version: '0'
41
- description: Less is more
110
+ version: '1.6'
111
+ description: A light framework for front-end development
42
112
  email:
43
113
  - ivan.ukhov@gmail.com
44
114
  executables: []
@@ -46,13 +116,33 @@ extensions: []
46
116
  extra_rdoc_files: []
47
117
  files:
48
118
  - ".gitignore"
119
+ - ".travis.yml"
120
+ - CHANGELOG.md
49
121
  - Gemfile
50
122
  - LICENSE.txt
51
123
  - README.md
52
124
  - Rakefile
53
125
  - lib/rail.rb
126
+ - lib/rail/application.rb
127
+ - lib/rail/browser.rb
128
+ - lib/rail/pipeline.rb
129
+ - lib/rail/request.rb
130
+ - lib/rail/server.rb
131
+ - lib/rail/support.rb
132
+ - lib/rail/tasks/assets.rake
133
+ - lib/rail/tasks/server.rake
54
134
  - lib/rail/version.rb
55
135
  - rail.gemspec
136
+ - spec/coffee_spec.rb
137
+ - spec/haml_spec.rb
138
+ - spec/project/app/assets/javascripts/application.js.coffee
139
+ - spec/project/app/assets/javascripts/font.coffee
140
+ - spec/project/app/assets/stylesheets/_reset.scss
141
+ - spec/project/app/assets/stylesheets/application.css.scss
142
+ - spec/project/app/views/layouts/application.html.haml
143
+ - spec/project/config/application.rb
144
+ - spec/project/controller.rb
145
+ - spec/sass_spec.rb
56
146
  homepage: https://github.com/IvanUkhov/rail
57
147
  licenses:
58
148
  - MIT
@@ -76,5 +166,15 @@ rubyforge_project:
76
166
  rubygems_version: 2.2.2
77
167
  signing_key:
78
168
  specification_version: 4
79
- summary: Less is more
80
- test_files: []
169
+ summary: A light framework for front-end development
170
+ test_files:
171
+ - spec/coffee_spec.rb
172
+ - spec/haml_spec.rb
173
+ - spec/project/app/assets/javascripts/application.js.coffee
174
+ - spec/project/app/assets/javascripts/font.coffee
175
+ - spec/project/app/assets/stylesheets/_reset.scss
176
+ - spec/project/app/assets/stylesheets/application.css.scss
177
+ - spec/project/app/views/layouts/application.html.haml
178
+ - spec/project/config/application.rb
179
+ - spec/project/controller.rb
180
+ - spec/sass_spec.rb