hobo 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +330 -0
- data/Manifest +12 -4
- data/Rakefile +4 -6
- data/dryml_generators/rapid/cards.dryml.erb +5 -1
- data/dryml_generators/rapid/forms.dryml.erb +8 -10
- data/dryml_generators/rapid/pages.dryml.erb +65 -36
- data/hobo.gemspec +28 -15
- data/lib/active_record/association_collection.rb +3 -22
- data/lib/hobo.rb +25 -258
- data/lib/hobo/accessible_associations.rb +131 -0
- data/lib/hobo/authentication_support.rb +15 -9
- data/lib/hobo/composite_model.rb +1 -1
- data/lib/hobo/controller.rb +7 -8
- data/lib/hobo/dryml.rb +9 -10
- data/lib/hobo/dryml/dryml_builder.rb +7 -1
- data/lib/hobo/dryml/dryml_doc.rb +161 -0
- data/lib/hobo/dryml/dryml_generator.rb +18 -9
- data/lib/hobo/dryml/part_context.rb +76 -42
- data/lib/hobo/dryml/tag_parameters.rb +1 -0
- data/lib/hobo/dryml/taglib.rb +2 -1
- data/lib/hobo/dryml/template.rb +39 -29
- data/lib/hobo/dryml/template_environment.rb +79 -37
- data/lib/hobo/dryml/template_handler.rb +66 -21
- data/lib/hobo/guest.rb +2 -10
- data/lib/hobo/hobo_helper.rb +125 -53
- data/lib/hobo/include_in_save.rb +0 -1
- data/lib/hobo/lifecycles.rb +54 -24
- data/lib/hobo/lifecycles/actions.rb +95 -31
- data/lib/hobo/lifecycles/creator.rb +18 -23
- data/lib/hobo/lifecycles/lifecycle.rb +86 -62
- data/lib/hobo/lifecycles/state.rb +1 -2
- data/lib/hobo/lifecycles/transition.rb +22 -28
- data/lib/hobo/model.rb +64 -176
- data/lib/hobo/model_controller.rb +67 -54
- data/lib/hobo/model_router.rb +5 -2
- data/lib/hobo/permissions.rb +397 -0
- data/lib/hobo/permissions/associations.rb +167 -0
- data/lib/hobo/scopes.rb +15 -38
- data/lib/hobo/scopes/association_proxy_extensions.rb +15 -5
- data/lib/hobo/scopes/automatic_scopes.rb +43 -18
- data/lib/hobo/scopes/named_scope_extensions.rb +2 -2
- data/lib/hobo/user.rb +10 -4
- data/lib/hobo/user_controller.rb +6 -5
- data/lib/hobo/view_hints.rb +58 -0
- data/rails_generators/hobo/hobo_generator.rb +7 -3
- data/rails_generators/hobo/templates/guest.rb +1 -13
- data/rails_generators/hobo_front_controller/hobo_front_controller_generator.rb +1 -1
- data/rails_generators/hobo_model/hobo_model_generator.rb +4 -2
- data/rails_generators/hobo_model/templates/hints.rb +4 -0
- data/rails_generators/hobo_model/templates/model.rb +8 -8
- data/rails_generators/hobo_model_controller/hobo_model_controller_generator.rb +10 -0
- data/rails_generators/hobo_model_controller/templates/controller.rb +1 -1
- data/rails_generators/hobo_rapid/templates/hobo-rapid.js +91 -56
- data/rails_generators/hobo_rapid/templates/lowpro.js +15 -15
- data/rails_generators/hobo_rapid/templates/reset.css +36 -3
- data/rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css +13 -17
- data/rails_generators/hobo_user_controller/templates/controller.rb +1 -1
- data/rails_generators/hobo_user_model/templates/model.rb +18 -16
- data/taglibs/core.dryml +60 -18
- data/taglibs/rapid.dryml +8 -401
- data/taglibs/rapid_core.dryml +586 -0
- data/taglibs/rapid_document_tags.dryml +28 -10
- data/taglibs/rapid_editing.dryml +92 -55
- data/taglibs/rapid_forms.dryml +406 -87
- data/taglibs/rapid_generics.dryml +1 -1
- data/taglibs/rapid_navigation.dryml +2 -1
- data/taglibs/rapid_pages.dryml +7 -16
- data/taglibs/rapid_plus.dryml +39 -14
- data/taglibs/rapid_support.dryml +1 -1
- data/taglibs/rapid_user_pages.dryml +14 -4
- data/tasks/{generate_tag_reference.rb → generate_tag_reference.rake} +49 -18
- data/tasks/hobo_tasks.rake +16 -0
- data/test/permissions/models/models.rb +134 -0
- data/test/permissions/models/schema.rb +55 -0
- data/test/permissions/models/test.sqlite3 +0 -0
- data/test/permissions/test_permissions.rb +436 -0
- metadata +27 -14
- data/lib/hobo/mass_assignment.rb +0 -64
- data/rails_generators/hobo/templates/patch_routing.rb +0 -30
- data/uninstall.rb +0 -1
data/lib/hobo/mass_assignment.rb
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
module Hobo
|
2
|
-
|
3
|
-
MassAssignment = classy_module do
|
4
|
-
|
5
|
-
include IncludeInSave
|
6
|
-
|
7
|
-
|
8
|
-
# --- has_many mass assignment support --- #
|
9
|
-
|
10
|
-
def self.has_many_with_mass_assignment(name, options={}, &block)
|
11
|
-
accessible = options.delete(:accessible)
|
12
|
-
has_many_without_mass_assignment(name, options, &block)
|
13
|
-
|
14
|
-
if accessible
|
15
|
-
class_eval %{
|
16
|
-
def #{name}_with_mass_assignment=(array_or_hash)
|
17
|
-
items = prepare_has_many_assignment(:#{name}, array_or_hash)
|
18
|
-
self.#{name}_without_mass_assignment = items
|
19
|
-
# ensure the loaded array contains any changed records
|
20
|
-
self.#{name}.proxy_target[0..-1] = items
|
21
|
-
end}, __FILE__, __LINE__ - 3
|
22
|
-
alias_method_chain :"#{name}=", :mass_assignment
|
23
|
-
end
|
24
|
-
end
|
25
|
-
metaclass.alias_method_chain :has_many, :mass_assignment
|
26
|
-
|
27
|
-
|
28
|
-
def prepare_has_many_assignment(association_name, array_or_hash)
|
29
|
-
association = send(association_name)
|
30
|
-
|
31
|
-
array = params_hash_to_array(array_or_hash)
|
32
|
-
array.map do |record_or_hash|
|
33
|
-
if record_or_hash.is_a?(Hash)
|
34
|
-
hash = record_or_hash
|
35
|
-
|
36
|
-
id = hash.delete(:id)
|
37
|
-
record = if id
|
38
|
-
association.find(id) # TODO: We don't really want to find these one by one
|
39
|
-
else
|
40
|
-
# Remove completely blank hashes
|
41
|
-
next if hash.values.join.blank?
|
42
|
-
|
43
|
-
record = association.build
|
44
|
-
end
|
45
|
-
record.attributes = hash
|
46
|
-
include_in_save(association_name, record)
|
47
|
-
else
|
48
|
-
record = record_or_hash
|
49
|
-
end
|
50
|
-
record
|
51
|
-
|
52
|
-
end.compact
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
def params_hash_to_array(array_or_hash)
|
57
|
-
if array_or_hash.is_a?(Hash)
|
58
|
-
array = array_or_hash.get(*array_or_hash.keys.sort_by(&:to_i))
|
59
|
-
else
|
60
|
-
array_or_hash
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
if Rails::VERSION::STRING.in? ["2.1.0", "2.1.1"]
|
2
|
-
module ActionController
|
3
|
-
module Routing
|
4
|
-
class RouteSet
|
5
|
-
def clear_recognize_optimized!
|
6
|
-
instance_eval %{
|
7
|
-
def recognize_optimized(path, env)
|
8
|
-
write_recognize_optimized
|
9
|
-
recognize_optimized(path, env)
|
10
|
-
end
|
11
|
-
}, __FILE__, __LINE__
|
12
|
-
end
|
13
|
-
|
14
|
-
def clear_with_optimization!
|
15
|
-
clear_without_optimization!
|
16
|
-
clear_recognize_optimized!
|
17
|
-
end
|
18
|
-
alias_method_chain :clear!, :optimization
|
19
|
-
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
else
|
25
|
-
RAILS_DEFAULT_LOGGER.info "****"
|
26
|
-
RAILS_DEFAULT_LOGGER.info "**** The file config/initializers/patch_routing.rb is not in use"
|
27
|
-
RAILS_DEFAULT_LOGGER.info "**** with this version of Rails and can be removed"
|
28
|
-
RAILS_DEFAULT_LOGGER.info "****"
|
29
|
-
end
|
30
|
-
|
data/uninstall.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# Uninstall hook code here
|