Module: Characterize

Defined in:
lib/characterize.rb,
lib/characterize/railtie.rb,
lib/characterize/version.rb,
lib/characterize/collection.rb,
lib/characterize/controller.rb,
lib/characterize/object_set.rb,
lib/characterize/feature_set.rb,
lib/characterize/view_forwards.rb,
lib/characterize/feature_controls.rb,
lib/characterize/relation_collection.rb,
lib/generators/characterize/install/install_generator.rb

Defined Under Namespace

Modules: Controller, ControllerMacros, FeatureControls, Generators, ViewForwards Classes: Collection, FeatureSet, ObjectSet, Railtie, RelationCollection

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.builtin_standard_featuresObject



51
52
53
# File 'lib/characterize.rb', line 51

def self.builtin_standard_features
  [::Characterize::FeatureControls].freeze
end

.included(klass) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/characterize.rb', line 9

def self.included(klass)
  klass.class_eval {
    include Casting::Client
    delegate_missing_methods

    # Rails 8 defines Object#with for temporary attribute assignment.
    # Route to cast feature controls when present.
    def with(*args, **kwargs, &block)
      if (attendant = method_delegate(:with))
        cast(:with, attendant, *args, **kwargs, &block)
      else
        super
      end
    end
  }
end

.module_suffixObject



35
36
37
# File 'lib/characterize.rb', line 35

def self.module_suffix
  @characterize_suffix ||= "Character"
end

.module_suffix=(val) ⇒ Object



39
40
41
# File 'lib/characterize.rb', line 39

def self.module_suffix=(val)
  @characterize_suffix = val
end

.register_collection(klass, type) ⇒ Object



55
56
57
# File 'lib/characterize.rb', line 55

def self.register_collection(klass, type)
  Collection.register(klass, type)
end

.standard_featuresObject



43
44
45
# File 'lib/characterize.rb', line 43

def self.standard_features
  @standard_features ||= builtin_standard_features.dup
end

.standard_features=(mods_array) ⇒ Object



47
48
49
# File 'lib/characterize.rb', line 47

def self.standard_features=(mods_array)
  @standard_features = mods_array
end

Instance Method Details

#__set_characterize_view__(obj) ⇒ Object



30
31
32
33
# File 'lib/characterize.rb', line 30

def __set_characterize_view__(obj)
  @characterize_view = obj
  self
end

#__view__Object



26
27
28
# File 'lib/characterize.rb', line 26

def __view__
  @characterize_view
end