mithril-specs 0.2.0

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.
@@ -0,0 +1,31 @@
1
+ ## Development Versions
2
+
3
+ #### Version 0.2.0
4
+ * Implemented ProxyController
5
+
6
+ #### Version 0.1.2
7
+ * Added HelpActions mixin
8
+
9
+ #### Version 0.1.1
10
+ * Added logger property to Mithril module
11
+
12
+ #### Version 0.1.0
13
+ * Implemented AbstractController
14
+
15
+ #### Version 0.0.4
16
+ * Renamed ActionMixin to MixinWithActions for clarity
17
+ * Improved specs for Mixin, MixinWithActions
18
+
19
+ #### Version 0.0.3
20
+ * Implemented Mithril::Parsers::SimpleParser
21
+
22
+ #### Version 0.0.2
23
+ * Implemented Mithril::Controllers::Mixins::ActionsBase
24
+ * Implemented Mithril::Request
25
+ * Added and monkey-patched RSpec Matchers
26
+
27
+ #### Version 0.0.1
28
+ * Implemented Mithril::Mixin
29
+
30
+ #### Version 0.0.0
31
+ * Smoke test
File without changes
@@ -0,0 +1,81 @@
1
+ # spec/controllers/text_controller_helper.rb
2
+
3
+ require 'mithril/controllers/abstract_controller_helper'
4
+
5
+ shared_examples_for "Mithril::Controllers::_TextController" do
6
+ it_behaves_like Mithril::Controllers::AbstractController
7
+
8
+ let :input do "text input"; end
9
+
10
+ describe :parser do
11
+ specify { expect(instance.parser).to be_a Mithril::Parsers::SimpleParser }
12
+ end # describe
13
+
14
+ describe :parse_command do
15
+ specify { expect(instance.parse_command input).to be_a Array }
16
+
17
+ specify "returns nil" do
18
+ command, args = instance.parse_command input
19
+ expect(command).to be nil
20
+ end # specify
21
+ end # describe
22
+
23
+ describe :command_missing do
24
+ specify "returns the text with a helpful message" do
25
+ output = instance.command_missing input
26
+ expect(output).to match /don't know how/
27
+ expect(output).to match /#{input}/
28
+ end # specify
29
+ end # describe
30
+
31
+ describe :invoke_command do
32
+ specify "returns the text with a helpful message" do
33
+ output = instance.invoke_command input
34
+ expect(output).to match /don't know how/
35
+ expect(output).to match /#{input}/
36
+ end # specify
37
+ end # describe
38
+
39
+ context "with actions defined" do
40
+ let :command do FactoryGirl.generate :action_key; end
41
+ let :arguments do %w(arguments for command); end
42
+
43
+ before :each do
44
+ described_class.define_action command do |session, args| args.join(' '); end
45
+ end # before each
46
+
47
+ specify { expect(instance.can_invoke? command.to_s).to be true }
48
+
49
+ describe :invoke_command do
50
+ let :text do "#{command} #{arguments.join(' ')}"; end
51
+
52
+ specify "invokes matching action" do
53
+ instance.should_receive(:invoke_action).with(command, arguments).and_call_original
54
+ instance.should_receive(:"action_#{command}").with(request.session, arguments).and_call_original
55
+ instance.invoke_command text
56
+ end # specify
57
+
58
+ specify { expect(instance.invoke_command text).to eq arguments.join(' ') }
59
+
60
+ context "with a non-matching command" do
61
+ let :non_matching do FactoryGirl.generate :action_key; end
62
+
63
+ specify { expect(instance.invoke_command non_matching.to_s).to match /don't know how/i }
64
+ end # context
65
+ end # describe
66
+ end # context
67
+
68
+ describe "empty actions" do
69
+ def self.input
70
+ chars, words = [*"a".."z", *"0".."9"], [""] * 5
71
+ 5.times do |i|
72
+ word = ""
73
+ (6 + rand(10)).times do word << chars[rand(36)]; end
74
+ words[i] = word
75
+ end # times
76
+ words.join " "
77
+ end # helper input
78
+
79
+ it_behaves_like "Mithril::Controllers::AbstractController#empty_actions", input
80
+ end # describe
81
+ end # describe
@@ -0,0 +1,118 @@
1
+ # spec/mithril/controllers/abstract_controller_helper.rb
2
+
3
+ require 'mithril/controllers/mixins/actions_base_helper'
4
+
5
+ require 'mithril/controllers/abstract_controller'
6
+
7
+ shared_examples_for Mithril::Controllers::AbstractController do
8
+ it_behaves_like Mithril::Controllers::Mixins::ActionsBase
9
+
10
+ describe :constructor do
11
+ specify { expect(described_class).to construct.with(1).arguments }
12
+ specify { expect { described_class.new request }.not_to raise_error }
13
+ end # describe
14
+
15
+ describe :parser do
16
+ specify { expect(instance).to respond_to(:parser).with(0).arguments }
17
+ end # describe
18
+
19
+ describe :parse_command do
20
+ let :input do Object.new; end
21
+
22
+ specify { expect(instance).to respond_to(:parse_command).with(1).arguments }
23
+ specify "delegates to the parser" do
24
+ instance.parser.should_receive(:parse_command).with(input)
25
+ instance.parse_command(input)
26
+ end # specify
27
+ end # describe
28
+
29
+ describe :command_missing do
30
+ let :input do Object.new; end
31
+
32
+ specify { expect(instance).to respond_to(:command_missing).with(1).arguments }
33
+ end # describe
34
+
35
+ describe :commands do
36
+ specify { expect(instance).to respond_to(:commands).with(0).arguments }
37
+ specify { expect(instance.commands).to be_a Array }
38
+ end # describe
39
+
40
+ describe :has_command? do
41
+ specify { expect(instance).to respond_to(:has_command?).with(1).arguments }
42
+ specify { expect(instance).not_to have_command FactoryGirl.generate :action_key }
43
+ end # describe
44
+
45
+ describe :can_invoke? do
46
+ specify { expect(instance).to respond_to(:can_invoke?).with(1).arguments }
47
+ specify { expect(instance.can_invoke? FactoryGirl.generate(:action_key).to_s).
48
+ to eq false }
49
+ end # describe
50
+
51
+ describe :invoke_command do
52
+ specify { expect(instance).to respond_to(:invoke_command).with(1).arguments }
53
+ end # describe
54
+
55
+ context "with actions defined" do
56
+ let :command do FactoryGirl.generate :action_key; end
57
+
58
+ before :each do described_class.define_action command do |session, args|; end; end
59
+
60
+ specify { expect(instance.commands).to include command.to_s.gsub('_',' ') }
61
+
62
+ specify { expect(instance).to have_action command }
63
+
64
+ describe "inheriting defined actions" do
65
+ let :descendant_class do Class.new described_class; end
66
+ let :instance do descendant_class.new request; end
67
+
68
+ specify { expect(instance).to have_action command }
69
+ end # describe
70
+ end # context
71
+
72
+ describe "empty actions" do
73
+ describe :allow_empty_action? do
74
+ specify { expect(instance).to respond_to(:allow_empty_action?).with(0).arguments }
75
+ end # describe
76
+ end # describe
77
+ end # shared examples
78
+
79
+ shared_examples_for "Mithril::Controllers::AbstractController#empty_actions" do |input|
80
+ let :arguments do instance.parse_command(input)[1]; end
81
+
82
+ before :each do
83
+ if instance.has_action? :""
84
+ instance.stub :_action do |session, arguments| arguments; end
85
+ else
86
+ described_class.send :define_action, :"" do |session, arguments| arguments; end
87
+ end # if-else
88
+ end # before each
89
+
90
+ context "disallowing empty actions" do
91
+ before :each do instance.stub :allow_empty_action? do false; end; end
92
+
93
+ specify { expect(instance.allow_empty_action?).to be false }
94
+
95
+ specify "rejects arbitrary input" do
96
+ expect(instance.can_invoke? input).to be false
97
+ end # describe
98
+ end # context
99
+
100
+ context "allowing empty actions" do
101
+ before :each do instance.stub :allow_empty_action? do true; end; end
102
+
103
+ specify { expect(instance.allow_empty_action?).to be true }
104
+
105
+ specify "accepts arbitrary input" do
106
+ expect(instance.can_invoke? input).to be true
107
+ end # specify
108
+
109
+ specify "calls invoke action on empty action" do
110
+ instance.should_receive(:invoke_action).with(:"", arguments).and_call_original
111
+ instance.invoke_command input
112
+ end # specify
113
+
114
+ specify "returns the input" do
115
+ expect(instance.invoke_command input).to eq arguments
116
+ end # specify
117
+ end # context
118
+ end # shared examples
@@ -0,0 +1,121 @@
1
+ # spec/mithril/controllers/mixins/actions_base_helper.rb
2
+
3
+ require 'mithril/controllers/mixins/actions_base'
4
+ require 'mithril/request'
5
+
6
+ shared_examples_for Mithril::Controllers::Mixins::ActionsBase do
7
+ let :command do FactoryGirl.generate :action_key; end
8
+
9
+ specify { expect(instance).not_to respond_to :"action_#{command}" }
10
+
11
+ describe "self.define_action" do
12
+ specify { expect(described_class).to respond_to(:define_action).
13
+ with(1..2).arguments.and.a_block }
14
+ end # describe
15
+
16
+ describe "self.actions" do
17
+ specify { expect(described_class).to respond_to(:actions).with(0..1).arguments }
18
+
19
+ specify { expect(described_class.actions).to be_a Hash }
20
+ end # describe
21
+
22
+ describe :request do
23
+ specify { expect(instance).to respond_to(:request).with(0).arguments }
24
+ specify { expect(instance.request).to be_a [Mithril::Request, nil] }
25
+ end # describe
26
+
27
+ describe :actions do
28
+ specify { expect(instance).to respond_to(:actions).with(0..1).arguments }
29
+ specify { expect(instance.actions).to be_a Hash }
30
+ end # describe
31
+
32
+ describe :has_action? do
33
+ let :command do FactoryGirl.generate :action_key; end
34
+
35
+ specify { expect(instance).to respond_to(:has_action?).with(1..2).arguments }
36
+ specify { expect(instance.has_action? command).to be false }
37
+ specify { expect(instance.has_action? command, true).to be false }
38
+ end # describe
39
+
40
+ describe :invoke_action do
41
+ specify { expect(instance).to respond_to(:invoke_action).with(2..3).arguments }
42
+ end # describe
43
+
44
+ context "with an action defined" do
45
+ let :command do FactoryGirl.generate :action_key; end
46
+
47
+ before :each do
48
+ described_class.define_action command do |session, arguments| arguments.join(" "); end
49
+ end # before each
50
+
51
+ specify { expect(described_class.actions).to have_key command }
52
+ specify { expect(described_class.actions true).to have_key command }
53
+
54
+ specify { expect(instance.actions).to have_key command }
55
+ specify { expect(instance.actions true).to have_key command }
56
+
57
+ specify { expect(instance).to have_action command }
58
+ specify { expect(instance).to have_action command, true }
59
+
60
+ describe :invoke_action do
61
+ let :request do defined?(super) ? super() : FactoryGirl.build(:request); end
62
+ let :arguments do %w(some args); end
63
+ let :output do arguments.join(" "); end
64
+
65
+ before :each do instance.stub :request do request; end; end
66
+
67
+ specify "calls the defined method" do
68
+ instance.should_receive(:"action_#{command}").with(request.session, arguments)
69
+ instance.invoke_action command, arguments
70
+ end # specify
71
+
72
+ specify "calls the defined method as private" do
73
+ instance.should_receive(:"action_#{command}").with(request.session, arguments)
74
+ instance.invoke_action command, arguments, true
75
+ end # specify
76
+
77
+ specify { instance.invoke_action(command, arguments).should eq output }
78
+ specify { instance.invoke_action(command, arguments, true).should eq output }
79
+ end # describe
80
+ end # context
81
+
82
+ describe "with a private action defined" do
83
+ let :command do FactoryGirl.generate :action_key; end
84
+
85
+ before :each do
86
+ described_class.define_action command, :private => true do |session, arguments|
87
+ arguments.join(" ")
88
+ end # define action
89
+ end # before each
90
+
91
+ specify { expect(described_class.actions).not_to have_key command }
92
+ specify { expect(described_class.actions true).to have_key command }
93
+
94
+ specify { expect(instance.actions).not_to have_key command }
95
+ specify { expect(instance.actions true).to have_key command }
96
+
97
+ specify { expect(instance).not_to have_action command }
98
+ specify { expect(instance).to have_action command, true }
99
+
100
+ describe :invoke_action do
101
+ let :request do defined?(super) ? super() : FactoryGirl.build(:request); end
102
+ let :arguments do %w(some args); end
103
+ let :output do arguments.join(" "); end
104
+
105
+ before :each do instance.stub :request do request; end; end
106
+
107
+ specify "calls the defined method" do
108
+ instance.should_not_receive(:"action_#{command}")
109
+ instance.invoke_action command, arguments
110
+ end # specify
111
+
112
+ specify "calls the defined method as private" do
113
+ instance.should_receive(:"action_#{command}").with(request.session, arguments)
114
+ instance.invoke_action command, arguments, true
115
+ end # specify
116
+
117
+ specify { instance.invoke_action(command, arguments).should be nil }
118
+ specify { instance.invoke_action(command, arguments, true).should eq output }
119
+ end # describe
120
+ end # describe
121
+ end # shared_examples
@@ -0,0 +1,111 @@
1
+ # spec/mithril/controllers/mixins/help_actions_helper.rb
2
+
3
+ require 'mithril/controllers/mixins/actions_base_helper'
4
+
5
+ require 'mithril/controllers/mixins/help_actions'
6
+
7
+ shared_examples_for Mithril::Controllers::Mixins::HelpActions do
8
+ it_behaves_like Mithril::Controllers::Mixins::ActionsBase
9
+
10
+ describe :help_message do
11
+ specify { expect(instance).to respond_to(:help_message).with(0).arguments }
12
+ specify { expect(instance.help_message).to be_a String }
13
+ end # describe
14
+
15
+ describe "help action" do
16
+ specify { expect(instance).to have_action :help }
17
+
18
+ context "with a help string defined" do
19
+ let :arguments do %w(); end
20
+
21
+ before :each do
22
+ instance.stub :help_message do
23
+ "You put your left foot in, you take your left foot out."
24
+ end # stub
25
+ end # before each
26
+
27
+ specify { expect(instance.invoke_action :help, arguments).
28
+ to match /put your left foot in/i }
29
+
30
+ specify { expect(instance.invoke_action :help, arguments).
31
+ to match /following commands are available/i }
32
+ end # context
33
+
34
+ describe "with no arguments" do
35
+ let :arguments do %w(); end
36
+
37
+ specify { expect(instance.invoke_action :help, arguments).
38
+ to match /following commands are available/i }
39
+ specify { expect(instance.invoke_action :help, arguments).
40
+ to match /help/i }
41
+ end # context
42
+
43
+ describe "with help" do
44
+ let :arguments do %w(help); end
45
+
46
+ specify { expect(instance.invoke_action :help, arguments).
47
+ to match /the help command/i }
48
+ end # describe
49
+ end # describe
50
+
51
+ context "with additional actions defined" do
52
+ let :action_keys do
53
+ [].tap do |ary|
54
+ 1.times do ary << FactoryGirl.generate(:action_key); end
55
+ end # tap
56
+ end # let
57
+
58
+ before :each do
59
+ action_keys.each do |key|
60
+ described_class.send :define_action, key do |session, arguments|; end
61
+ end # each
62
+ end # before each
63
+
64
+ describe "help action" do
65
+ specify "lists available commands" do
66
+ (action_keys << :help).each do |key|
67
+ command = key.to_s.gsub('_',' ')
68
+ expect(instance.invoke_action :help, %w()).to match /#{command}/
69
+ end # each
70
+ end # specify
71
+
72
+ specify "invokes the command with help" do
73
+ session = instance.request ? (instance.request.session || {}) : {}
74
+ action_keys.each do |key|
75
+ command = key.to_s.gsub('_',' ')
76
+ instance.should_receive(:"action_#{key}").with(session, %w(help))
77
+ instance.invoke_action :help, command.split(' ')
78
+ end # each
79
+ end # specify
80
+ end # describe
81
+ end # context
82
+
83
+ context "with additional commands defined" do
84
+ let :commands do
85
+ [].tap do |ary|
86
+ 1.times do ary << FactoryGirl.generate(:action_key).to_s.gsub('_', ' '); end
87
+ end # tap
88
+ end # let
89
+
90
+ before :each do
91
+ instance.stub :commands do commands; end
92
+ instance.stub :has_command? do |command| commands.include? command; end
93
+ end # before each
94
+
95
+ describe "help action" do
96
+ specify "lists available commands" do
97
+ (commands << "help").each do |command|
98
+ expect(instance.invoke_action :help, %w()).to match /#{command}/
99
+ end # each
100
+ end # specify
101
+
102
+ specify "invokes the command with help" do
103
+ session = instance.request ? (instance.request.session || {}) : {}
104
+ commands.each do |command|
105
+ instance.should_receive(:invoke_command).with("#{command} help")
106
+ instance.invoke_action :help, [command]
107
+ end # each
108
+ end # specify
109
+ end # describe
110
+ end # context
111
+ end # shared examples
@@ -0,0 +1,111 @@
1
+ # spec/mithril/controllers/proxy_controller_helper.rb
2
+
3
+ require 'mithril/controllers/abstract_controller_helper'
4
+
5
+ require 'mithril/controllers/abstract_controller'
6
+ require 'mithril/controllers/proxy_controller'
7
+
8
+ shared_examples_for Mithril::Controllers::ProxyController do
9
+ it_behaves_like Mithril::Controllers::AbstractController
10
+
11
+ let :proxy do described_class; end
12
+ let :child do Class.new Mithril::Controllers::AbstractController; end
13
+ let :proxy_instance do proxy.new request; end
14
+ let :child_instance do child.new request; end
15
+ let :proxy_action do FactoryGirl.generate :action_key; end
16
+ let :child_action do FactoryGirl.generate :action_key; end
17
+ let :proxy_command do proxy_action.to_s.gsub('_', ' '); end
18
+ let :child_command do child_action.to_s.gsub('_', ' '); end
19
+
20
+ before :each do
21
+ proxy.define_action proxy_action do |session, arguments|; "proxy command"; end
22
+ child.define_action child_action do |session, arguments|; "child command"; end
23
+ end # before each
24
+
25
+ let :session do {}; end
26
+ let :arguments do []; end
27
+
28
+ specify { expect(proxy_instance).to have_action proxy_action }
29
+ specify { expect(child_instance).to have_action child_action }
30
+ specify { expect(proxy_instance).not_to have_action child_action }
31
+
32
+ describe :allow_own_actions_while_proxied? do
33
+ specify { expect(proxy_instance).to respond_to(:allow_own_actions_while_proxied?).
34
+ with(0).arguments }
35
+ end # describe
36
+
37
+ describe :proxy do
38
+ specify { expect(proxy_instance).to respond_to(:proxy).with(0).arguments }
39
+ specify { expect(proxy_instance.proxy).to be_a [Mithril::Controllers::AbstractController, nil] }
40
+ end # describe proxy
41
+
42
+ describe :commands do
43
+ specify { expect(proxy_instance.commands).to include proxy_command }
44
+ specify { expect(proxy_instance.commands).not_to include child_command }
45
+ end # describe
46
+
47
+ describe :has_command? do
48
+ specify { expect(proxy_instance).to have_command proxy_command }
49
+ specify { expect(proxy_instance).not_to have_command child_command }
50
+ end # describe
51
+
52
+ describe :can_invoke? do
53
+ specify { expect(proxy_instance.can_invoke? proxy_command).to be true }
54
+ specify { expect(proxy_instance.can_invoke? child_command).to be false }
55
+ end # describe
56
+
57
+ describe :can_invoke_on_self? do
58
+ specify { expect(proxy_instance).to respond_to(:can_invoke_on_self?).
59
+ with(1).arguments }
60
+ specify { expect(proxy_instance.can_invoke_on_self? proxy_command).to be true }
61
+ specify { expect(proxy_instance.can_invoke_on_self? child_command).to be false }
62
+ end # describe
63
+
64
+ describe :invoke_command do
65
+ specify { expect(proxy_instance.invoke_command proxy_command).to eq "proxy command" }
66
+ end # describe
67
+
68
+ context "with a proxy subject defined" do
69
+ before :each do proxy_instance.stub :proxy do child_instance; end; end
70
+
71
+ specify { expect(proxy_instance.proxy).to be child_instance }
72
+
73
+ specify { expect(proxy_instance.commands).to include child_command }
74
+
75
+ specify { expect(proxy_instance).to have_command child_command }
76
+
77
+ specify { expect(proxy_instance.can_invoke? child_command).to be true }
78
+
79
+ specify { expect(proxy_instance.can_invoke_on_self? child_command).to be false }
80
+
81
+ specify { expect(proxy_instance.invoke_command child_command).to eq "child command" }
82
+
83
+ context "allowing own actions" do
84
+ before :each do proxy_instance.stub :allow_own_actions_while_proxied? do true; end; end
85
+
86
+ specify { expect(proxy_instance.allow_own_actions_while_proxied?).to be true }
87
+
88
+ specify { expect(proxy_instance.commands).to include proxy_command }
89
+
90
+ specify { expect(proxy_instance).to have_command proxy_command }
91
+
92
+ specify { expect(proxy_instance.can_invoke? proxy_command).to be true }
93
+
94
+ specify { expect(proxy_instance.invoke_command proxy_command).to eq "proxy command" }
95
+ end # context
96
+
97
+ context "allowing own actions" do
98
+ before :each do proxy_instance.stub :allow_own_actions_while_proxied? do false; end; end
99
+
100
+ specify { expect(proxy_instance.allow_own_actions_while_proxied?).to be false }
101
+
102
+ specify { expect(proxy_instance.commands).not_to include proxy_command }
103
+
104
+ specify { expect(proxy_instance).not_to have_command proxy_command }
105
+
106
+ specify { expect(proxy_instance.can_invoke? proxy_command).to be false }
107
+
108
+ specify { expect(proxy_instance.invoke_command proxy_command).to match /don't know how/i }
109
+ end # context
110
+ end # context
111
+ end # shared examples
@@ -0,0 +1,54 @@
1
+ # spec/mithril/mixin_helper.rb
2
+
3
+ require 'mithril/mixin'
4
+
5
+ shared_examples_for Mithril::Mixin do
6
+ let :ancestor_instance_method do FactoryGirl.generate(:action_key); end
7
+ let :ancestor_class_method do FactoryGirl.generate(:action_key); end
8
+ let :ancestor_module do
9
+ mod = Module.new
10
+ mod.send :extend, Mithril::Mixin
11
+ mod.send :define_method, ancestor_instance_method do; end
12
+ mod.const_set :ClassMethods, Module.new
13
+ mod::ClassMethods.send :define_method, ancestor_class_method do; end
14
+ mod
15
+ end # let
16
+
17
+ let :parent_instance_method do FactoryGirl.generate(:action_key); end
18
+ let :parent_class_method do FactoryGirl.generate(:action_key); end
19
+ let :parent_module do
20
+ mod = Module.new
21
+ mod.send :extend, Mithril::Mixin
22
+ mod.send :mixin, ancestor_module
23
+ mod.send :define_method, parent_instance_method do; end
24
+ mod.const_set :ClassMethods, Module.new
25
+ mod::ClassMethods.send :define_method, parent_class_method do; end
26
+ mod
27
+ end # let
28
+
29
+ context "with a direct mixin" do
30
+ before :each do described_class.send :mixin, ancestor_module; end
31
+
32
+ describe "instance methods are mixed in" do
33
+ specify { expect(instance).to respond_to ancestor_instance_method }
34
+ end # describe
35
+
36
+ describe "class method are mixed in" do
37
+ specify { expect(described_class).to respond_to ancestor_class_method }
38
+ end # describe
39
+ end # context
40
+
41
+ context "with a cascading mixin" do
42
+ before :each do described_class.send :mixin, parent_module; end
43
+
44
+ describe "instance methods are mixed in" do
45
+ specify { expect(instance).to respond_to ancestor_instance_method }
46
+ specify { expect(instance).to respond_to parent_instance_method }
47
+ end # describe
48
+
49
+ describe "class method are mixed in" do
50
+ specify { expect(described_class).to respond_to ancestor_class_method }
51
+ specify { expect(described_class).to respond_to parent_class_method }
52
+ end # describe
53
+ end # context
54
+ end # shared examples
@@ -0,0 +1,11 @@
1
+ # spec/spec_helper.rb
2
+
3
+ require 'rspec'
4
+ require 'factory_girl'
5
+
6
+ RSpec.configure do |config|
7
+ config.color_enabled = true
8
+ end # config
9
+
10
+ #=# Require Factories, Custom Matchers, &c #=#
11
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mithril-specs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Rob "Merlin" Smith
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mithril
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.2.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '2.12'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.12'
46
+ - !ruby/object:Gem::Dependency
47
+ name: factory_girl
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '4.2'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '4.2'
62
+ description: Spec helpers for the Mithril interactive text engine
63
+ email: merlin@sleepingkingstudios.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - spec/mithril/controllers/_text_controller_helper.rb
69
+ - spec/mithril/controllers/abstract_controller_helper.rb
70
+ - spec/mithril/controllers/mixins/actions_base_helper.rb
71
+ - spec/mithril/controllers/mixins/help_actions_helper.rb
72
+ - spec/mithril/controllers/proxy_controller_helper.rb
73
+ - spec/mithril/mixin_helper.rb
74
+ - spec/mithril/spec_helper.rb
75
+ - CHANGELOG.md
76
+ - README.md
77
+ homepage: http://sleepingkingstudios.com
78
+ licenses: []
79
+ post_install_message:
80
+ rdoc_options: []
81
+ require_paths:
82
+ - spec
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 1.8.24
98
+ signing_key:
99
+ specification_version: 3
100
+ summary: Mithril spec helpers
101
+ test_files: []