roy-rails 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in roy-rails.genspec
4
+ gemspec
5
+
6
+ gem "rails", "~> 3.1"
7
+
8
+ group :test do
9
+ gem "minitest"
10
+ end
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ Package Roy as an alternate JS engine in the Rails Asset Pipeline.
2
+
3
+
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << 'lib'
8
+ t.libs << 'test'
9
+ t.pattern = 'test/**/*_test.rb'
10
+ t.verbose = false
11
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/generators/named_base'
2
+
3
+ module Roy
4
+ module Generators
5
+ class AssetsGenerator < ::Rails::Generators::NamedBase
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def copy_roy
9
+ template "javascript.js.roy", File.join('app/assets/javascripts', class_path, "#{file_name}.js.roy")
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ # Place all the behaviors and hooks related to the matching controller here.
2
+ # All this logic will automatically be available in application.js.
3
+ # You can use Roy in this file: https://github.com/pufuwozu/roy/
@@ -0,0 +1,7 @@
1
+ require 'rails/railtie'
2
+
3
+ module Roy::Rails
4
+ class Railtie < ::Rails::Railtie
5
+ config.app_generators.javascript_engine :roy
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module Roy
2
+ module Rails
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
data/lib/roy-rails.rb ADDED
@@ -0,0 +1,3 @@
1
+ require 'roy'
2
+ require 'roy/rails/railtie'
3
+ require 'roy/rails/version'
data/roy-rails.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "roy/rails/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "roy-rails"
6
+ s.version = Roy::Rails::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.homepage = "http://github.com/tmcgilchrist/roy-rails"
9
+ s.summary = "Roy adapter for the Rails asset pipeline."
10
+
11
+ s.author = "Tim McGilchrist"
12
+ s.email = "timmcgil@gmail.com"
13
+
14
+ s.description = "Roy adapter for the Rails asset pipeline."
15
+
16
+ s.add_runtime_dependency 'roy-lang', '>= 0.0.1'
17
+ s.add_runtime_dependency 'railties', '~> 3.1'
18
+ s.add_runtime_dependency 'actionpack', '~> 3.1'
19
+ s.add_runtime_dependency 'sprockets', '~> 2.1'
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+ end
@@ -0,0 +1,15 @@
1
+ require 'test_helper'
2
+ require 'rails/generators/roy/assets/assets_generator'
3
+
4
+ class AssetGeneratorTest < Rails::Generators::TestCase
5
+ tests Roy::Generators::AssetsGenerator
6
+
7
+ destination File.expand_path("../tmp", __FILE__)
8
+ setup :prepare_destination
9
+
10
+ def test_assets
11
+ run_generator %w(posts)
12
+ assert_no_file "app/assets/javascripts/posts.js"
13
+ assert_file "app/assets/javascripts/posts.js.roy"
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+ require 'rails/generators/rails/controller/controller_generator'
3
+ require 'rails/generators/roy/assets/assets_generator'
4
+
5
+ class ControllerGeneratorTest < Rails::Generators::TestCase
6
+ tests Rails::Generators::ControllerGenerator
7
+
8
+ destination File.expand_path("../tmp", __FILE__)
9
+ setup do
10
+ prepare_destination
11
+ copy_routes
12
+ end
13
+
14
+ def test_assets
15
+ run_generator %w(posts --javascript-engine=roy --orm=false)
16
+ assert_no_file "app/assets/javascripts/posts.js"
17
+ assert_file "app/assets/javascripts/posts.js.roy"
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+ require 'rails/generators/rails/scaffold/scaffold_generator'
3
+ require 'rails/generators/roy/assets/assets_generator'
4
+
5
+ class ScaffoldGeneratorTest < Rails::Generators::TestCase
6
+ tests Rails::Generators::ScaffoldGenerator
7
+
8
+ destination File.expand_path("../tmp", __FILE__)
9
+ setup do
10
+ prepare_destination
11
+ copy_routes
12
+ end
13
+
14
+ def test_assets
15
+ run_generator %w(posts --javascript-engine=roy --orm=false)
16
+ assert_no_file "app/assets/javascripts/posts.js"
17
+ assert_file "app/assets/javascripts/posts.js.roy"
18
+ end
19
+ end
@@ -0,0 +1 @@
1
+ # routes dummy file
@@ -0,0 +1,16 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require 'rails'
5
+ require 'rails/test_help'
6
+
7
+ # For generators
8
+ require 'rails/generators/test_case'
9
+
10
+ def copy_routes
11
+ routes = File.expand_path("../support/routes.rb", __FILE__)
12
+ destination = File.join(destination_root, "config")
13
+
14
+ FileUtils.mkdir_p(destination)
15
+ FileUtils.cp routes, destination
16
+ end
@@ -0,0 +1,3 @@
1
+ # Place all the behaviors and hooks related to the matching controller here.
2
+ # All this logic will automatically be available in application.js.
3
+ # You can use Roy in this file: https://github.com/pufuwozu/roy/
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,56 @@
1
+ body { background-color: #fff; color: #333; }
2
+
3
+ body, p, ol, ul, td {
4
+ font-family: verdana, arial, helvetica, sans-serif;
5
+ font-size: 13px;
6
+ line-height: 18px;
7
+ }
8
+
9
+ pre {
10
+ background-color: #eee;
11
+ padding: 10px;
12
+ font-size: 11px;
13
+ }
14
+
15
+ a { color: #000; }
16
+ a:visited { color: #666; }
17
+ a:hover { color: #fff; background-color:#000; }
18
+
19
+ div.field, div.actions {
20
+ margin-bottom: 10px;
21
+ }
22
+
23
+ #notice {
24
+ color: green;
25
+ }
26
+
27
+ .field_with_errors {
28
+ padding: 2px;
29
+ background-color: red;
30
+ display: table;
31
+ }
32
+
33
+ #error_explanation {
34
+ width: 450px;
35
+ border: 2px solid red;
36
+ padding: 7px;
37
+ padding-bottom: 0;
38
+ margin-bottom: 20px;
39
+ background-color: #f0f0f0;
40
+ }
41
+
42
+ #error_explanation h2 {
43
+ text-align: left;
44
+ font-weight: bold;
45
+ padding: 5px 5px 5px 15px;
46
+ font-size: 12px;
47
+ margin: -7px;
48
+ margin-bottom: 0px;
49
+ background-color: #c00;
50
+ color: #fff;
51
+ }
52
+
53
+ #error_explanation ul li {
54
+ font-size: 12px;
55
+ list-style: square;
56
+ }
@@ -0,0 +1,83 @@
1
+ class PostsController < ApplicationController
2
+ # GET /posts
3
+ # GET /posts.json
4
+ def index
5
+ @posts = Post.all
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.json { render json: @posts }
10
+ end
11
+ end
12
+
13
+ # GET /posts/1
14
+ # GET /posts/1.json
15
+ def show
16
+ @post = Post.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @post }
21
+ end
22
+ end
23
+
24
+ # GET /posts/new
25
+ # GET /posts/new.json
26
+ def new
27
+ @post = Post.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.json { render json: @post }
32
+ end
33
+ end
34
+
35
+ # GET /posts/1/edit
36
+ def edit
37
+ @post = Post.find(params[:id])
38
+ end
39
+
40
+ # POST /posts
41
+ # POST /posts.json
42
+ def create
43
+ @post = Post.new(params[:post])
44
+
45
+ respond_to do |format|
46
+ if @post.save
47
+ format.html { redirect_to @post, notice: 'Post was successfully created.' }
48
+ format.json { render json: @post, status: :created, location: @post }
49
+ else
50
+ format.html { render action: "new" }
51
+ format.json { render json: @post.errors, status: :unprocessable_entity }
52
+ end
53
+ end
54
+ end
55
+
56
+ # PUT /posts/1
57
+ # PUT /posts/1.json
58
+ def update
59
+ @post = Post.find(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @post.update_attributes(params[:post])
63
+ format.html { redirect_to @post, notice: 'Post was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @post.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ # DELETE /posts/1
73
+ # DELETE /posts/1.json
74
+ def destroy
75
+ @post = Post.find(params[:id])
76
+ @post.destroy
77
+
78
+ respond_to do |format|
79
+ format.html { redirect_to posts_url }
80
+ format.json { head :no_content }
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,2 @@
1
+ module PostsHelper
2
+ end
@@ -0,0 +1,17 @@
1
+ <%= form_for(@post) do |f| %>
2
+ <% if @post.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @post.errors.full_messages.each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="actions">
15
+ <%= f.submit %>
16
+ </div>
17
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing post</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @post %> |
6
+ <%= link_to 'Back', posts_path %>
@@ -0,0 +1,21 @@
1
+ <h1>Listing posts</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th></th>
6
+ <th></th>
7
+ <th></th>
8
+ </tr>
9
+
10
+ <% @posts.each do |post| %>
11
+ <tr>
12
+ <td><%= link_to 'Show', post %></td>
13
+ <td><%= link_to 'Edit', edit_post_path(post) %></td>
14
+ <td><%= link_to 'Destroy', post, confirm: 'Are you sure?', method: :delete %></td>
15
+ </tr>
16
+ <% end %>
17
+ </table>
18
+
19
+ <br />
20
+
21
+ <%= link_to 'New Post', new_post_path %>
@@ -0,0 +1,5 @@
1
+ <h1>New post</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', posts_path %>
@@ -0,0 +1,5 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+
4
+ <%= link_to 'Edit', edit_post_path(@post) %> |
5
+ <%= link_to 'Back', posts_path %>
@@ -0,0 +1 @@
1
+ # routes dummy file
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roy-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Tim McGilchrist
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: roy-lang
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.0.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: railties
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '3.1'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.1'
46
+ - !ruby/object:Gem::Dependency
47
+ name: actionpack
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '3.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.1'
62
+ - !ruby/object:Gem::Dependency
63
+ name: sprockets
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '2.1'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2.1'
78
+ description: Roy adapter for the Rails asset pipeline.
79
+ email: timmcgil@gmail.com
80
+ executables: []
81
+ extensions: []
82
+ extra_rdoc_files: []
83
+ files:
84
+ - Gemfile
85
+ - README.md
86
+ - Rakefile
87
+ - lib/rails/generators/roy/assets/assets_generator.rb
88
+ - lib/rails/generators/roy/assets/templates/javascript.js.roy
89
+ - lib/roy-rails.rb
90
+ - lib/roy/rails/railtie.rb
91
+ - lib/roy/rails/version.rb
92
+ - roy-rails.gemspec
93
+ - test/assets_generator_test.rb
94
+ - test/controller_generator_test.rb
95
+ - test/scaffold_generator_test.rb
96
+ - test/support/routes.rb
97
+ - test/test_helper.rb
98
+ - test/tmp/app/assets/javascripts/posts.js.roy
99
+ - test/tmp/app/assets/stylesheets/posts.css
100
+ - test/tmp/app/assets/stylesheets/scaffold.css
101
+ - test/tmp/app/controllers/posts_controller.rb
102
+ - test/tmp/app/helpers/posts_helper.rb
103
+ - test/tmp/app/views/posts/_form.html.erb
104
+ - test/tmp/app/views/posts/edit.html.erb
105
+ - test/tmp/app/views/posts/index.html.erb
106
+ - test/tmp/app/views/posts/new.html.erb
107
+ - test/tmp/app/views/posts/show.html.erb
108
+ - test/tmp/config/routes.rb
109
+ homepage: http://github.com/tmcgilchrist/roy-rails
110
+ licenses: []
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ requirements: []
128
+ rubyforge_project:
129
+ rubygems_version: 1.8.21
130
+ signing_key:
131
+ specification_version: 3
132
+ summary: Roy adapter for the Rails asset pipeline.
133
+ test_files:
134
+ - test/assets_generator_test.rb
135
+ - test/controller_generator_test.rb
136
+ - test/scaffold_generator_test.rb
137
+ - test/support/routes.rb
138
+ - test/test_helper.rb
139
+ - test/tmp/app/assets/javascripts/posts.js.roy
140
+ - test/tmp/app/assets/stylesheets/posts.css
141
+ - test/tmp/app/assets/stylesheets/scaffold.css
142
+ - test/tmp/app/controllers/posts_controller.rb
143
+ - test/tmp/app/helpers/posts_helper.rb
144
+ - test/tmp/app/views/posts/_form.html.erb
145
+ - test/tmp/app/views/posts/edit.html.erb
146
+ - test/tmp/app/views/posts/index.html.erb
147
+ - test/tmp/app/views/posts/new.html.erb
148
+ - test/tmp/app/views/posts/show.html.erb
149
+ - test/tmp/config/routes.rb