hobo 1.3.0.pre14 → 1.3.0.pre15
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/VERSION +1 -1
- data/lib/generators/hobo/i18n/templates/hobo.en.yml +1 -0
- data/lib/generators/hobo/i18n/templates/hobo.es-DO.yml +1 -0
- data/lib/generators/hobo/i18n/templates/hobo.it.yml +1 -0
- data/lib/generators/hobo/i18n/templates/hobo.pt-PT.yml +1 -0
- data/lib/generators/hobo/routes/routes_generator.rb +12 -1
- data/lib/generators/hobo/setup_wizard/setup_wizard_generator.rb +10 -3
- data/lib/hobo/controller.rb +1 -1
- data/lib/hobo/engine.rb +5 -14
- data/lib/hobo/extensions/active_record/relation_with_origin.rb +2 -2
- data/lib/hobo/routes.rb +22 -23
- data/lib/hobo.rb +2 -2
- metadata +13 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.0.
|
1
|
+
1.3.0.pre15
|
@@ -1,14 +1,25 @@
|
|
1
|
+
require 'generators/hobo_support/eval_template'
|
2
|
+
|
1
3
|
module Hobo
|
2
4
|
class RoutesGenerator < Rails::Generators::Base
|
3
5
|
source_root File.expand_path('../templates', __FILE__)
|
4
6
|
|
7
|
+
include Generators::HoboSupport::EvalTemplate
|
8
|
+
|
5
9
|
def self.banner
|
6
10
|
"rails generate hobo:routes #{self.arguments.map(&:usage).join(' ')} [options]"
|
7
11
|
end
|
8
12
|
|
9
13
|
def generate_routes
|
10
14
|
Hobo::Routes.reset_linkables
|
11
|
-
|
15
|
+
h = Hobo::Engine.config.hobo
|
16
|
+
template_name = 'hobo_routes.rb.erb'
|
17
|
+
if h.read_only_file_system
|
18
|
+
# just fill the @linkable_keys without writing any file
|
19
|
+
eval_template template_name
|
20
|
+
else
|
21
|
+
template template_name, h.routes_path
|
22
|
+
end
|
12
23
|
end
|
13
24
|
|
14
25
|
private
|
@@ -44,6 +44,9 @@ module Hobo
|
|
44
44
|
class_option :git_repo, :type => :boolean,
|
45
45
|
:desc => "Create the git repository with the initial commit"
|
46
46
|
|
47
|
+
class_option :gitignore_auto_generated_files, :type => :boolean,
|
48
|
+
:desc => "Add the auto-generated files to .gitignore", :default => true
|
49
|
+
|
47
50
|
|
48
51
|
def startup
|
49
52
|
if wizard?
|
@@ -205,16 +208,20 @@ EOI
|
|
205
208
|
if wizard?
|
206
209
|
say_title 'Git Repository'
|
207
210
|
return unless yes_no?("Do you want to initialize a git repository now?")
|
211
|
+
gitignore_auto_generated = yes_no? "Do you want git to ignore the auto-generated files?\n(Choose 'n' only if you are planning to deploy on a read-only File System like Heroku)"
|
208
212
|
say 'Initializing git repository...'
|
209
213
|
else
|
210
214
|
return unless options[:git_repo]
|
215
|
+
gitignore_auto_generated = options[:gitignore_auto_generated_files]
|
216
|
+
end
|
217
|
+
if gitignore_auto_generated
|
218
|
+
hobo_routes_rel_path = Hobo::Engine.config.hobo.routes_path.relative_path_from Rails.root
|
219
|
+
append_file '.gitignore', "app/views/taglibs/auto/**/*\n#{hobo_routes_rel_path}\n"
|
211
220
|
end
|
212
|
-
hobo_routes_rel_path = Hobo::Engine.config.hobo.routes_path.relative_path_from Rails.root
|
213
|
-
append_file '.gitignore', "app/views/taglibs/auto/**/*\n#{hobo_routes_rel_path}\n"
|
214
221
|
git :init
|
215
222
|
git :add => '.'
|
216
223
|
git :commit => '-m "initial commit"'
|
217
|
-
say
|
224
|
+
say("NOTICE: If you change the config.hobo.routes_path, you should update the .gitignore file accordingly.", Color::YELLOW) if gitignore_auto_generated
|
218
225
|
end
|
219
226
|
|
220
227
|
def finalize
|
data/lib/hobo/controller.rb
CHANGED
data/lib/hobo/engine.rb
CHANGED
@@ -39,30 +39,21 @@ module Hobo
|
|
39
39
|
|
40
40
|
ActiveSupport.on_load(:before_initialize) do
|
41
41
|
require 'hobo/undefined'
|
42
|
-
|
42
|
+
HoboFields.never_wrap(Hobo::Undefined)
|
43
43
|
h = config.hobo
|
44
44
|
Dryml::DrymlGenerator.enable([h.rapid_generators_path], h.auto_taglibs_path)
|
45
|
-
|
46
|
-
HoboFields.never_wrap(Hobo::Undefined)
|
47
45
|
end
|
48
46
|
|
49
47
|
initializer 'hobo.routes' do |app|
|
50
48
|
h = app.config.hobo
|
51
49
|
# generate at first boot, so no manual generation is required
|
52
50
|
unless File.exists?(h.routes_path)
|
53
|
-
if h.read_only_file_system
|
54
|
-
|
55
|
-
else
|
56
|
-
Rails::Generators.invoke('hobo:routes', %w[-f -q])
|
57
|
-
end
|
51
|
+
raise Hobo::Error, "No #{h.routes_path} found!" if h.read_only_file_system
|
52
|
+
Rails::Generators.invoke('hobo:routes', %w[-f -q])
|
58
53
|
end
|
59
54
|
app.routes_reloader.paths << h.routes_path
|
60
|
-
|
61
|
-
|
62
|
-
Rails::Generators.configure!
|
63
|
-
# generate before each request in development
|
64
|
-
Rails::Generators.invoke('hobo:routes', %w[-f -q])
|
65
|
-
end
|
55
|
+
app.config.to_prepare do
|
56
|
+
Rails::Generators.invoke('hobo:routes', %w[-f -q])
|
66
57
|
end
|
67
58
|
end
|
68
59
|
|
@@ -15,8 +15,8 @@ module ActiveRecord
|
|
15
15
|
end
|
16
16
|
alias_method_chain :scoped, :origin
|
17
17
|
|
18
|
-
def method_missing_with_origin(method, *args)
|
19
|
-
res = method_missing_without_origin(method, *args)
|
18
|
+
def method_missing_with_origin(method, *args, &block)
|
19
|
+
res = method_missing_without_origin(method, *args, &block)
|
20
20
|
res.origin = @owner if res.respond_to?(:origin)
|
21
21
|
res.origin_attribute = @reflection.name if res.respond_to?(:origin_attribute)
|
22
22
|
res
|
data/lib/hobo/routes.rb
CHANGED
@@ -1,32 +1,31 @@
|
|
1
1
|
module Hobo
|
2
|
-
|
3
|
-
|
2
|
+
module Routes
|
3
|
+
extend self
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def linkable_key(klass, action, options)
|
10
|
-
subsite = options[:subsite] || options['subsite']
|
11
|
-
method = options[:method] || options['method'] || :get
|
12
|
-
[ subsite, klass.name, action, method ].join('/')
|
13
|
-
end
|
5
|
+
def reset_linkables
|
6
|
+
@linkable_keys = Set.new
|
7
|
+
end
|
14
8
|
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
def linkable_key(klass, action, options)
|
10
|
+
subsite = options[:subsite] || options['subsite']
|
11
|
+
method = options[:method] || options['method'] || :get
|
12
|
+
[ subsite, klass.name, action, method ].join('/')
|
13
|
+
end
|
18
14
|
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
def linkable!(klass, action, options={})
|
16
|
+
@linkable_keys << linkable_key(klass, action, options)
|
17
|
+
end
|
22
18
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
(action == wanted_action) ? class_name.constantize : nil
|
27
|
-
end.compact
|
28
|
-
end
|
19
|
+
def linkable?(klass, action, options={})
|
20
|
+
@linkable_keys.member? linkable_key(klass, action, options)
|
21
|
+
end
|
29
22
|
|
23
|
+
def models_with(wanted_action)
|
24
|
+
@linkable_keys.map do |k|
|
25
|
+
subsite, class_name, action, method = k.split('/')
|
26
|
+
(action == wanted_action) ? class_name.constantize : nil
|
27
|
+
end.compact
|
30
28
|
end
|
29
|
+
|
31
30
|
end
|
32
31
|
end
|
data/lib/hobo.rb
CHANGED
@@ -5,13 +5,13 @@ require 'will_paginate'
|
|
5
5
|
require 'hobo/extensions/enumerable'
|
6
6
|
require 'hobo/extensions/array'
|
7
7
|
|
8
|
-
ActiveSupport::Dependencies.autoload_paths |= [
|
8
|
+
ActiveSupport::Dependencies.autoload_paths |= [File.dirname(__FILE__)]
|
9
9
|
|
10
10
|
|
11
11
|
module Hobo
|
12
12
|
|
13
13
|
VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
|
14
|
-
@@root = Pathname.new File.expand_path(
|
14
|
+
@@root = Pathname.new File.expand_path('../..', __FILE__)
|
15
15
|
def self.root; @@root; end
|
16
16
|
|
17
17
|
class Error < RuntimeError; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -1637175966
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.3.0.
|
10
|
+
- pre15
|
11
|
+
version: 1.3.0.pre15
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Tom Locke
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-11-03 00:00:00 -04:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -59,13 +59,13 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
hash: -
|
62
|
+
hash: -1637175966
|
63
63
|
segments:
|
64
64
|
- 1
|
65
65
|
- 3
|
66
66
|
- 0
|
67
|
-
-
|
68
|
-
version: 1.3.0.
|
67
|
+
- pre15
|
68
|
+
version: 1.3.0.pre15
|
69
69
|
type: :runtime
|
70
70
|
version_requirements: *id003
|
71
71
|
- !ruby/object:Gem::Dependency
|
@@ -76,13 +76,13 @@ dependencies:
|
|
76
76
|
requirements:
|
77
77
|
- - "="
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
hash: -
|
79
|
+
hash: -1637175966
|
80
80
|
segments:
|
81
81
|
- 1
|
82
82
|
- 3
|
83
83
|
- 0
|
84
|
-
-
|
85
|
-
version: 1.3.0.
|
84
|
+
- pre15
|
85
|
+
version: 1.3.0.pre15
|
86
86
|
type: :runtime
|
87
87
|
version_requirements: *id004
|
88
88
|
- !ruby/object:Gem::Dependency
|
@@ -93,13 +93,13 @@ dependencies:
|
|
93
93
|
requirements:
|
94
94
|
- - "="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
hash: -
|
96
|
+
hash: -1637175966
|
97
97
|
segments:
|
98
98
|
- 1
|
99
99
|
- 3
|
100
100
|
- 0
|
101
|
-
-
|
102
|
-
version: 1.3.0.
|
101
|
+
- pre15
|
102
|
+
version: 1.3.0.pre15
|
103
103
|
type: :runtime
|
104
104
|
version_requirements: *id005
|
105
105
|
- !ruby/object:Gem::Dependency
|