riveter 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -3
- data/Gemfile.lock +1 -1
- data/README.md +5 -1
- data/app/helpers/riveter.rb +2 -0
- data/app/helpers/riveter/query_filter_form_helper.rb +1 -1
- data/lib/generators/haml/command_controller/command_controller_generator.rb +1 -1
- data/lib/generators/haml/enquiry_controller/enquiry_controller_generator.rb +1 -1
- data/lib/generators/riveter/enquiry/enquiry_generator.rb +5 -0
- data/lib/generators/riveter/enum/enum_generator.rb +1 -1
- data/lib/generators/riveter/query_filter/query_filter_generator.rb +1 -1
- data/lib/riveter/booleaness_validator.rb +0 -7
- data/lib/riveter/version.rb +1 -1
- data/spec/examples/generator_examples.rb +57 -0
- data/spec/generators/haml/command_controller/command_controller_generator_spec.rb +38 -19
- data/spec/generators/haml/enquiry_controller/enquiry_controller_generator_spec.rb +38 -19
- data/spec/generators/riveter/command/command_generator_spec.rb +32 -36
- data/spec/generators/riveter/command_controller/command_controller_generator_spec.rb +51 -0
- data/spec/generators/riveter/enquiry/enquiry_generator_spec.rb +53 -0
- data/spec/generators/riveter/enquiry_controller/enquiry_controller_generator_spec.rb +51 -0
- data/spec/generators/riveter/enum/enum_generator_spec.rb +64 -0
- data/spec/generators/riveter/install/install_generator_spec.rb +6 -0
- data/spec/generators/riveter/presenter/presenter_generator_spec.rb +32 -0
- data/spec/generators/riveter/query/query_generator_spec.rb +32 -0
- data/spec/generators/riveter/query_filter/query_filter_generator_spec.rb +31 -36
- data/spec/generators/riveter/service/service_generator_spec.rb +33 -0
- data/spec/generators/riveter/worker/worker_generator_spec.rb +32 -0
- data/spec/generators/rspec/command/command_generator_spec.rb +24 -0
- data/spec/generators/rspec/command_controller/command_controller_generator_spec.rb +36 -0
- data/spec/generators/rspec/enquiry/enquiry_generator_spec.rb +24 -0
- data/spec/generators/rspec/enquiry_controller/enquiry_controller_generator_spec.rb +36 -0
- data/spec/generators/rspec/enum/enum_generator_spec.rb +24 -0
- data/spec/generators/rspec/presenter/presenter_generator_spec.rb +24 -0
- data/spec/generators/rspec/query/query_generator_spec.rb +24 -0
- data/spec/generators/rspec/query_filter/query_filter_generator_spec.rb +24 -0
- data/spec/generators/rspec/service/service_generator_spec.rb +24 -0
- data/spec/generators/rspec/worker/worker_generator_spec.rb +24 -0
- data/spec/helpers/riveter/command_form_helper_spec.rb +26 -0
- data/spec/helpers/riveter/enquiry_form_helper_spec.rb +26 -0
- data/spec/helpers/riveter/query_filter_form_helper_spec.rb +26 -0
- data/spec/riveter/booleaness_validator_spec.rb +83 -0
- data/spec/riveter/command_spec.rb +7 -2
- data/spec/spec_helper.rb +3 -17
- data/spec/support/test_class_with_attributes.rb +3 -0
- data/spec/support/test_service.rb +0 -5
- metadata +47 -2
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/enquiry/enquiry_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::EnquiryGenerator, :type => :generator do
|
5
|
+
before do
|
6
|
+
FileUtils.mkdir_p(file('config/locales'))
|
7
|
+
File.open(file('config/routes.rb'), 'w') {|f| f.write "TestApp::Application.routes.draw do\nend\n" }
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should run all tasks in the generator" do
|
11
|
+
gen = generator %w(foo_bar)
|
12
|
+
expect(gen).to receive(:create_enquiry_file)
|
13
|
+
expect(gen).to receive(:create_module_file)
|
14
|
+
|
15
|
+
# hooks
|
16
|
+
expect(gen).to receive(:_invoke_from_option_enquiry_controller)
|
17
|
+
expect(gen).to receive(:_invoke_from_option_query)
|
18
|
+
expect(gen).to receive(:_invoke_from_option_query_filter)
|
19
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
20
|
+
|
21
|
+
capture(:stdout) { gen.invoke_all }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "the generated files" do
|
25
|
+
describe "the enquiry" do
|
26
|
+
describe "with defaults" do
|
27
|
+
before do
|
28
|
+
run_generator %w(foo_bar)
|
29
|
+
end
|
30
|
+
|
31
|
+
subject { file('app/enquiries/foo_bar_enquiry.rb') }
|
32
|
+
|
33
|
+
it { should exist }
|
34
|
+
it { should contain('class FooBarEnquiry') }
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "with attributes" do
|
38
|
+
before do
|
39
|
+
run_generator %w(foo_bar name:string:required active:boolean other)
|
40
|
+
end
|
41
|
+
|
42
|
+
subject { file('app/enquiries/foo_bar_enquiry.rb') }
|
43
|
+
|
44
|
+
it { should exist }
|
45
|
+
it { should contain('class FooBarEnquiry') }
|
46
|
+
it { should contain('filter_with FooBarQueryFilter') }
|
47
|
+
it { should contain('query_with FooBarQuery') }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it_should_behave_like 'a generator with a module', 'app/enquiries'
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/enquiry_controller/enquiry_controller_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::EnquiryControllerGenerator, :type => :generator do
|
5
|
+
before do
|
6
|
+
FileUtils.mkdir_p(file('config'))
|
7
|
+
File.open(file('config/routes.rb'), 'w') {|f| f.write "TestApp::Application.routes.draw do\nend\n" }
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should run all tasks in the generator" do
|
11
|
+
gen = generator %w(foo_bar)
|
12
|
+
expect(gen).to receive(:create_enquiry_controller_file)
|
13
|
+
expect(gen).to receive(:create_module_file)
|
14
|
+
expect(gen).to receive(:add_enquiry_route)
|
15
|
+
|
16
|
+
# hooks
|
17
|
+
expect(gen).to receive(:_invoke_from_option_template_engine)
|
18
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
19
|
+
|
20
|
+
capture(:stdout) { gen.invoke_all }
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "the generated files" do
|
24
|
+
describe "the controller" do
|
25
|
+
describe "with defaults" do
|
26
|
+
before do
|
27
|
+
run_generator %w(foo_bar)
|
28
|
+
end
|
29
|
+
|
30
|
+
subject { file('app/controllers/foo_bar_enquiry_controller.rb') }
|
31
|
+
|
32
|
+
it { should exist }
|
33
|
+
it { should contain('enquiry_controller_for FooBarEnquiry') }
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "with action names" do
|
37
|
+
before do
|
38
|
+
run_generator %w(foo_bar showme)
|
39
|
+
end
|
40
|
+
|
41
|
+
subject { file('app/controllers/foo_bar_enquiry_controller.rb') }
|
42
|
+
|
43
|
+
it { should exist }
|
44
|
+
it { should contain('enquiry_controller_for FooBarEnquiry, :action => :showme') }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it_should_behave_like 'a generator with a module', 'app/controllers'
|
49
|
+
it_should_behave_like 'a generator with output to routes', 'enquiry :foo_bar'
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/enum/enum_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::EnumGenerator, :type => :generator do
|
5
|
+
before do
|
6
|
+
FileUtils.mkdir_p(file('config/locales'))
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should run all tasks in the generator" do
|
10
|
+
gen = generator %w(foo_bar)
|
11
|
+
expect(gen).to receive(:create_enum_file)
|
12
|
+
expect(gen).to receive(:create_module_file)
|
13
|
+
expect(gen).to receive(:create_locale_file)
|
14
|
+
|
15
|
+
# hooks
|
16
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
17
|
+
|
18
|
+
capture(:stdout) { gen.invoke_all }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "the generated files" do
|
22
|
+
describe "the enum" do
|
23
|
+
describe "with defaults" do
|
24
|
+
before do
|
25
|
+
run_generator %w(foo_bar)
|
26
|
+
end
|
27
|
+
|
28
|
+
subject { file('app/enums/foo_bar_enum.rb') }
|
29
|
+
|
30
|
+
it { should exist }
|
31
|
+
it { should contain('module FooBarEnum') }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "with members (implied as integers)" do
|
35
|
+
before do
|
36
|
+
run_generator %w(foo_bar baz qux)
|
37
|
+
end
|
38
|
+
|
39
|
+
subject { file('app/enums/foo_bar_enum.rb') }
|
40
|
+
|
41
|
+
it { should exist }
|
42
|
+
it { should contain('module FooBarEnum') }
|
43
|
+
it { should contain('Baz = 1') }
|
44
|
+
it { should contain('Qux = 2') }
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "with members and values" do
|
48
|
+
before do
|
49
|
+
run_generator %w(foo_bar baz:10 qux:20)
|
50
|
+
end
|
51
|
+
|
52
|
+
subject { file('app/enums/foo_bar_enum.rb') }
|
53
|
+
|
54
|
+
it { should exist }
|
55
|
+
it { should contain('module FooBarEnum') }
|
56
|
+
it { should contain('Baz = 10') }
|
57
|
+
it { should contain('Qux = 20') }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
it_should_behave_like 'a generator with a module', 'app/enums'
|
62
|
+
it_should_behave_like 'a generator with locale file output', 'enums'
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/presenter/presenter_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::PresenterGenerator, :type => :generator do
|
5
|
+
it "should run all tasks in the generator" do
|
6
|
+
gen = generator %w(foo_bar)
|
7
|
+
expect(gen).to receive(:create_presenter_file)
|
8
|
+
expect(gen).to receive(:create_module_file)
|
9
|
+
|
10
|
+
# hooks
|
11
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
12
|
+
|
13
|
+
capture(:stdout) { gen.invoke_all }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "the generated files" do
|
17
|
+
describe "the presenter" do
|
18
|
+
describe "with defaults" do
|
19
|
+
before do
|
20
|
+
run_generator %w(foo_bar)
|
21
|
+
end
|
22
|
+
|
23
|
+
subject { file('app/presenters/foo_bar_presenter.rb') }
|
24
|
+
|
25
|
+
it { should exist }
|
26
|
+
it { should contain('class FooBarPresenter') }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it_should_behave_like 'a generator with a module', 'app/presenters'
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/query/query_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::QueryGenerator, :type => :generator do
|
5
|
+
it "should run all tasks in the generator" do
|
6
|
+
gen = generator %w(foo_bar)
|
7
|
+
expect(gen).to receive(:create_query_file)
|
8
|
+
expect(gen).to receive(:create_module_file)
|
9
|
+
|
10
|
+
# hooks
|
11
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
12
|
+
|
13
|
+
capture(:stdout) { gen.invoke_all }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "the generated files" do
|
17
|
+
describe "the query" do
|
18
|
+
describe "with defaults" do
|
19
|
+
before do
|
20
|
+
run_generator %w(foo_bar)
|
21
|
+
end
|
22
|
+
|
23
|
+
subject { file('app/queries/foo_bar_query.rb') }
|
24
|
+
|
25
|
+
it { should exist }
|
26
|
+
it { should contain('class FooBarQuery') }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it_should_behave_like 'a generator with a module', 'app/queries'
|
31
|
+
end
|
32
|
+
end
|
@@ -1,58 +1,53 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'generators/riveter/query_filter/query_filter_generator'
|
3
|
-
require 'fileutils'
|
4
3
|
|
5
4
|
describe Riveter::Generators::QueryFilterGenerator, :type => :generator do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
capture(:stdout) { gen.invoke_all }
|
5
|
+
before do
|
6
|
+
FileUtils.mkdir_p(file('config/locales'))
|
7
|
+
File.open(file('config/routes.rb'), 'w') {|f| f.write "TestApp::Application.routes.draw do\nend\n" }
|
10
8
|
end
|
11
9
|
|
12
|
-
it "
|
13
|
-
gen = generator %w(
|
10
|
+
it "should run all tasks in the generator" do
|
11
|
+
gen = generator %w(foo_bar)
|
14
12
|
expect(gen).to receive(:create_query_filter_file)
|
15
|
-
capture(:stdout) { gen.invoke_all }
|
16
|
-
end
|
17
|
-
|
18
|
-
it "creates a module file" do
|
19
|
-
gen = generator %w(test_ns/active_items name:string:required active:boolean other)
|
20
13
|
expect(gen).to receive(:create_module_file)
|
21
|
-
capture(:stdout) { gen.invoke_all }
|
22
|
-
end
|
23
|
-
|
24
|
-
it "creates a locale file if it doesn't exist" do
|
25
|
-
gen = generator %w(active_items)
|
26
14
|
expect(gen).to receive(:create_locale_file)
|
27
|
-
capture(:stdout) { gen.invoke_all }
|
28
|
-
end
|
29
15
|
|
30
|
-
|
31
|
-
|
16
|
+
# hooks
|
17
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
18
|
+
|
19
|
+
capture(:stdout) { gen.invoke_all }
|
32
20
|
end
|
33
21
|
|
34
22
|
describe "the generated files" do
|
35
23
|
describe "the query filter" do
|
36
|
-
|
37
|
-
|
38
|
-
|
24
|
+
describe "with defaults" do
|
25
|
+
before do
|
26
|
+
run_generator %w(foo_bar)
|
27
|
+
end
|
39
28
|
|
40
|
-
|
29
|
+
subject { file('app/query_filters/foo_bar_query_filter.rb') }
|
41
30
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
describe "the commands.en.yml locale" do
|
46
|
-
before do
|
47
|
-
FileUtils.mkdir_p(file('config/locales'))
|
48
|
-
File.open(file('config/locales/query_filters.en.yml'), 'w') {|f| f.write 'empty' }
|
49
|
-
run_generator %w(active_items name:string:required active:boolean other)
|
31
|
+
it { should exist }
|
32
|
+
it { should contain('class FooBarQueryFilter') }
|
50
33
|
end
|
51
34
|
|
52
|
-
|
35
|
+
describe "with attributes" do
|
36
|
+
before do
|
37
|
+
run_generator %w(foo_bar name:string:required active:boolean other)
|
38
|
+
end
|
39
|
+
|
40
|
+
subject { file('app/query_filters/foo_bar_query_filter.rb') }
|
53
41
|
|
54
|
-
|
55
|
-
|
42
|
+
it { should exist }
|
43
|
+
it { should contain('class FooBarQueryFilter') }
|
44
|
+
it { should contain('attr_string :name, :required => true') }
|
45
|
+
it { should contain('attr_boolean :active') }
|
46
|
+
it { should contain('attr_string :other') }
|
47
|
+
end
|
56
48
|
end
|
49
|
+
|
50
|
+
it_should_behave_like 'a generator with a module', 'app/query_filters'
|
51
|
+
it_should_behave_like 'a generator with locale file output', 'query_filters'
|
57
52
|
end
|
58
53
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/service/service_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::ServiceGenerator, :type => :generator do
|
5
|
+
it "should run all tasks in the generator" do
|
6
|
+
gen = generator %w(foo_bar)
|
7
|
+
expect(gen).to receive(:create_service_file)
|
8
|
+
expect(gen).to receive(:create_module_file)
|
9
|
+
|
10
|
+
# hooks
|
11
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
12
|
+
|
13
|
+
capture(:stdout) { gen.invoke_all }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "the generated files" do
|
17
|
+
describe "the service" do
|
18
|
+
describe "with defaults" do
|
19
|
+
before do
|
20
|
+
run_generator %w(foo_bar)
|
21
|
+
end
|
22
|
+
|
23
|
+
subject { file('app/services/foo_bar_service.rb') }
|
24
|
+
|
25
|
+
it { should exist }
|
26
|
+
it { should contain('class FooBarService') }
|
27
|
+
it { should contain('register_as_handler_for FooBarCommand') }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it_should_behave_like 'a generator with a module', 'app/services'
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/riveter/worker/worker_generator'
|
3
|
+
|
4
|
+
describe Riveter::Generators::WorkerGenerator, :type => :generator do
|
5
|
+
it "should run all tasks in the generator" do
|
6
|
+
gen = generator %w(foo_bar)
|
7
|
+
expect(gen).to receive(:create_worker_file)
|
8
|
+
expect(gen).to receive(:create_module_file)
|
9
|
+
|
10
|
+
# hooks
|
11
|
+
expect(gen).to receive(:_invoke_from_option_test_framework)
|
12
|
+
|
13
|
+
capture(:stdout) { gen.invoke_all }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "the generated files" do
|
17
|
+
describe "the worker" do
|
18
|
+
describe "with defaults" do
|
19
|
+
before do
|
20
|
+
run_generator %w(foo_bar)
|
21
|
+
end
|
22
|
+
|
23
|
+
subject { file('app/workers/foo_bar_worker.rb') }
|
24
|
+
|
25
|
+
it { should exist }
|
26
|
+
it { should contain('class FooBarWorker') }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it_should_behave_like 'a generator with a module', 'app/workers'
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/rspec/command/command_generator'
|
3
|
+
|
4
|
+
describe Rspec::Generators::CommandGenerator, :type => :generator do
|
5
|
+
it "should run all tasks in the generator" do
|
6
|
+
gen = generator %w(foo_bar)
|
7
|
+
expect(gen).to receive(:create_command_spec)
|
8
|
+
capture(:stdout) { gen.invoke_all }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "the generated files" do
|
12
|
+
describe "the spec" do
|
13
|
+
describe "with defaults" do
|
14
|
+
before do
|
15
|
+
run_generator %w(foo_bar)
|
16
|
+
end
|
17
|
+
|
18
|
+
subject { file('spec/commands/foo_bar_command_spec.rb') }
|
19
|
+
|
20
|
+
it { should exist }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generators/rspec/command_controller/command_controller_generator'
|
3
|
+
|
4
|
+
describe Rspec::Generators::CommandControllerGenerator, :type => :generator do
|
5
|
+
it "should run all tasks in the generator" do
|
6
|
+
gen = generator %w(foo_bar)
|
7
|
+
expect(gen).to receive(:create_command_controller_spec)
|
8
|
+
capture(:stdout) { gen.invoke_all }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "the generated files" do
|
12
|
+
describe "the spec" do
|
13
|
+
describe "with defaults" do
|
14
|
+
before do
|
15
|
+
run_generator %w(foo_bar)
|
16
|
+
end
|
17
|
+
|
18
|
+
subject { file('spec/controllers/foo_bar_command_controller_spec.rb') }
|
19
|
+
|
20
|
+
it { should exist }
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "with action names" do
|
24
|
+
before do
|
25
|
+
run_generator %w(foo_bar baz qux)
|
26
|
+
end
|
27
|
+
|
28
|
+
subject { file('spec/controllers/foo_bar_command_controller_spec.rb') }
|
29
|
+
|
30
|
+
it { should exist }
|
31
|
+
it { should contain("GET 'baz'") }
|
32
|
+
it { should contain("POST 'qux'") }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|