Module: MagicLamp
- Defined in:
- lib/magic_lamp.rb,
lib/magic_lamp/engine.rb,
lib/magic_lamp/version.rb,
lib/magic_lamp/callbacks.rb,
lib/magic_lamp/constants.rb,
lib/magic_lamp/configuration.rb,
lib/magic_lamp/render_catcher.rb,
lib/magic_lamp/fixture_creator.rb,
lib/magic_lamp/defaults_manager.rb,
app/helpers/magic_lamp/application_helper.rb,
app/controllers/magic_lamp/fixtures_controller.rb,
app/controllers/magic_lamp/application_controller.rb
Defined Under Namespace
Modules: ApplicationHelper, Callbacks
Classes: AlreadyRegisteredFixtureError, AmbiguousFixtureNameError, ApplicationController, ArgumentError, Configuration, DefaultsManager, Engine, FixtureCreator, FixturesController, RenderCatcher, UnregisteredFixtureError
Constant Summary
collapse
- VERSION =
File.read(File.join(File.expand_path("../../..", __FILE__), "VERSION"))
- APPLICATION =
"application"
- APPLICATION_MATCHER =
Regexp.compile("(\/#{APPLICATION}|#{APPLICATION}\/|#{APPLICATION})")
- EMPTY_STRING =
""
- FORWARD_SLASH =
"/"
- LAMP =
"_lamp"
- REGISTER_FIXTURE_ALIASES =
[:register, :fixture, :rub, :wish]
- SPEC =
"spec"
- STARS =
"**"
- TEST =
"test"
- Genie =
Engine
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
Returns the value of attribute configuration.
17
18
19
|
# File 'lib/magic_lamp.rb', line 17
def configuration
@configuration
end
|
.registered_fixtures ⇒ Object
Returns the value of attribute registered_fixtures.
17
18
19
|
# File 'lib/magic_lamp.rb', line 17
def registered_fixtures
@registered_fixtures
end
|
Class Method Details
43
44
45
46
47
|
# File 'lib/magic_lamp.rb', line 43
def configure(&block)
raise_missing_block_error(block, __method__)
self.configuration = Configuration.new
block.call(configuration)
end
|
.define(options = {}, &block) ⇒ Object
49
50
51
52
53
54
|
# File 'lib/magic_lamp.rb', line 49
def define(options = {}, &block)
raise_missing_block_error(block, __method__)
defaults_manager = DefaultsManager.new(configuration, options)
defaults_manager.instance_eval(&block)
defaults_manager
end
|
.generate_all_fixtures ⇒ Object
78
79
80
81
82
83
|
# File 'lib/magic_lamp.rb', line 78
def generate_all_fixtures
load_lamp_files
registered_fixtures.keys.each_with_object({}) do |fixture_name, fixtures|
fixtures[fixture_name] = generate_fixture(fixture_name)
end
end
|
.generate_fixture(fixture_name) ⇒ Object
70
71
72
73
74
75
76
|
# File 'lib/magic_lamp.rb', line 70
def generate_fixture(fixture_name)
unless registered?(fixture_name)
raise UnregisteredFixtureError, "'#{fixture_name}' is not a registered fixture"
end
controller_class, block, extensions = registered_fixtures[fixture_name].values_at(:controller, :render_block, :extend)
FixtureCreator.new(configuration).generate_template(controller_class, extensions, &block)
end
|
.load_config ⇒ Object
60
61
62
|
# File 'lib/magic_lamp.rb', line 60
def load_config
load_all(config_files)
end
|
.load_lamp_files ⇒ Object
64
65
66
67
68
|
# File 'lib/magic_lamp.rb', line 64
def load_lamp_files
self.registered_fixtures = {}
load_config
load_all(lamp_files)
end
|
.path ⇒ Object
19
20
21
|
# File 'lib/magic_lamp.rb', line 19
def path
Rails.root.join(directory_path)
end
|
.register_fixture(options = {}, &render_block) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/magic_lamp.rb', line 23
def register_fixture(options = {}, &render_block)
raise_missing_block_error(render_block, __method__)
options[:controller] ||= ::ApplicationController
options[:namespace] ||= options[:controller].controller_name
options[:extend] = Array(options[:extend])
options[:render_block] = render_block
fixture_name = namespaced_fixture_name_or_raise(options)
if registered?(fixture_name)
raise AlreadyRegisteredFixtureError, "a fixture called '#{fixture_name}' has already been registered"
end
registered_fixtures[fixture_name] = options
end
|
.registered?(fixture_name) ⇒ Boolean
56
57
58
|
# File 'lib/magic_lamp.rb', line 56
def registered?(fixture_name)
registered_fixtures.key?(fixture_name)
end
|