rails_build 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.
@@ -0,0 +1,10 @@
1
+ RailsBuild::Engine.routes.draw do
2
+ get '/' => 'application#index'
3
+ get '/configuration' => 'application#configuration'
4
+ end
5
+
6
+ if RailsBuild.application
7
+ RailsBuild.application.routes.draw do
8
+ mount RailsBuild::Engine => '/rails_build'
9
+ end
10
+ end
@@ -0,0 +1,37 @@
1
+ require "rails_build/engine"
2
+
3
+ module RailsBuild
4
+ Fattr(:application){ defined?(Rails.application) ? Rails.application : nil }
5
+
6
+ def RailsBuild.configure(&block)
7
+ block.call(configuration)
8
+ end
9
+
10
+ def RailsBuild.load_config!(path = nil)
11
+ path ||= application.root.join('config/rails_build.rb').to_s
12
+
13
+ if test(?s, path)
14
+ Kernel.load(path)
15
+ end
16
+ end
17
+
18
+ def RailsBuild.configuration
19
+ @configuration ||= Configuration.new
20
+ end
21
+
22
+ def RailsBuild.config
23
+ RailsBuild.configuration
24
+ end
25
+
26
+ class Configuration
27
+ fattr(:urls){ [] }
28
+ fattr(:trailing_slash){ true }
29
+
30
+ def urls(*args, &block)
31
+ @urls ||= []
32
+ args.join(' ').scan(/[^\s]+/).each{|arg| @urls << arg}
33
+ @urls.uniq!
34
+ block ? @urls.each(&block) : @urls
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,50 @@
1
+ module RailsBuild
2
+ class Engine < ::Rails::Engine
3
+
4
+ isolate_namespace RailsBuild
5
+
6
+ initializer "rails_build.routes" do |application|
7
+ # see config/routes.rb
8
+ #
9
+ RailsBuild.application = application
10
+
11
+ # load config/rails_build.rb iff present
12
+ #
13
+ RailsBuild.load_config!
14
+
15
+ # enforce trailing slash on urls
16
+ #
17
+ if RailsBuild.config.trailing_slash?
18
+ application.default_url_options[:trailing_slash] = true
19
+
20
+ ActionController::Base.module_eval do
21
+ before_action :enforce_trailing_slash
22
+
23
+ def enforce_trailing_slash
24
+ if request.get?
25
+ format = request.fullpath.split('.', 2)[1]
26
+
27
+ if format.nil? and %w[ */* text/html ].include?(request.format.to_s)
28
+ url = request.original_url
29
+ url, query_string = url.split('?')
30
+
31
+ unless url.ends_with?('/')
32
+ flash.keep
33
+
34
+ url = url + '/'
35
+
36
+ if query_string
37
+ url = url + '?' + query_string
38
+ end
39
+
40
+ redirect_to(url, :status => 302)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ end
50
+ end
@@ -0,0 +1,3 @@
1
+ module RailsBuild
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,31 @@
1
+ desc "execute the rails_build program with options, `rails build help=true` for more..."
2
+
3
+ task :rails_build do |task, options|
4
+ engine_root = File.expand_path('../../..', __FILE__)
5
+ engine_bin = File.join(engine_root, 'bin')
6
+ bin = File.join(engine_bin, 'rails_build')
7
+
8
+ args = ARGV.map{|arg| "#{ arg }"}
9
+ task_name = args.shift
10
+
11
+ argv = [bin]
12
+
13
+ args.each do |arg|
14
+ k, v = arg.split('=', 2).map{|s| s.strip}
15
+
16
+ case v.downcase
17
+ when 'true', ''
18
+ argv << "--#{ k }"
19
+ when 'false'
20
+ nil
21
+ else
22
+ argv << "--#{ k }=#{ v }"
23
+ end
24
+ end
25
+
26
+ command_line = argv.join(' ')
27
+
28
+ exec(command_line)
29
+ end
30
+
31
+ task :build => :rails_build
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_build
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - ahoward
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 5.0.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 5.0.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 5.0.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 5.0.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: threadify
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.4.5
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.4.5
47
+ - !ruby/object:Gem::Dependency
48
+ name: passenger
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 5.0.30
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 5.0.30
61
+ - !ruby/object:Gem::Dependency
62
+ name: persistent_http
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 2.0.1
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 2.0.1
75
+ description: a teeny engine that turns your rails 5 application into a lean, mean,
76
+ static site building machine
77
+ email:
78
+ - ara.t.howard@gmail.com
79
+ executables:
80
+ - rails_build
81
+ extensions: []
82
+ extra_rdoc_files: []
83
+ files:
84
+ - MIT-LICENSE
85
+ - README.md
86
+ - Rakefile
87
+ - app/assets/config/rails_build_manifest.js
88
+ - app/assets/javascripts/rails_build/application.js
89
+ - app/assets/stylesheets/rails_build/application.css
90
+ - app/controllers/rails_build/application_controller.rb
91
+ - app/helpers/rails_build/application_helper.rb
92
+ - app/jobs/rails_build/application_job.rb
93
+ - app/mailers/rails_build/application_mailer.rb
94
+ - app/models/rails_build/application_record.rb
95
+ - app/views/layouts/rails_build/application.html.erb
96
+ - app/views/rails_build/application/index.html.erb
97
+ - bin/rails
98
+ - bin/rails_build
99
+ - config/routes.rb
100
+ - lib/rails_build.rb
101
+ - lib/rails_build/engine.rb
102
+ - lib/rails_build/version.rb
103
+ - lib/tasks/rails_build_tasks.rake
104
+ homepage: https://github.com/ahoward/rails_build
105
+ licenses:
106
+ - MIT
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.5.1
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: a teeny engine that turns your rails 5 application into a lean, mean, static
128
+ site building machine
129
+ test_files: []
130
+ has_rdoc: