hobo 1.3.0.pre13 → 1.3.0.pre14
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/Rakefile +2 -1
- data/VERSION +1 -1
- data/lib/generators/hobo/routes/router.rb +2 -2
- data/lib/hobo/engine.rb +19 -7
- data/lib/hobo/extensions/active_record/relation_with_origin.rb +28 -0
- data/lib/hobo/model.rb +5 -0
- metadata +14 -13
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rake/rdoctask'
|
3
3
|
require 'rake/testtask'
|
4
|
+
require 'tmpdir'
|
4
5
|
|
5
6
|
require 'active_record'
|
6
7
|
ActiveRecord::ActiveRecordError # hack for https://rails.lighthouseapp.com/projects/8994/tickets/2577-when-using-activerecordassociations-outside-of-rails-a-nameerror-is-thrown
|
@@ -14,7 +15,7 @@ RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']).
|
|
14
15
|
RUBYDOCTEST = ENV['RUBYDOCTEST'] || "#{RUBY} -S rubydoctest"
|
15
16
|
|
16
17
|
GEM_ROOT = File.expand_path('../', __FILE__)
|
17
|
-
TESTAPP_PATH = '
|
18
|
+
TESTAPP_PATH = File.join Dir.tmpdir, 'hobo_testapp'
|
18
19
|
BIN = File.expand_path('../bin/hobo', __FILE__)
|
19
20
|
require 'hobo_support/common_tasks'
|
20
21
|
include HoboSupport::CommonTasks
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.0.
|
1
|
+
1.3.0.pre14
|
@@ -9,7 +9,7 @@ module Generators
|
|
9
9
|
attr_reader :subsite, :controller, :model, :record, :records
|
10
10
|
|
11
11
|
def initialize(subsite, controller)
|
12
|
-
raise "#{controller} is not a Hobo::Controller::Model" unless controller < ::Hobo::Controller::Model
|
12
|
+
raise ::Hobo::Error, "#{controller} is not a Hobo::Controller::Model" unless controller < ::Hobo::Controller::Model
|
13
13
|
@subsite = subsite
|
14
14
|
@controller = controller
|
15
15
|
@model = controller.model
|
@@ -53,7 +53,7 @@ module Generators
|
|
53
53
|
routes = []
|
54
54
|
controller.owner_actions.each_pair do |owner, actions|
|
55
55
|
collection_refl = model.reverse_reflection(owner)
|
56
|
-
raise Hobo::Error, "Hob routing error -- can't find reverse association for #{model}##{owner} " +
|
56
|
+
raise ::Hobo::Error, "Hob routing error -- can't find reverse association for #{model}##{owner} " +
|
57
57
|
"(e.g. the :has_many that corresponds to a :belongs_to)" if collection_refl.nil?
|
58
58
|
collection = collection_refl.name
|
59
59
|
owner_class = model.reflections[owner].klass.name.underscore
|
data/lib/hobo/engine.rb
CHANGED
@@ -13,6 +13,7 @@ module Hobo
|
|
13
13
|
h.routes_path = Pathname.new File.expand_path('config/hobo_routes.rb', Rails.root)
|
14
14
|
h.rapid_generators_path = Pathname.new File.expand_path('lib/hobo/rapid/generators', Hobo.root)
|
15
15
|
h.auto_taglibs_path = Pathname.new File.expand_path('app/views/taglibs/auto', Rails.root)
|
16
|
+
h.read_only_file_system = !!ENV['HEROKU_TYPE']
|
16
17
|
end
|
17
18
|
|
18
19
|
ActiveSupport.on_load(:action_controller) do
|
@@ -27,6 +28,7 @@ module Hobo
|
|
27
28
|
require 'hobo/extensions/active_record/hobo_methods'
|
28
29
|
require 'hobo/extensions/active_record/permissions'
|
29
30
|
require 'hobo/extensions/active_record/scopes'
|
31
|
+
require 'hobo/extensions/active_record/relation_with_origin'
|
30
32
|
require 'hobo/extensions/active_model/name'
|
31
33
|
require 'hobo/extensions/active_model/translation'
|
32
34
|
end
|
@@ -47,18 +49,28 @@ module Hobo
|
|
47
49
|
initializer 'hobo.routes' do |app|
|
48
50
|
h = app.config.hobo
|
49
51
|
# generate at first boot, so no manual generation is required
|
50
|
-
|
52
|
+
unless File.exists?(h.routes_path)
|
53
|
+
if h.read_only_file_system
|
54
|
+
raise Hobo::Error, "No #{h.routes_path} found!"
|
55
|
+
else
|
56
|
+
Rails::Generators.invoke('hobo:routes', %w[-f -q])
|
57
|
+
end
|
58
|
+
end
|
51
59
|
app.routes_reloader.paths << h.routes_path
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
60
|
+
unless h.read_only_file_system
|
61
|
+
app.config.to_prepare do
|
62
|
+
Rails::Generators.configure!
|
63
|
+
# generate before each request in development
|
64
|
+
Rails::Generators.invoke('hobo:routes', %w[-f -q])
|
65
|
+
end
|
56
66
|
end
|
57
67
|
end
|
58
68
|
|
59
69
|
initializer 'hobo.dryml' do |app|
|
60
|
-
app.config.
|
61
|
-
|
70
|
+
unless app.config.hobo.read_only_file_system
|
71
|
+
app.config.to_prepare do
|
72
|
+
Dryml::DrymlGenerator.run
|
73
|
+
end
|
62
74
|
end
|
63
75
|
end
|
64
76
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module ActiveRecord
|
2
|
+
|
3
|
+
class Relation
|
4
|
+
attr_accessor :origin, :origin_attribute
|
5
|
+
end
|
6
|
+
|
7
|
+
module Associations
|
8
|
+
class AssociationCollection
|
9
|
+
|
10
|
+
def scoped_with_origin
|
11
|
+
relation = scoped_without_origin.clone
|
12
|
+
relation.origin = @owner
|
13
|
+
relation.origin_attribute = @reflection.name
|
14
|
+
relation
|
15
|
+
end
|
16
|
+
alias_method_chain :scoped, :origin
|
17
|
+
|
18
|
+
def method_missing_with_origin(method, *args)
|
19
|
+
res = method_missing_without_origin(method, *args)
|
20
|
+
res.origin = @owner if res.respond_to?(:origin)
|
21
|
+
res.origin_attribute = @reflection.name if res.respond_to?(:origin_attribute)
|
22
|
+
res
|
23
|
+
end
|
24
|
+
alias_method_chain :method_missing, :origin
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/hobo/model.rb
CHANGED
@@ -333,6 +333,11 @@ module Hobo
|
|
333
333
|
class_name.safe_constantize or Object.class_eval("class #{class_name} < Hobo::ViewHints; end; #{class_name}")
|
334
334
|
end
|
335
335
|
|
336
|
+
def table_exists?
|
337
|
+
@table_exists_cache = super if @table_exists_cache.nil?
|
338
|
+
@table_exists_cache
|
339
|
+
end
|
340
|
+
|
336
341
|
|
337
342
|
end # --- of ClassMethods --- #
|
338
343
|
|
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: -1637175963
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.3.0.
|
10
|
+
- pre14
|
11
|
+
version: 1.3.0.pre14
|
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-10-
|
19
|
+
date: 2010-10-27 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: -1637175963
|
63
63
|
segments:
|
64
64
|
- 1
|
65
65
|
- 3
|
66
66
|
- 0
|
67
|
-
-
|
68
|
-
version: 1.3.0.
|
67
|
+
- pre14
|
68
|
+
version: 1.3.0.pre14
|
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: -1637175963
|
80
80
|
segments:
|
81
81
|
- 1
|
82
82
|
- 3
|
83
83
|
- 0
|
84
|
-
-
|
85
|
-
version: 1.3.0.
|
84
|
+
- pre14
|
85
|
+
version: 1.3.0.pre14
|
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: -1637175963
|
97
97
|
segments:
|
98
98
|
- 1
|
99
99
|
- 3
|
100
100
|
- 0
|
101
|
-
-
|
102
|
-
version: 1.3.0.
|
101
|
+
- pre14
|
102
|
+
version: 1.3.0.pre14
|
103
103
|
type: :runtime
|
104
104
|
version_requirements: *id005
|
105
105
|
- !ruby/object:Gem::Dependency
|
@@ -274,6 +274,7 @@ files:
|
|
274
274
|
- lib/hobo/extensions/active_record/association_reflection.rb
|
275
275
|
- lib/hobo/extensions/active_record/hobo_methods.rb
|
276
276
|
- lib/hobo/extensions/active_record/permissions.rb
|
277
|
+
- lib/hobo/extensions/active_record/relation_with_origin.rb
|
277
278
|
- lib/hobo/extensions/active_record/scopes.rb
|
278
279
|
- lib/hobo/extensions/array.rb
|
279
280
|
- lib/hobo/extensions/enumerable.rb
|