rdm 0.4.17 → 0.4.18
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 +4 -4
- data/Gemfile.lock +1 -8
- data/bin/rdm +10 -10
- data/example/.rdm/templates/configs/<%=config_path%> +2 -0
- data/example/.rdm/templates/configs/<%=role_config_path%> +2 -0
- data/example/Rdm.packages +17 -1
- data/example/configs/app/default.yml +2 -0
- data/example/configs/app/production.yml +2 -0
- data/example/configs/database/default.yml +3 -0
- data/example/env_files/development.env +3 -0
- data/example/env_files/production.env +5 -0
- data/example/env_files/test.env +3 -0
- data/example/infrastructure/repository/Package.rb +1 -0
- data/lib/rdm.rb +7 -14
- data/lib/rdm/cli/config.rb +31 -0
- data/lib/rdm/config.rb +11 -0
- data/lib/rdm/config_locals.rb +11 -0
- data/lib/rdm/config_manager.rb +68 -0
- data/lib/rdm/config_scope.rb +23 -0
- data/lib/rdm/errors.rb +0 -3
- data/lib/rdm/gen/config.rb +59 -0
- data/lib/rdm/gen/init.rb +4 -0
- data/lib/rdm/package.rb +9 -18
- data/lib/rdm/package_importer.rb +17 -3
- data/lib/rdm/package_parser.rb +0 -1
- data/lib/rdm/packages/compiler_service.rb +7 -1
- data/lib/rdm/settings.rb +21 -10
- data/lib/rdm/source.rb +18 -1
- data/lib/rdm/source_parser.rb +45 -2
- data/lib/rdm/spec_runner/runner.rb +2 -2
- data/lib/rdm/templates/configs/<%=config_path%> +2 -0
- data/lib/rdm/templates/configs/<%=role_config_path%> +2 -0
- data/lib/rdm/templates/init/Rdm.packages +12 -0
- data/lib/rdm/templates/init/env_files/development.env +3 -0
- data/lib/rdm/templates/init/env_files/production.env +3 -0
- data/lib/rdm/templates/init/env_files/test.env +3 -0
- data/lib/rdm/version.rb +1 -1
- data/rdm.gemspec +0 -3
- data/spec/fixtures/SampleSource.rb +4 -2
- data/spec/fixtures/config.yml +2 -0
- data/spec/rdm/cli/gen_package_spec.rb +2 -0
- data/spec/rdm/config_manager_spec.rb +136 -0
- data/spec/rdm/gen/config_spec.rb +31 -0
- data/spec/rdm/gen/init_spec.rb +12 -0
- data/spec/rdm/gen/package_spec.rb +0 -1
- data/spec/rdm/package_importer_spec.rb +2 -34
- data/spec/rdm/rdm_spec.rb +1 -1
- data/spec/rdm/source_parser_spec.rb +59 -0
- data/spec/spec_helper.rb +0 -1
- metadata +27 -63
- data/example/config/app.yml +0 -6
- data/example/infrastructure/repository/fixture.txt +0 -1
- data/lib/rdm/utils/ostruct_utils.rb +0 -12
- data/lib/rdm/yml_config/config_caster.rb +0 -32
- data/lib/rdm/yml_config/config_manager.rb +0 -39
- data/lib/rdm/yml_config/config_validator.rb +0 -51
- data/lib/rdm/yml_config/env_config.rb +0 -46
- data/lib/rdm/yml_config/env_config_dsl.rb +0 -92
- data/lib/rdm/yml_config/validate_config.rb +0 -13
- data/spec/fixtures/app.yml +0 -17
- data/spec/rdm/yml_config/config_caster_spec.rb +0 -64
- data/spec/rdm/yml_config/config_manager_spec.rb +0 -7
- data/spec/rdm/yml_config/config_validator_spec.rb +0 -190
- data/spec/rdm/yml_config/env_config_dsl_spec.rb +0 -123
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Rdm::Gen::Config do
|
4
|
+
include ExampleProjectHelper
|
5
|
+
|
6
|
+
subject { described_class }
|
7
|
+
|
8
|
+
describe "::generate" do
|
9
|
+
before { initialize_example_project }
|
10
|
+
after { reset_example_project }
|
11
|
+
|
12
|
+
context "sample config" do
|
13
|
+
before do
|
14
|
+
subject.generate(
|
15
|
+
config_name: 'mailing_system',
|
16
|
+
current_path: example_project_path
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "generates sample config" do
|
21
|
+
FileUtils.cd(example_project_path) do
|
22
|
+
ensure_exists("configs/mailing_system/default.yml")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "add config line to Rdm.packages" do
|
27
|
+
ensure_content(rdm_source_file, 'config :mailing_system')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/rdm/gen/init_spec.rb
CHANGED
@@ -18,6 +18,9 @@ describe Rdm::Gen::Init do
|
|
18
18
|
ensure_exists("Gemfile")
|
19
19
|
ensure_exists("Readme.md")
|
20
20
|
ensure_exists("bin/console")
|
21
|
+
ensure_exists("env_files/test.env")
|
22
|
+
ensure_exists("env_files/development.env")
|
23
|
+
ensure_exists("env_files/production.env")
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
@@ -33,6 +36,15 @@ describe Rdm::Gen::Init do
|
|
33
36
|
ensure_exists(".rdm/templates/package/bin/console")
|
34
37
|
end
|
35
38
|
end
|
39
|
+
|
40
|
+
it "has generated config templates" do
|
41
|
+
subject.generate(current_path: example_project_path, stdout: stdout)
|
42
|
+
|
43
|
+
FileUtils.cd(example_project_path) do
|
44
|
+
ensure_exists(".rdm/templates/configs/<%=config_path%>")
|
45
|
+
ensure_exists(".rdm/templates/configs/<%=role_config_path%>")
|
46
|
+
end
|
47
|
+
end
|
36
48
|
end
|
37
49
|
|
38
50
|
context "prevents double execution" do
|
@@ -8,28 +8,17 @@ describe Rdm::PackageImporter do
|
|
8
8
|
dependencies.each do |dependency|
|
9
9
|
package.import(dependency)
|
10
10
|
end
|
11
|
-
package.set_environments do
|
12
|
-
array 'some_key', each: :string do
|
13
|
-
length({ min: 3 })
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
11
|
package
|
18
12
|
end
|
19
13
|
|
20
14
|
def build_source(packages:)
|
21
15
|
source = Rdm::Source.new(root_path: nil)
|
22
|
-
source.init_with(packages: packages)
|
16
|
+
source.init_with(packages: packages, configs: {})
|
23
17
|
source
|
24
18
|
end
|
25
19
|
|
26
|
-
before
|
20
|
+
before do
|
27
21
|
Rdm::PackageImporter.reset!
|
28
|
-
Rdm::ConfigManager.reset!
|
29
|
-
|
30
|
-
Rdm.setup do
|
31
|
-
config_path File.expand_path(File.join(__dir__, '../fixtures/app.yml'))
|
32
|
-
end
|
33
22
|
end
|
34
23
|
|
35
24
|
describe "#import_package" do
|
@@ -75,26 +64,5 @@ describe Rdm::PackageImporter do
|
|
75
64
|
expect(imported).to_not include("factory")
|
76
65
|
end
|
77
66
|
end
|
78
|
-
|
79
|
-
context 'sets config variables' do
|
80
|
-
it 'only for imported packages' do
|
81
|
-
web_pack = build_package("web", dependencies: ["core"])
|
82
|
-
core_pack = build_package("core")
|
83
|
-
factory_pack = build_package("factory")
|
84
|
-
|
85
|
-
source = build_source(packages: {"web" => web_pack, "core" => core_pack, "factory" => factory_pack})
|
86
|
-
|
87
|
-
imported = subject.import_package("web", source: source)
|
88
|
-
|
89
|
-
expect(Rdm::ConfigManager.web.some_key).to match(["value1", "value2", "value3"])
|
90
|
-
expect(Rdm::ConfigManager.core.some_key).to match(["value1", "value2", "value3"])
|
91
|
-
|
92
|
-
expect{
|
93
|
-
Rdm::ConfigManager.factory
|
94
|
-
}.to raise_error(
|
95
|
-
ArgumentError, ":factory configuration was not defined for current package. Add `import 'factory'` to your Package.rb file"
|
96
|
-
)
|
97
|
-
end
|
98
|
-
end
|
99
67
|
end
|
100
68
|
end
|
data/spec/rdm/rdm_spec.rb
CHANGED
@@ -32,6 +32,12 @@ describe Rdm::SourceParser do
|
|
32
32
|
expect(paths).to include("application/web")
|
33
33
|
expect(paths).to include("domain/core")
|
34
34
|
end
|
35
|
+
|
36
|
+
it "parses all config names" do
|
37
|
+
names = @source.config_names
|
38
|
+
expect(names.count).to be(1)
|
39
|
+
expect(names).to include("database")
|
40
|
+
end
|
35
41
|
end
|
36
42
|
|
37
43
|
|
@@ -64,5 +70,58 @@ describe Rdm::SourceParser do
|
|
64
70
|
expect(paths).to include("application/web")
|
65
71
|
expect(paths).to include("domain/core")
|
66
72
|
end
|
73
|
+
|
74
|
+
it "parses all config names" do
|
75
|
+
names = @source.config_names
|
76
|
+
expect(names.count).to be(2)
|
77
|
+
expect(names).to include("database")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "::read_and_init_source" do
|
82
|
+
before { initialize_example_project }
|
83
|
+
after { reset_example_project }
|
84
|
+
|
85
|
+
subject { described_class }
|
86
|
+
let(:stdout) { SpecLogger.new }
|
87
|
+
|
88
|
+
describe "#init_and_set_env_variables" do
|
89
|
+
context "with defined role" do
|
90
|
+
it "load env_file variables into ENV hash" do
|
91
|
+
subject.read_and_init_source(@rdm_source_file)
|
92
|
+
|
93
|
+
expect(ENV['EXAMPLE_API_KEY']).to eq('example_key_value')
|
94
|
+
expect(ENV['APP_NAME']).to eq('Application')
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context "with undefined role" do
|
99
|
+
it "puts warning message" do
|
100
|
+
Rdm::Utils::FileUtils.change_file @rdm_source_file do |line|
|
101
|
+
line.include?("ENV['ENV_FILE'] || \"production\"") ? 'env_file_name "stading"' : line
|
102
|
+
end
|
103
|
+
subject.read_and_init_source(@rdm_source_file, stdout: stdout)
|
104
|
+
|
105
|
+
expect(stdout.output).to include("WARNING! Environment file 'stading' was not found. Please, add /tmp/example/env_files/stading.env file...")
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context "when try to overwrite ENV variable" do
|
110
|
+
before do
|
111
|
+
ENV['RUBY_ENV'] = 'test'
|
112
|
+
|
113
|
+
subject.read_and_init_source(@rdm_source_file, stdout: stdout)
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'puts warning message' do
|
117
|
+
expect(stdout.output).to include("WARNING! Environment file 'production' overwrites ENV['RUBY_ENV'] variable from 'test' to 'production' ...")
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'overwrites ENV variable' do
|
121
|
+
expect(ENV['RUBY_ENV']).to eq('production')
|
122
|
+
expect(ENV['APP_NAME']).to eq('Application')
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
67
126
|
end
|
68
127
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Droid Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,48 +108,6 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '4.4'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: morf
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: hcast
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: attr_validator
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
111
|
description: Ruby Dependency Manager
|
154
112
|
email:
|
155
113
|
executables:
|
@@ -172,6 +130,8 @@ files:
|
|
172
130
|
- docs/index.md
|
173
131
|
- docs/interface_brainstorming.md
|
174
132
|
- example/.rdm/helpers/render_helper.rb
|
133
|
+
- example/.rdm/templates/configs/<%=config_path%>
|
134
|
+
- example/.rdm/templates/configs/<%=role_config_path%>
|
175
135
|
- example/.rdm/templates/package/.gitignore
|
176
136
|
- example/.rdm/templates/package/.rspec
|
177
137
|
- example/.rdm/templates/package/<%=package_subdir_name%>/<%=package_name%>.rb
|
@@ -192,14 +152,18 @@ files:
|
|
192
152
|
- example/application/web/package/web.rb
|
193
153
|
- example/application/web/package/web/sample_controller.rb
|
194
154
|
- example/bin/console
|
195
|
-
- example/
|
155
|
+
- example/configs/app/default.yml
|
156
|
+
- example/configs/app/production.yml
|
157
|
+
- example/configs/database/default.yml
|
196
158
|
- example/domain/core/Package.rb
|
197
159
|
- example/domain/core/package/core.rb
|
198
160
|
- example/domain/core/package/core/sample_service.rb
|
199
161
|
- example/domain/core/spec/core/one_more_spec.rb
|
200
162
|
- example/domain/core/spec/core/sample_service_spec.rb
|
163
|
+
- example/env_files/development.env
|
164
|
+
- example/env_files/production.env
|
165
|
+
- example/env_files/test.env
|
201
166
|
- example/infrastructure/repository/Package.rb
|
202
|
-
- example/infrastructure/repository/fixture.txt
|
203
167
|
- example/infrastructure/repository/package/repository.rb
|
204
168
|
- example/infrastructure/repository/package/repository/sample_repository.rb
|
205
169
|
- example/infrastructure/repository/spec/example_spec.rb
|
@@ -215,13 +179,19 @@ files:
|
|
215
179
|
- example/tests/run
|
216
180
|
- lib/rdm.rb
|
217
181
|
- lib/rdm/cli/compile_package.rb
|
182
|
+
- lib/rdm/cli/config.rb
|
218
183
|
- lib/rdm/cli/dependencies_controller.rb
|
219
184
|
- lib/rdm/cli/diff_package.rb
|
220
185
|
- lib/rdm/cli/diff_spec_runner.rb
|
221
186
|
- lib/rdm/cli/gen_package.rb
|
222
187
|
- lib/rdm/cli/init.rb
|
223
188
|
- lib/rdm/cli/template_generator.rb
|
189
|
+
- lib/rdm/config.rb
|
190
|
+
- lib/rdm/config_locals.rb
|
191
|
+
- lib/rdm/config_manager.rb
|
192
|
+
- lib/rdm/config_scope.rb
|
224
193
|
- lib/rdm/errors.rb
|
194
|
+
- lib/rdm/gen/config.rb
|
225
195
|
- lib/rdm/gen/init.rb
|
226
196
|
- lib/rdm/gen/package.rb
|
227
197
|
- lib/rdm/git/diff_command.rb
|
@@ -248,11 +218,16 @@ files:
|
|
248
218
|
- lib/rdm/spec_runner/runner.rb
|
249
219
|
- lib/rdm/spec_runner/spec_filename_matcher.rb
|
250
220
|
- lib/rdm/spec_runner/view.rb
|
221
|
+
- lib/rdm/templates/configs/<%=config_path%>
|
222
|
+
- lib/rdm/templates/configs/<%=role_config_path%>
|
251
223
|
- lib/rdm/templates/init/.rdm/helpers/render_helper.rb
|
252
224
|
- lib/rdm/templates/init/Gemfile
|
253
225
|
- lib/rdm/templates/init/Rdm.packages
|
254
226
|
- lib/rdm/templates/init/Readme.md
|
255
227
|
- lib/rdm/templates/init/bin/console
|
228
|
+
- lib/rdm/templates/init/env_files/development.env
|
229
|
+
- lib/rdm/templates/init/env_files/production.env
|
230
|
+
- lib/rdm/templates/init/env_files/test.env
|
256
231
|
- lib/rdm/templates/init/tests/.runignore
|
257
232
|
- lib/rdm/templates/init/tests/diff_run
|
258
233
|
- lib/rdm/templates/init/tests/run
|
@@ -266,19 +241,12 @@ files:
|
|
266
241
|
- lib/rdm/templates/template_detector.rb
|
267
242
|
- lib/rdm/templates/template_renderer.rb
|
268
243
|
- lib/rdm/utils/file_utils.rb
|
269
|
-
- lib/rdm/utils/ostruct_utils.rb
|
270
244
|
- lib/rdm/utils/render_util.rb
|
271
245
|
- lib/rdm/utils/string_utils.rb
|
272
246
|
- lib/rdm/version.rb
|
273
|
-
- lib/rdm/yml_config/config_caster.rb
|
274
|
-
- lib/rdm/yml_config/config_manager.rb
|
275
|
-
- lib/rdm/yml_config/config_validator.rb
|
276
|
-
- lib/rdm/yml_config/env_config.rb
|
277
|
-
- lib/rdm/yml_config/env_config_dsl.rb
|
278
|
-
- lib/rdm/yml_config/validate_config.rb
|
279
247
|
- rdm.gemspec
|
280
248
|
- spec/fixtures/SampleSource.rb
|
281
|
-
- spec/fixtures/
|
249
|
+
- spec/fixtures/config.yml
|
282
250
|
- spec/fixtures/sample_prj/Rdm.packages
|
283
251
|
- spec/fixtures/sample_prj/infrastructure/web/Package.rb
|
284
252
|
- spec/helpers/example_project_helper.rb
|
@@ -288,6 +256,8 @@ files:
|
|
288
256
|
- spec/rdm/cli/diff_spec_runner_spec.rb
|
289
257
|
- spec/rdm/cli/gen_package_spec.rb
|
290
258
|
- spec/rdm/cli/init_spec.rb
|
259
|
+
- spec/rdm/config_manager_spec.rb
|
260
|
+
- spec/rdm/gen/config_spec.rb
|
291
261
|
- spec/rdm/gen/init_spec.rb
|
292
262
|
- spec/rdm/gen/package_spec.rb
|
293
263
|
- spec/rdm/git/diff_manager_spec.rb
|
@@ -309,10 +279,6 @@ files:
|
|
309
279
|
- spec/rdm/spec_runner_spec.rb
|
310
280
|
- spec/rdm/templates/template_detector_spec.rb
|
311
281
|
- spec/rdm/templates/template_renderer_spec.rb
|
312
|
-
- spec/rdm/yml_config/config_caster_spec.rb
|
313
|
-
- spec/rdm/yml_config/config_manager_spec.rb
|
314
|
-
- spec/rdm/yml_config/config_validator_spec.rb
|
315
|
-
- spec/rdm/yml_config/env_config_dsl_spec.rb
|
316
282
|
- spec/spec_helper.rb
|
317
283
|
homepage:
|
318
284
|
licenses: []
|
@@ -338,7 +304,7 @@ specification_version: 4
|
|
338
304
|
summary: Ruby Dependency Manager
|
339
305
|
test_files:
|
340
306
|
- spec/fixtures/SampleSource.rb
|
341
|
-
- spec/fixtures/
|
307
|
+
- spec/fixtures/config.yml
|
342
308
|
- spec/fixtures/sample_prj/Rdm.packages
|
343
309
|
- spec/fixtures/sample_prj/infrastructure/web/Package.rb
|
344
310
|
- spec/helpers/example_project_helper.rb
|
@@ -348,6 +314,8 @@ test_files:
|
|
348
314
|
- spec/rdm/cli/diff_spec_runner_spec.rb
|
349
315
|
- spec/rdm/cli/gen_package_spec.rb
|
350
316
|
- spec/rdm/cli/init_spec.rb
|
317
|
+
- spec/rdm/config_manager_spec.rb
|
318
|
+
- spec/rdm/gen/config_spec.rb
|
351
319
|
- spec/rdm/gen/init_spec.rb
|
352
320
|
- spec/rdm/gen/package_spec.rb
|
353
321
|
- spec/rdm/git/diff_manager_spec.rb
|
@@ -369,8 +337,4 @@ test_files:
|
|
369
337
|
- spec/rdm/spec_runner_spec.rb
|
370
338
|
- spec/rdm/templates/template_detector_spec.rb
|
371
339
|
- spec/rdm/templates/template_renderer_spec.rb
|
372
|
-
- spec/rdm/yml_config/config_caster_spec.rb
|
373
|
-
- spec/rdm/yml_config/config_manager_spec.rb
|
374
|
-
- spec/rdm/yml_config/config_validator_spec.rb
|
375
|
-
- spec/rdm/yml_config/env_config_dsl_spec.rb
|
376
340
|
- spec/spec_helper.rb
|
data/example/config/app.yml
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Repository spec working here!
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'morf'
|
2
|
-
|
3
|
-
class Rdm::ConfigCaster
|
4
|
-
def initialize(envs)
|
5
|
-
@envs = envs
|
6
|
-
end
|
7
|
-
|
8
|
-
def cast(hash)
|
9
|
-
hash[@envs.name] ||= {}
|
10
|
-
caster.cast(hash, input_keys: :string, skip_unexpected_attributes: true)
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
def to_hcast_string(env)
|
15
|
-
eval_string = "#{env.type} :#{env.name}, optional: #{env.optional}"
|
16
|
-
eval_string += env.is_array? ? ", each: :#{env.children.first.type}" : ""
|
17
|
-
eval_string += env.is_hash? ? %Q( do \n #{env.children.map { |e| to_hcast_string(e) }.join("\n")} \nend) : ""
|
18
|
-
|
19
|
-
eval_string
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def caster
|
25
|
-
@caster ||= Class.new
|
26
|
-
@caster.include(Morf::Caster)
|
27
|
-
|
28
|
-
@caster.class_eval "attributes do\n #{to_hcast_string(@envs)}\n end"
|
29
|
-
|
30
|
-
@caster
|
31
|
-
end
|
32
|
-
end
|