rabl-generators 0.1.0

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.
@@ -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: []