neo-rails 0.2.0 → 0.2.1
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.
- checksums.yaml +7 -0
- data/lib/generators/mock/mock_generator.rb +19 -0
- data/lib/generators/mock/templates/mock_template.rb +24 -0
- data/lib/generators/presenter/presenter_generator.rb +39 -0
- data/lib/generators/presenter/templates/presenter_template.rb +7 -0
- data/lib/generators/presenter/templates/presenter_test_template.rb +9 -0
- data/lib/neo/rails/exposure.rb +3 -3
- data/lib/neo/rails/version.rb +1 -1
- data/neo-rails.gemspec +13 -1
- data/test/generator/mock_generator_test.rb +19 -0
- data/test/generator/presenter_generator_test.rb +30 -0
- metadata +26 -33
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 55b3133a849d0a61eec0778df76c617a0a2da5a8
|
4
|
+
data.tar.gz: 71c9ceff6849150b20c8d45c91a379970db26266
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 337f498564647661610f3bb5521aede869e96956a91966ca9d775cbc4d9cb0a2d376428958037238d9782490731e81ce7c8b1637bc2468dcd9e495ccaa4dad4b
|
7
|
+
data.tar.gz: 7407b070812b87df0b41d7f27e36456e6fa50a2b9b247342d7ea9f2bb752f4592733ed6292d57bbe6f4920c33c7db3b5158f76dda25d46e141d7731150df2cc2
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class MockGenerator < Rails::Generators::NamedBase
|
4
|
+
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
def create_mock_file
|
8
|
+
path = "app/mocks/#{file_name}_mock.rb"
|
9
|
+
if FileTest.exists?path
|
10
|
+
raise FileExistError, "This filename ist used by another mock:#{path}"
|
11
|
+
end
|
12
|
+
|
13
|
+
copy_file "mock_template.rb", path
|
14
|
+
gsub_file path, '-MockName-' , "#{class_name}"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
class FileExistError < StandardError; end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class -MockName-Mock < Mock
|
2
|
+
|
3
|
+
# EXAMPLE:
|
4
|
+
# def age
|
5
|
+
# mock.tagged?(:old) ? 78 : 23
|
6
|
+
# end
|
7
|
+
#
|
8
|
+
# def name
|
9
|
+
# "Uncle bob"
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# def logged_in?
|
13
|
+
# true
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# def sexy?
|
17
|
+
# mock.tagged?(:sexy)
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# def car
|
21
|
+
# mock.option(:car)
|
22
|
+
# end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class PresenterGenerator < Rails::Generators::NamedBase
|
4
|
+
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
def create_presenter_file
|
8
|
+
path = "app/presenters/#{file_name}_presenter.rb"
|
9
|
+
if FileTest.exists?path
|
10
|
+
raise FileExistError, "This filename ist used by another presenter:#{path}"
|
11
|
+
end
|
12
|
+
|
13
|
+
copy_file "presenter_template.rb", path
|
14
|
+
replace_class_name path
|
15
|
+
replace_singular_name path
|
16
|
+
end
|
17
|
+
|
18
|
+
def create_presenter_test_file
|
19
|
+
path = "test/presenters/#{file_name}_presenter_test.rb"
|
20
|
+
if FileTest.exists?path
|
21
|
+
raise FileExistError, "This filename ist used by another PresenterTest:#{path}"
|
22
|
+
end
|
23
|
+
|
24
|
+
copy_file "presenter_test_template.rb", path
|
25
|
+
replace_class_name path
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
def replace_class_name path
|
30
|
+
gsub_file path, '-classname-' , "#{class_name}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def replace_singular_name path
|
34
|
+
gsub_file path, 'singular_name' , "#{plural_name.singularize}"
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
class FileExistError < StandardError; end
|
data/lib/neo/rails/exposure.rb
CHANGED
@@ -24,9 +24,9 @@ module Neo
|
|
24
24
|
self.exposure_names.merge exposure_names
|
25
25
|
|
26
26
|
# Define a helper method for each exposure
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
# see Rails: /actionpack/lib/abstract_controller/helpers.rb
|
28
|
+
helper do
|
29
|
+
exposure_names.each do |exposure_name|
|
30
30
|
define_method exposure_name do
|
31
31
|
controller.exposures[exposure_name]
|
32
32
|
end
|
data/lib/neo/rails/version.rb
CHANGED
data/neo-rails.gemspec
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require File.expand_path('../lib/neo/rails/version', __FILE__)
|
3
3
|
|
4
|
+
rails_version = ENV['RAILS_VERSION']
|
5
|
+
|
4
6
|
Gem::Specification.new do |gem|
|
5
7
|
gem.authors = ["Jonas Thiel", "Peter Suschlik"]
|
6
8
|
gem.email = ["jt@neopoly.de", "ps@neopoly.de"]
|
@@ -15,8 +17,18 @@ Gem::Specification.new do |gem|
|
|
15
17
|
gem.require_paths = ["lib"]
|
16
18
|
gem.version = Neo::Rails::VERSION
|
17
19
|
|
20
|
+
case rails_version
|
21
|
+
when '4.0'
|
22
|
+
gem.add_development_dependency "minitest"
|
23
|
+
when '3.2'
|
24
|
+
gem.add_development_dependency "minitest", '~> 4.7'
|
25
|
+
when NilClass
|
26
|
+
abort "Missing env RAILS_VERSION"
|
27
|
+
else
|
28
|
+
abort "Rails version #{rails_version.inspect} not supported"
|
29
|
+
end
|
30
|
+
|
18
31
|
gem.add_development_dependency "rake"
|
19
|
-
gem.add_development_dependency "minitest"
|
20
32
|
gem.add_development_dependency "rack-test"
|
21
33
|
gem.add_development_dependency "simplecov"
|
22
34
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'rails/generators'
|
3
|
+
require 'generators/mock/mock_generator'
|
4
|
+
|
5
|
+
class MockGeneratorTest < Rails::Generators::TestCase
|
6
|
+
tests MockGenerator
|
7
|
+
destination File.expand_path("../tmp", File.dirname(__FILE__))
|
8
|
+
setup :prepare_destination
|
9
|
+
|
10
|
+
test "create mock" do
|
11
|
+
run_generator %w(test)
|
12
|
+
|
13
|
+
assert_file "app/mocks/test_mock.rb" do |mock|
|
14
|
+
assert_match(/class TestMock < Mock/, mock)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'rails/generators'
|
3
|
+
require 'generators/presenter/presenter_generator'
|
4
|
+
|
5
|
+
class PresenterGeneratorTest < Rails::Generators::TestCase
|
6
|
+
tests PresenterGenerator
|
7
|
+
destination File.expand_path("../tmp", File.dirname(__FILE__))
|
8
|
+
setup :prepare_destination
|
9
|
+
|
10
|
+
test "create presenter" do
|
11
|
+
run_generator %w(test)
|
12
|
+
|
13
|
+
assert_file "app/presenters/test_presenter.rb" do |presenter|
|
14
|
+
assert_match(/class TestPresenter < Presenter/, presenter)
|
15
|
+
assert_match(/def initialize\(test\)/, presenter)
|
16
|
+
assert_match(/@test = test/, presenter)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
test "create presenter test" do
|
22
|
+
run_generator %w(test)
|
23
|
+
|
24
|
+
assert_file "test/presenters/test_presenter_test.rb" do |presenter_test|
|
25
|
+
assert_match(/#require 'test_helper'/, presenter_test)
|
26
|
+
assert_match(/class TestPresenterTest < ActiveSupport::TestCase/, presenter_test)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jonas Thiel
|
@@ -10,70 +9,62 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-25 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
15
|
+
name: minitest
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '0'
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
|
-
name:
|
29
|
+
name: rake
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '0'
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '0'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: rack-test
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - '>='
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '0'
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - '>='
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: simplecov
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - '>='
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '0'
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - '>='
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '0'
|
79
70
|
description: Some Rails helpers
|
@@ -95,6 +86,11 @@ files:
|
|
95
86
|
- lib/assets/javascripts/neo/rails/scenarios/render_scenarios_list.js
|
96
87
|
- lib/assets/stylesheets/neo-rails.css
|
97
88
|
- lib/assets/stylesheets/neo/rails/scenarios/render_scenarios_list.css.sass
|
89
|
+
- lib/generators/mock/mock_generator.rb
|
90
|
+
- lib/generators/mock/templates/mock_template.rb
|
91
|
+
- lib/generators/presenter/presenter_generator.rb
|
92
|
+
- lib/generators/presenter/templates/presenter_template.rb
|
93
|
+
- lib/generators/presenter/templates/presenter_test_template.rb
|
98
94
|
- lib/neo-rails.rb
|
99
95
|
- lib/neo/rails.rb
|
100
96
|
- lib/neo/rails/engine.rb
|
@@ -115,43 +111,40 @@ files:
|
|
115
111
|
- test/exposure_test.rb
|
116
112
|
- test/fixtures/exposure/exposures_test.rb
|
117
113
|
- test/fixtures/views/exposes_via_value_with_template.html.erb
|
114
|
+
- test/generator/mock_generator_test.rb
|
115
|
+
- test/generator/presenter_generator_test.rb
|
118
116
|
- test/helper.rb
|
119
117
|
- test/mock_test.rb
|
120
118
|
- test/presenter_test.rb
|
121
119
|
homepage: ''
|
122
120
|
licenses: []
|
121
|
+
metadata: {}
|
123
122
|
post_install_message:
|
124
123
|
rdoc_options: []
|
125
124
|
require_paths:
|
126
125
|
- lib
|
127
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
127
|
requirements:
|
130
|
-
- -
|
128
|
+
- - '>='
|
131
129
|
- !ruby/object:Gem::Version
|
132
130
|
version: '0'
|
133
|
-
segments:
|
134
|
-
- 0
|
135
|
-
hash: 4337019360723826631
|
136
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
132
|
requirements:
|
139
|
-
- -
|
133
|
+
- - '>='
|
140
134
|
- !ruby/object:Gem::Version
|
141
135
|
version: '0'
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
hash: 4337019360723826631
|
145
136
|
requirements: []
|
146
137
|
rubyforge_project:
|
147
|
-
rubygems_version:
|
138
|
+
rubygems_version: 2.0.3
|
148
139
|
signing_key:
|
149
|
-
specification_version:
|
140
|
+
specification_version: 4
|
150
141
|
summary: Rails mocks, presenters, exposure and scenarios
|
151
142
|
test_files:
|
152
143
|
- test/exposure_test.rb
|
153
144
|
- test/fixtures/exposure/exposures_test.rb
|
154
145
|
- test/fixtures/views/exposes_via_value_with_template.html.erb
|
146
|
+
- test/generator/mock_generator_test.rb
|
147
|
+
- test/generator/presenter_generator_test.rb
|
155
148
|
- test/helper.rb
|
156
149
|
- test/mock_test.rb
|
157
150
|
- test/presenter_test.rb
|