Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dsandstrom/sinatra-transporter
https://github.com/dsandstrom/sinatra-transporter
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/dsandstrom/sinatra-transporter
- Owner: dsandstrom
- License: mit
- Created: 2024-08-01T21:39:16.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-08-01T23:17:22.000Z (5 months ago)
- Last Synced: 2024-08-02T00:53:43.195Z (5 months ago)
- Language: CoffeeScript
- Size: 247 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Rails Transporter [![Build Status](https://travis-ci.org/hmatsuda/rails-transporter.svg?branch=master)](https://travis-ci.org/hmatsuda/rails-transporter)
This package provides commands to open file depending on file which is being opened by active editor.
![screenshot](http://cl.ly/image/43053A1J2b17/rails-transporter.gif)
## Command Description
### open-controller
This command provides 2 features.#### Open related controller
It opens controller file from `model`, `view`, `controller-test`, `controller-spec` or `requests-spec`.e.g. When active editor is opening:
`app/models/user.rb`, `app/views/users/*.html.erb` or `spec/controllers/users_controller_spec.rb`,
`open-controller` opens `app/controllers/users_controller.rb`.#### Open controller concern
It opens concern file from controller.e.g. If active editor opens below file and cursor is on the `include` method,
```ruby
class BlogsController < ApplicationController
include Blog::Taggable
end
```
`open-controller` opens `app/controllers/concerns/blog/taggable.rb`.If no controller or concern found, show dialog to create new file.
### open-model
This command provides 2 features.#### Open related model
It opens related model file from `controller`, `view`, `model-test`, `model-spec` or `factory`.e.g. When active editor is opening:
`app/controllers/users_controller.rb`, `app/views/users/*.html.erb`, `spec/models/user_spec.rb` or `spec/factories/users.rb`,`open-model` opens `app/models/user.rb`.
#### Open model concern
It opens concern file from model.e.g. If active editor opens below file and cursor is on the `include` method,
```ruby
class Item < ActiveRecord::Base
include Searchable
end
```
`open-model` opens `app/models/concerns/searchable.rb`.If no model or concern found, show dialog to create new file.
### open-view
It opens related view for action method of controller.When active editor is opening controller and cursor is inside action method, `open-view` opens the related view file.
e.g. When you open a below controller,
```ruby
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
end
```if cursor is inside `index` method, `open-view` opens `app/views/users/index.html.erb`
else if cursor is inside `show` method, `open-view` opens `app/views/users/show.html.erb` else, do nothing.If no related view found, show dialog to create new file.
If you want to change template engine like haml, override default setting in setting view.
![View File Extension](http://cl.ly/image/2m31390Z0Z34/Settings_-__Users_hakutoitoi__ghq_github_com_hmatsuda_rails-transporter_-_Atom.png)### open-view-finder
It opens related view files of controller.e.g. When active editor is opening `app/controllers/blogs_controller.rb`, `open-view-finder` opens related view list.
![](http://cl.ly/image/1t0A0D220S3C/blogs_controller_rb_-__Users_hakutoitoi__ghq_github_com_hmatsuda_rails-transporter_spec_fixtures_-_Atom.png)### open-layout
It opens related layout from `layout` method in controller.e.g. When active editor is opening controller, `open-layout` opens the related view layout file.
This command provides 2 behavior to open layout file. When active editor is opening a below controller,
```ruby
class UsersController < ApplicationController
layout 'user_dashboard'
end
```
First, cursor is on the `layout` method, `open-layout` opens `app/views/layouts/user_dashboard.html.erb` if it exists.Second, when cursor isn't on the `layout` method, it opens `app/views/layouts/users.html.erb` if it doesn't exist, opens `app/views/layouts/application.html.erb`.
The first behavior has a priority to apply.
### open-helper
It opens related helper from `controller`, `model`, `view`, `helper-test` or `helper-spec`.e.g. When active editor is opening:
`app/controllers/users_controller.rb`, `app/models/user.rb`, `app/views/users/*.html.erb` or `spec/helpers/users_helper_spec.rb`,
`open-helper` opens `app/helpers/users_helper.rb`.
If no helper found, show dialog to create new file.
### open-test
It opens related test from `controller`, `model`, `helper` or `factory`.e.g. When active editor is opening:
`app/controllers/users_controller.rb`, it opens `spec/controllers/users_controller_test.rb`.
`app/models/user.rb`, it opens `test/models/user_test.rb`.
`app/helpers/users_helper.rb`, it opens `test/helpers/users_helper_test.rb`.
If no test found, show dialog to create new file.
### open-spec
It opens related spec from `controller`, `model`, `helper` or `factory`.e.g. When active editor is opening:
`app/controllers/users_controller.rb`, it opens `spec/controllers/users_controller_spec.rb`, feautres or requests spec.
`app/models/user.rb` or `spec/factories/users.rb`, it opens `spec/models/user_spec.rb`.
`app/helpers/users_helper.rb`, it opens `spec/helpers/users_helper_spec.rb`.
If no spec found, show dialog to create new file.
### open-partial-template
It opens partial template from `render` method.e.g. When active editor is opening a below view file and cursor is on the `render` method,
```ruby<%= render 'sidebar' %>
```
`open-partial-template` opens `app/views/users/_sidebar.html.erb`.If no related view found, show dialog to create new file.
### open-asset
It opens related asset file from view or asset file.e.g.
* When active editor is opening a below view,
```html<%= stylesheet_link_tag "user" %>
<%= javascript_include_tag "user" %>
<%= csrf_meta_tags %><%= yield %>
```
when cursor is on `javascript_include_tag` method, it opens `app/assets/javascripts/user.js`,
when cursor is on `stylesheet_link_tag` method, it opens `app/assets/stylesheets/user.css`.* When it is opening a asset file as following and cursor is on the `require` method,
```coffee
//= require my_library
```
it opens javascript file if it exists.* When it is opening a asset file as following and cursor is on the `require_tree` or `require_directory` method,
```coffee
//= require_tree shared
//= require_directory shared
```
it opens related asset file list![](http://cl.ly/image/1G2D240f1A0i/application01_js_-__Users_hakutoitoi__ghq_github_com_hmatsuda_rails-transporter_spec_fixtures_-_Atom.png)
### open-mingration-finder
It opens all of migration list.![](http://cl.ly/image/3y0F2D1H1w2F/application01_js_-__Users_hakutoitoi__ghq_github_com_hmatsuda_rails-transporter_spec_fixtures_-_Atom.png)
### open-factory
It opens related factory file from `model` or `model-spec`.e.g. When active editor is opening:
`app/models/user.rb`, or `spec/models/user_spec.rb`,
`open-spec` opens `spec/factories/blogs.rb`.
If no factory found, show dialog to create new file.
## Default Keymaps
Command | Keymap
--------|-------
open-controller|`ctrl-r c`
open-view-finder|`ctrl-r v f`
open-view|`ctrl-r v`
open-layout|`ctrl-r l`
open-model|`ctrl-r m`
open-helper|`ctrl-r h`
open-test|`ctrl-r t`
open-spec|`ctrl-r s`
open-partial-template|`ctrl-r p`
open-asset|`ctrl-r a`
open-migration-finder|`ctrl-r d m`
open-factory|`ctrl-r f`## Configurations
You can change these from the Settings menu.
### `viewFileExtension`
Extension of the view files.if it's value is `html.erb, html.haml, json.jbuilder`, `open-view` attempts to open following:
```
1. html.erb
2. html.haml
3. json.jbuilder
```
### `controllerSpecType`
type of controller spec files. Use this to support [controller spec](https://www.relishapp.com/rspec/rspec-rails/v/3-2/docs/controller-specs), [request spec](https://www.relishapp.com/rspec/rspec-rails/v/3-2/docs/request-specs/request-spec) or [feature spec](https://www.relishapp.com/rspec/rspec-rails/v/3-2/docs/feature-specs).## Requirement
* Ruby 1.9.3+
* Rails 2.0.0+## Contributors
* joseramonc
* chibicode