rabl-generators 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTVjYmMwNWE4ODI4OGI0YTU5NTYwOTRkMjQyMjNmZDFjNmNlMWI3Nw==
5
+ data.tar.gz: !binary |-
6
+ MTA4ZGRjNzM0YWI5ODY5MTM4NmQ1YTVkM2Y3ZmMwOWMyM2M4NWFlNQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ M2NlZGNiNTMzM2MzMTIxY2VkYzQ0ZGZjYTRiMGY3NWZlZGY5ZjAwMzhmMmIx
10
+ NTE0N2M5NDUzODUyMjVhNDIwOWE5ZjM3NDg3NjQ1YjA2YTNhYWJkZjQyNjAw
11
+ MTQ3YTFlODQzZDJlMGU5OTNkMmIzNjZlZTFjYmI0MTc4ZDBmYWM=
12
+ data.tar.gz: !binary |-
13
+ YzJjYjRhNWYyOWU0Y2Y3MWUyNzg5YTA5ZTQwODUxY2EzODdmNTQ5MDUzYmM4
14
+ ZTY2NDgzY2M2Nzc3ODI4OTUyMjA3NWM3YTZhMjdjNTczOTlkZmQyNjVjMzkx
15
+ ZDZhZDM4ZGU0MGQwZTQyMTM2NzcyNjQ5ZDI4MjAxMjA3MGE1MjA=
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle/
3
+ *.lock
4
+ gemfiles/*.lock
5
+ tmp/
@@ -0,0 +1,16 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - 2.0.0
7
+ gemfile:
8
+ - gemfiles/rails_3_1.gemfile
9
+ - gemfiles/rails_3_2.gemfile
10
+ - gemfiles/rails_4_0.gemfile
11
+ matrix:
12
+ exclude:
13
+ - rvm: 1.8.7
14
+ gemfile: gemfiles/rails_4_0.gemfile
15
+ - rvm: 1.9.2
16
+ gemfile: gemfiles/rails_4_0.gemfile
@@ -0,0 +1,11 @@
1
+ appraise "rails_3_1" do
2
+ gem "rails", "~> 3.1.0"
3
+ end
4
+
5
+ appraise "rails_3_2" do
6
+ gem "rails", "~> 3.2.0"
7
+ end
8
+
9
+ appraise "rails_4_0" do
10
+ gem "rails", "~> 4.0.0"
11
+ end
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2013 Frank Macreery
2
+
3
+ MIT Licence
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,23 @@
1
+ # rabl-generators
2
+
3
+ `rabl-generators` provides Rabl generators for Rails 3 and 4.
4
+
5
+ To use it, add this line to your Gemfile:
6
+
7
+ gem "rabl-generators"
8
+
9
+ And that's it! So amaze. Many Hypermedia. Wow.
10
+
11
+ ### Acknowledgments
12
+
13
+ This gem very liberally rips off the [haml-rails](https://github.com/indirect/haml-rails) gem written by André Arko.
14
+
15
+ ### Code Status
16
+
17
+ [![Build Status](https://travis-ci.org/fancyremarker/rabl-generators.png)](https://travis-ci.org/fancyremarker/rabl-generators)
18
+
19
+ ### License
20
+
21
+ MIT License, see [LICENSE](LICENSE.md) for details.
22
+
23
+ (c) 2013 [Frank Macreery](https://github.com/fancyremarker).
@@ -0,0 +1,13 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'appraisal'
5
+
6
+ require 'rake/testtask'
7
+ Rake::TestTask.new(:test) do |test|
8
+ test.libs << 'lib' << 'test'
9
+ test.pattern = 'test/**/*_test.rb'
10
+ test.verbose = true
11
+ end
12
+
13
+ task :default => :test
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 3.1.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 3.2.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4.0.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ require 'rails'
2
+ require 'rabl'
3
+
4
+ require 'rabl/generators/version'
5
+
6
+ require File.expand_path('../../rails/generators/resource_generator', __FILE__)
7
+ require File.expand_path('../../rails/generators/resource_template_generator', __FILE__)
@@ -0,0 +1,5 @@
1
+ module Rabl
2
+ module Generators
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ require "rails/generators"
2
+ require "rails/generators/rails/resource/resource_generator"
3
+
4
+ module Rails
5
+ module Generators
6
+ class ResourceGenerator
7
+ hook_for :resource_template, default: true do |template|
8
+ invoke template, [ controller_name, options[:actions] ]
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,32 @@
1
+ require 'rails/generators/erb'
2
+
3
+ module Rails
4
+ module Generators
5
+ class ResourceTemplateGenerator < Erb::Generators::Base
6
+ argument :actions, type: :array, default: [], banner: "action action"
7
+ source_root File.expand_path("../templates", __FILE__)
8
+
9
+ def create_resource_template_files
10
+ base_path = File.join("app/views", class_path, file_name)
11
+ empty_directory base_path
12
+
13
+
14
+ [:index, :show].each do |action|
15
+ @action = action
16
+ @path = File.join(base_path, filename_with_extensions(action))
17
+ template filename_with_extensions(action), @path
18
+ end
19
+ end
20
+
21
+ protected
22
+
23
+ def format
24
+ nil
25
+ end
26
+
27
+ def handler
28
+ :rabl
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,2 @@
1
+ collection @<%= class_name.underscore.pluralize %> => :<%= class_name.underscore.pluralize %>
2
+ attributes :id
@@ -0,0 +1,2 @@
1
+ object @<%= class_name.underscore %>
2
+ attributes :id
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path("../lib/rabl/generators/version", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "rabl-generators"
6
+ s.version = Rabl::Generators::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Frank Macreery"]
9
+ s.email = ["frank@macreery.com"]
10
+ s.homepage = "http://github.com/fancyremarker/rabl-generators"
11
+ s.summary = "Rabl generators for Rails resources"
12
+ s.description = "Rabl generators for Rails resources"
13
+ s.licenses = ["MIT"]
14
+
15
+ s.required_rubygems_version = ">= 1.3.6"
16
+
17
+ s.add_dependency "rabl", [">= 0.8", "< 0.10"]
18
+ s.add_dependency "activesupport", [">= 3.1", "< 4.1"]
19
+ s.add_dependency "actionpack", [">= 3.1", "< 4.1"]
20
+ s.add_dependency "railties", [">= 3.1", "< 4.1"]
21
+
22
+ s.add_development_dependency "rails", [">= 3.1", "< 4.1"]
23
+ s.add_development_dependency "bundler", "~> 1.2"
24
+ s.add_development_dependency "rake"
25
+ s.add_development_dependency 'appraisal', '>= 0.3.8'
26
+
27
+ s.files = `git ls-files`.split("\n")
28
+ s.executables = `git ls-files`.split("\n").select{|f| f =~ /^bin/}
29
+ s.require_path = 'lib'
30
+ end
@@ -0,0 +1,58 @@
1
+ TestApp.routes.draw do |map|
2
+ # The priority is based upon order of creation:
3
+ # first created -> highest priority.
4
+
5
+ # Sample of regular route:
6
+ # match 'products/:id' => 'catalog#view'
7
+ # Keep in mind you can assign values other than :controller and :action
8
+
9
+ # Sample of named route:
10
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
11
+ # This route can be invoked with purchase_url(:id => product.id)
12
+
13
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
14
+ # resources :products
15
+
16
+ # Sample resource route with options:
17
+ # resources :products do
18
+ # member do
19
+ # get :short
20
+ # post :toggle
21
+ # end
22
+ #
23
+ # collection do
24
+ # get :sold
25
+ # end
26
+ # end
27
+
28
+ # Sample resource route with sub-resources:
29
+ # resources :products do
30
+ # resources :comments, :sales
31
+ # resource :seller
32
+ # end
33
+
34
+ # Sample resource route with more complex sub-resources
35
+ # resources :products do
36
+ # resources :comments
37
+ # resources :sales do
38
+ # get :recent, :on => :collection
39
+ # end
40
+ # end
41
+
42
+ # Sample resource route within a namespace:
43
+ # namespace :admin do
44
+ # # Directs /admin/products/* to Admin::ProductsController
45
+ # # (app/controllers/admin/products_controller.rb)
46
+ # resources :products
47
+ # end
48
+
49
+ # You can have the root of your site routed with "root"
50
+ # just remember to delete public/index.html.
51
+ # root :to => "welcome#index"
52
+
53
+ # See how all your routes lay out with "rake routes"
54
+
55
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
56
+ # Note: This route will make all actions in every controller accessible via GET requests.
57
+ # match ':controller(/:action(/:id(.:format)))'
58
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+ require 'rabl/generators'
3
+
4
+ class Rails::Generators::ResourceTemplateGeneratorTest < Rails::Generators::TestCase
5
+ destination File.join(Rails.root)
6
+ tests Rails::Generators::ResourceGenerator
7
+ arguments %w(Account --actions index show)
8
+
9
+ setup :prepare_destination
10
+ setup :copy_routes
11
+
12
+ test "should invoke template engine" do
13
+ run_generator
14
+ assert_file "app/views/accounts/show.rabl", %r(object @account)
15
+ assert_file "app/views/accounts/index.rabl", %r(collection @accounts)
16
+ end
17
+ end
@@ -0,0 +1,32 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'rails/all'
4
+ require 'rails/generators'
5
+ require 'rails/generators/test_case'
6
+
7
+ class TestApp < Rails::Application
8
+ config.root = File.dirname(__FILE__)
9
+ end
10
+ Rails.application = TestApp
11
+
12
+ module Rails
13
+ def self.root
14
+ @root ||= File.expand_path(File.join(File.dirname(__FILE__), '..', 'tmp', 'rails'))
15
+ end
16
+ end
17
+ Rails.application.config.root = Rails.root
18
+
19
+ # Call configure to load the settings from
20
+ # Rails.application.config.generators to Rails::Generators
21
+ Rails::Generators.configure! Rails.application.config.generators
22
+
23
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
24
+
25
+ def copy_routes
26
+ routes = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', 'routes.rb'))
27
+ destination = File.join(Rails.root, "config")
28
+ FileUtils.mkdir_p(destination)
29
+ FileUtils.cp File.expand_path(routes), destination
30
+ end
31
+
32
+ require 'rails/generators/rails/resource/resource_generator'
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabl-generators
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Frank Macreery
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-11-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabl
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0.8'
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '0.10'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0.8'
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '0.10'
33
+ - !ruby/object:Gem::Dependency
34
+ name: activesupport
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '3.1'
40
+ - - <
41
+ - !ruby/object:Gem::Version
42
+ version: '4.1'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '3.1'
50
+ - - <
51
+ - !ruby/object:Gem::Version
52
+ version: '4.1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: actionpack
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '3.1'
60
+ - - <
61
+ - !ruby/object:Gem::Version
62
+ version: '4.1'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '3.1'
70
+ - - <
71
+ - !ruby/object:Gem::Version
72
+ version: '4.1'
73
+ - !ruby/object:Gem::Dependency
74
+ name: railties
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '3.1'
80
+ - - <
81
+ - !ruby/object:Gem::Version
82
+ version: '4.1'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '3.1'
90
+ - - <
91
+ - !ruby/object:Gem::Version
92
+ version: '4.1'
93
+ - !ruby/object:Gem::Dependency
94
+ name: rails
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '3.1'
100
+ - - <
101
+ - !ruby/object:Gem::Version
102
+ version: '4.1'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '3.1'
110
+ - - <
111
+ - !ruby/object:Gem::Version
112
+ version: '4.1'
113
+ - !ruby/object:Gem::Dependency
114
+ name: bundler
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ~>
118
+ - !ruby/object:Gem::Version
119
+ version: '1.2'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: '1.2'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rake
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: appraisal
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
147
+ version: 0.3.8
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: 0.3.8
155
+ description: Rabl generators for Rails resources
156
+ email:
157
+ - frank@macreery.com
158
+ executables: []
159
+ extensions: []
160
+ extra_rdoc_files: []
161
+ files:
162
+ - .gitignore
163
+ - .travis.yml
164
+ - Appraisals
165
+ - Gemfile
166
+ - LICENSE.md
167
+ - README.md
168
+ - Rakefile
169
+ - gemfiles/rails_3_1.gemfile
170
+ - gemfiles/rails_3_2.gemfile
171
+ - gemfiles/rails_4_0.gemfile
172
+ - lib/rabl/generators.rb
173
+ - lib/rabl/generators/version.rb
174
+ - lib/rails/generators/resource_generator.rb
175
+ - lib/rails/generators/resource_template_generator.rb
176
+ - lib/rails/generators/templates/index.rabl
177
+ - lib/rails/generators/templates/show.rabl
178
+ - rabl-generators.gemspec
179
+ - test/fixtures/routes.rb
180
+ - test/lib/generators/rabl/resource_generator_test.rb
181
+ - test/test_helper.rb
182
+ homepage: http://github.com/fancyremarker/rabl-generators
183
+ licenses:
184
+ - MIT
185
+ metadata: {}
186
+ post_install_message:
187
+ rdoc_options: []
188
+ require_paths:
189
+ - lib
190
+ required_ruby_version: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: 1.3.6
200
+ requirements: []
201
+ rubyforge_project:
202
+ rubygems_version: 2.0.5
203
+ signing_key:
204
+ specification_version: 4
205
+ summary: Rabl generators for Rails resources
206
+ test_files: []