annotate 2.6.3 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,127 @@
1
+ module AnnotateModels
2
+ # This module provides module method to get file paths.
3
+ module FilePatterns
4
+ # Controller files
5
+ CONTROLLER_DIR = File.join('app', 'controllers')
6
+
7
+ # Active admin registry files
8
+ ACTIVEADMIN_DIR = File.join('app', 'admin')
9
+
10
+ # Helper files
11
+ HELPER_DIR = File.join('app', 'helpers')
12
+
13
+ # File.join for windows reverse bar compat?
14
+ # I dont use windows, can`t test
15
+ UNIT_TEST_DIR = File.join('test', 'unit')
16
+ MODEL_TEST_DIR = File.join('test', 'models') # since rails 4.0
17
+ SPEC_MODEL_DIR = File.join('spec', 'models')
18
+
19
+ FIXTURE_TEST_DIR = File.join('test', 'fixtures')
20
+ FIXTURE_SPEC_DIR = File.join('spec', 'fixtures')
21
+
22
+ # Other test files
23
+ CONTROLLER_TEST_DIR = File.join('test', 'controllers')
24
+ CONTROLLER_SPEC_DIR = File.join('spec', 'controllers')
25
+ REQUEST_SPEC_DIR = File.join('spec', 'requests')
26
+ ROUTING_SPEC_DIR = File.join('spec', 'routing')
27
+
28
+ # Object Daddy http://github.com/flogic/object_daddy/tree/master
29
+ EXEMPLARS_TEST_DIR = File.join('test', 'exemplars')
30
+ EXEMPLARS_SPEC_DIR = File.join('spec', 'exemplars')
31
+
32
+ # Machinist http://github.com/notahat/machinist
33
+ BLUEPRINTS_TEST_DIR = File.join('test', 'blueprints')
34
+ BLUEPRINTS_SPEC_DIR = File.join('spec', 'blueprints')
35
+
36
+ # Factory Bot https://github.com/thoughtbot/factory_bot
37
+ FACTORY_BOT_TEST_DIR = File.join('test', 'factories')
38
+ FACTORY_BOT_SPEC_DIR = File.join('spec', 'factories')
39
+
40
+ # Fabrication https://github.com/paulelliott/fabrication.git
41
+ FABRICATORS_TEST_DIR = File.join('test', 'fabricators')
42
+ FABRICATORS_SPEC_DIR = File.join('spec', 'fabricators')
43
+
44
+ # Serializers https://github.com/rails-api/active_model_serializers
45
+ SERIALIZERS_DIR = File.join('app', 'serializers')
46
+ SERIALIZERS_TEST_DIR = File.join('test', 'serializers')
47
+ SERIALIZERS_SPEC_DIR = File.join('spec', 'serializers')
48
+
49
+ class << self
50
+ def generate(root_directory, pattern_type, options)
51
+ case pattern_type
52
+ when 'test' then test_files(root_directory)
53
+ when 'fixture' then fixture_files(root_directory)
54
+ when 'scaffold' then scaffold_files(root_directory)
55
+ when 'factory' then factory_files(root_directory)
56
+ when 'serializer' then serialize_files(root_directory)
57
+ when 'additional_file_patterns'
58
+ [options[:additional_file_patterns] || []].flatten
59
+ when 'controller'
60
+ [File.join(root_directory, CONTROLLER_DIR, '%PLURALIZED_MODEL_NAME%_controller.rb')]
61
+ when 'admin'
62
+ [
63
+ File.join(root_directory, ACTIVEADMIN_DIR, '%MODEL_NAME%.rb'),
64
+ File.join(root_directory, ACTIVEADMIN_DIR, '%PLURALIZED_MODEL_NAME%.rb')
65
+ ]
66
+ when 'helper'
67
+ [File.join(root_directory, HELPER_DIR, '%PLURALIZED_MODEL_NAME%_helper.rb')]
68
+ else
69
+ []
70
+ end
71
+ end
72
+
73
+ private
74
+
75
+ def test_files(root_directory)
76
+ [
77
+ File.join(root_directory, UNIT_TEST_DIR, '%MODEL_NAME%_test.rb'),
78
+ File.join(root_directory, MODEL_TEST_DIR, '%MODEL_NAME%_test.rb'),
79
+ File.join(root_directory, SPEC_MODEL_DIR, '%MODEL_NAME%_spec.rb')
80
+ ]
81
+ end
82
+
83
+ def fixture_files(root_directory)
84
+ [
85
+ File.join(root_directory, FIXTURE_TEST_DIR, '%TABLE_NAME%.yml'),
86
+ File.join(root_directory, FIXTURE_SPEC_DIR, '%TABLE_NAME%.yml'),
87
+ File.join(root_directory, FIXTURE_TEST_DIR, '%PLURALIZED_MODEL_NAME%.yml'),
88
+ File.join(root_directory, FIXTURE_SPEC_DIR, '%PLURALIZED_MODEL_NAME%.yml')
89
+ ]
90
+ end
91
+
92
+ def scaffold_files(root_directory)
93
+ [
94
+ File.join(root_directory, CONTROLLER_TEST_DIR, '%PLURALIZED_MODEL_NAME%_controller_test.rb'),
95
+ File.join(root_directory, CONTROLLER_SPEC_DIR, '%PLURALIZED_MODEL_NAME%_controller_spec.rb'),
96
+ File.join(root_directory, REQUEST_SPEC_DIR, '%PLURALIZED_MODEL_NAME%_spec.rb'),
97
+ File.join(root_directory, ROUTING_SPEC_DIR, '%PLURALIZED_MODEL_NAME%_routing_spec.rb')
98
+ ]
99
+ end
100
+
101
+ def factory_files(root_directory)
102
+ [
103
+ File.join(root_directory, EXEMPLARS_TEST_DIR, '%MODEL_NAME%_exemplar.rb'),
104
+ File.join(root_directory, EXEMPLARS_SPEC_DIR, '%MODEL_NAME%_exemplar.rb'),
105
+ File.join(root_directory, BLUEPRINTS_TEST_DIR, '%MODEL_NAME%_blueprint.rb'),
106
+ File.join(root_directory, BLUEPRINTS_SPEC_DIR, '%MODEL_NAME%_blueprint.rb'),
107
+ File.join(root_directory, FACTORY_BOT_TEST_DIR, '%MODEL_NAME%_factory.rb'), # (old style)
108
+ File.join(root_directory, FACTORY_BOT_SPEC_DIR, '%MODEL_NAME%_factory.rb'), # (old style)
109
+ File.join(root_directory, FACTORY_BOT_TEST_DIR, '%TABLE_NAME%.rb'), # (new style)
110
+ File.join(root_directory, FACTORY_BOT_SPEC_DIR, '%TABLE_NAME%.rb'), # (new style)
111
+ File.join(root_directory, FACTORY_BOT_TEST_DIR, '%PLURALIZED_MODEL_NAME%.rb'), # (new style)
112
+ File.join(root_directory, FACTORY_BOT_SPEC_DIR, '%PLURALIZED_MODEL_NAME%.rb'), # (new style)
113
+ File.join(root_directory, FABRICATORS_TEST_DIR, '%MODEL_NAME%_fabricator.rb'),
114
+ File.join(root_directory, FABRICATORS_SPEC_DIR, '%MODEL_NAME%_fabricator.rb')
115
+ ]
116
+ end
117
+
118
+ def serialize_files(root_directory)
119
+ [
120
+ File.join(root_directory, SERIALIZERS_DIR, '%MODEL_NAME%_serializer.rb'),
121
+ File.join(root_directory, SERIALIZERS_TEST_DIR, '%MODEL_NAME%_serializer_test.rb'),
122
+ File.join(root_directory, SERIALIZERS_SPEC_DIR, '%MODEL_NAME%_serializer_spec.rb')
123
+ ]
124
+ end
125
+ end
126
+ end
127
+ end