teleporter 0.1.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62589391fbd9f6388ea3ab8621bcf35083923491
4
- data.tar.gz: 73e3bcd6e162dc11d22229dba41a03bc97fc870c
3
+ metadata.gz: c88ef2941a9d9f20d3996a9f00f0588f96b8f66a
4
+ data.tar.gz: b2730c415087f3b88a2fda67184ff93601544641
5
5
  SHA512:
6
- metadata.gz: 4af55564082b3f522176f67014e0e2f96e83b2b477d3f2c7258f6c9aafc3f1a95b4573f045c67b406fdcff137a51a1a6d7f8abbba2fea959521f64894a4dab75
7
- data.tar.gz: 9a37eef4edcfdd716142a6b2784b8f22a6d6d1256c49ddc3dd99846487d318633db71b95e6eb54f8b43a7f7487075147dec1e164c9d41e47e9949d3da2e3edea
6
+ metadata.gz: 47fd17559426e61e1adfa933c5ca9ab21dac47fc9a01c7be55e0f840bb7645c438a68fdae4f025f189a92f09c4d956445a065c89a265ddeed4360debc2f99000
7
+ data.tar.gz: 20cd183b8698221d443c5b97b4e761384cc04afd5273487acae8906036d76410cf3092cee3d64d2c4da8a3b12f48ad797dfd40d755845937ed649b6ddf864148
data/README.md CHANGED
@@ -18,6 +18,7 @@ Table of content
18
18
  * [rails g initial:simple_form](#rails-g-initialsimple_form)
19
19
  * [rails g initial:devise](#rails-g-initialdevise)
20
20
  * [rails g initial:devise_oauth](#rails-g-initialdevise_oauth)
21
+ * [rails g initial:api](#rails-g-initialapi)
21
22
 
22
23
  ## rails g initial:start
23
24
  ```shell
@@ -67,3 +68,8 @@ generates files for devise installation into a fresh rails application
67
68
 
68
69
  #### rails g initial:devise_oauth
69
70
  generates files for devise-oauth providers
71
+
72
+ #### rails g initial:api
73
+ generates `api/v1/. . .` files for json api
74
+ adds routes for subdomain `api.example.com`
75
+ adds `gem jsonbuilder`
@@ -0,0 +1,35 @@
1
+ module Initial
2
+ class ApiGenerator < Rails::Generators::Base
3
+ source_root File.expand_path("../templates", __FILE__)
4
+
5
+ def add
6
+ begin
7
+ gem 'jbuilder'
8
+ rescue
9
+ nil
10
+ end
11
+
12
+ Bundler.with_clean_env do
13
+ run "bundle install"
14
+ end
15
+
16
+ copy_file 'api/v1/base_controller.rb', 'app/controllers/api/v1/base_controller.rb'
17
+
18
+ @model_name = ask 'Type model name (ex.: Post)'
19
+ template 'api/v1/posts_controller.rb', "app/controllers/api/v1/#{@model_name.pluralize.underscore}_controller.rb"
20
+
21
+ route %Q{
22
+ namespace :api, path: '/', constraints: { subdomain: 'api' } do
23
+ namespace :v1 do
24
+ resources :#{@model_name.pluralize.underscore}, only: :index
25
+ end
26
+ end
27
+ }
28
+
29
+ copy_file 'api/views/index.json.jbuilder', "app/views/api/v1/#{@model_name.underscore}/index.json.jbuilder"
30
+
31
+ p 'for rspec use'
32
+ p 'before(:each) { request.host = "api.example.com" }'
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ class Api::V1::BaseController < ApplicationController
2
+ abstract!
3
+
4
+ protect_from_forgery with: :null_session
5
+
6
+ respond_to :json
7
+ end
@@ -0,0 +1,4 @@
1
+ class Api::V1::<%= @model_name.pluralize %>Controller < Api::V1::BaseController
2
+ def index
3
+ end
4
+ end
@@ -1,4 +1,7 @@
1
+ require_relative 'rspec_helpers'
2
+
1
3
  RSpec.configure do |c|
2
4
  c.filter_run focus: true
3
5
  c.run_all_when_everything_filtered = true
6
+ c.include RspecHelpers
4
7
  end
@@ -0,0 +1,8 @@
1
+ module RspecHelpers
2
+
3
+ # Usage:
4
+ # json(response.body)
5
+ def json(body)
6
+ JSON.parse(body, symbolize_names: true)
7
+ end
8
+ end
data/lib/teleporter.rb CHANGED
@@ -14,5 +14,6 @@ require "generators/initial/devise"
14
14
  require "generators/initial/devise_oauth"
15
15
  require "generators/initial/gitignore"
16
16
  require "generators/initial/database"
17
+ require "generators/initial/api"
17
18
 
18
19
  require "generators/admin/start"
@@ -1,3 +1,3 @@
1
1
  module Teleporter
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/teleporter.gemspec CHANGED
@@ -18,7 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_runtime_dependency "railties"
22
+ spec.add_runtime_dependency "activesupport"
23
+
21
24
  spec.add_development_dependency "bundler", "~> 1.6"
22
25
  spec.add_development_dependency "rake"
23
- spec.add_development_dependency "railties"
24
26
  end
metadata CHANGED
@@ -1,37 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teleporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ponomarev Nikolay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-13 00:00:00.000000000 Z
11
+ date: 2014-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
19
+ version: '0'
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :development
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
@@ -39,7 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: railties
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
@@ -66,6 +80,7 @@ files:
66
80
  - README.md
67
81
  - Rakefile
68
82
  - lib/generators/admin/start.rb
83
+ - lib/generators/initial/api.rb
69
84
  - lib/generators/initial/bootstrap.rb
70
85
  - lib/generators/initial/capistrano.rb
71
86
  - lib/generators/initial/database.rb
@@ -76,6 +91,9 @@ files:
76
91
  - lib/generators/initial/rspec.rb
77
92
  - lib/generators/initial/simple_form.rb
78
93
  - lib/generators/initial/start.rb
94
+ - lib/generators/initial/templates/api/v1/base_controller.rb
95
+ - lib/generators/initial/templates/api/v1/posts_controller.rb.tt
96
+ - lib/generators/initial/templates/api/views/index.json.jbuilder
79
97
  - lib/generators/initial/templates/bootstrap/bootstrap-base.scss
80
98
  - lib/generators/initial/templates/bootstrap/bootstrap-init.coffee
81
99
  - lib/generators/initial/templates/bootstrap/bootstrap_flash_helper.rb
@@ -109,6 +127,7 @@ files:
109
127
  - lib/generators/initial/templates/rspec/configs/devise.rb
110
128
  - lib/generators/initial/templates/rspec/configs/factory_girl.rb
111
129
  - lib/generators/initial/templates/rspec/configs/rspec_base.rb
130
+ - lib/generators/initial/templates/rspec/configs/rspec_helpers.rb
112
131
  - lib/generators/initial/templates/rspec/configs/vcr.rb
113
132
  - lib/generators/initial/templates/rspec/factories/_sample.rb
114
133
  - lib/generators/initial/templates/rspec/shared_examples/_sample_shared.rb