Module: CloneKit
- Defined in:
- lib/clone_kit.rb,
lib/clone_kit/rule.rb,
lib/clone_kit/graph.rb,
lib/clone_kit/version.rb,
lib/clone_kit/operation.rb,
lib/clone_kit/rules/remap.rb,
lib/clone_kit/event_outlet.rb,
lib/clone_kit/rules/except.rb,
lib/clone_kit/cloners/no_op.rb,
lib/clone_kit/shared_id_map.rb,
lib/clone_kit/specification.rb,
lib/clone_kit/emitters/empty.rb,
lib/clone_kit/rules/safe_remap.rb,
lib/clone_kit/merge_attributes_tool.rb,
lib/clone_kit/strategies/synchronous.rb,
lib/clone_kit/cloners/mongoid_ruleset_cloner.rb,
lib/clone_kit/rules/allow_only_mongoid_fields.rb,
lib/clone_kit/decorators/embedded_cloner_decorator.rb,
lib/clone_kit/cloners/mongoid_merging_ruleset_cloner.rb
Defined Under Namespace
Modules: Cloners, Decorators, Emitters, Rules, Strategies
Classes: EventOutlet, Graph, MergeAttributesTool, Operation, Rule, SharedIdMap, Specification, SpecificationError
Constant Summary
collapse
- VERSION =
"0.3.0"
Class Method Summary
collapse
Class Method Details
.add_specification(specification) ⇒ Object
27
28
29
30
|
# File 'lib/clone_kit.rb', line 27
def self.add_specification(specification)
spec[specification.model.name] = specification
refresh_specification(specification)
end
|
.cloneable_models(already_cloned) ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/clone_kit.rb', line 36
def self.cloneable_models(already_cloned)
result = []
graph.nodes.each do |model_name, deps|
next if already_cloned.include?(model_name)
next unless deps.all? { |dep| already_cloned.include?(dep) }
result << model_name
end
result
end
|
.graph ⇒ Object
14
15
16
|
# File 'lib/clone_kit.rb', line 14
def self.graph
@graph ||= CloneKit::Graph.new
end
|
.load_rails_models! ⇒ Object
18
19
20
21
|
# File 'lib/clone_kit.rb', line 18
def self.load_rails_models!
Rails.application.eager_load! if defined?(Rails) && !defined?(@eager_loaded_once)
@eager_loaded_once = true
end
|
.refresh_specification(specification) ⇒ Object
32
33
34
|
# File 'lib/clone_kit.rb', line 32
def self.refresh_specification(specification)
graph.add_vertex(specification.model.name, *specification.dependencies)
end
|
.spec ⇒ Object
23
24
25
|
# File 'lib/clone_kit.rb', line 23
def self.spec
@spec ||= {}
end
|