service_contract-generator 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4332265d8952d7ebb35e44a3dad5d148d7de7410
4
- data.tar.gz: 7ac0bc89a60c4323db6fc867279990f909bcce56
3
+ metadata.gz: 2140ab1d446df2a7a91e633c4a8dc3d9eea06f80
4
+ data.tar.gz: b6ec2abd59d37878109217fe1a75898858913462
5
5
  SHA512:
6
- metadata.gz: d9227711cf96d8460bf7480de456d244e69c54417fc49c16d97413757b1a04d71baa13739a602e2a42534617fcc5f93d6f8ad2f9288cd7615dd6da24fcbe7db0
7
- data.tar.gz: 08c7615d430ae3875d67415d023ff5e6d1fdfef7e1448503d4a0976dcbdf13f38144233dda063de4fc7d1b24ffc0d5fbd431db0a35a5866d4c609821b96c9fb4
6
+ metadata.gz: c451cb4a8428cc7a95a4c41620bcdfe5899a910a63d60faa0d06782aeac6796f944a4848c90751e344b7380055dae16e3ad3cd4c9ee173e4b5e082c9ea8567a7
7
+ data.tar.gz: 2a268a1139c712ebc2357fdba23b02bbefcb5503af27cbd6da9f9ebba34ee74a5901bc79d17de7384065d05114dc4e73b6cfab66f9690f14463c4fb286f51798
@@ -12,16 +12,14 @@ module ServiceContract
12
12
  FileUtils.mkdir_p(folder)
13
13
  output_file = File.join(folder, "#{ActiveSupport::Inflector.underscore(protocol_name)}.avdl")
14
14
  b = binding()
15
- erb = ERB.new(File.read(File.expand_path("../../../../template/protocol.avdl.erb", __FILE__)))
16
- File.open(output_file, 'w') do |file|
17
- file.write(erb.result(b))
18
- end
15
+ write_template("protocol.avdl.erb", output_file, b)
19
16
  end
20
17
 
21
18
  desc "gem CONTRACT_NAME", "bootstraps a new service_contract"
22
19
  def gem(contract_name)
23
20
  path = contract_name.gsub("-", "/")
24
21
  module_name = ActiveSupport::Inflector.camelize(path)
22
+ module_names = module_name.split("::")
25
23
 
26
24
  # create directory structure
27
25
  commands = [
@@ -65,13 +63,22 @@ module ServiceContract
65
63
  path_to_root = (Array.new(2 + module_name.split("::").length) {".."}).join("/")
66
64
  service_name = ActiveSupport::Inflector.humanize(contract_name)
67
65
  b = binding()
68
- Dir.glob(File.expand_path("../../../../template/*.rb.erb", __FILE__)).each do |template|
69
- erb = ERB.new(File.read(template))
66
+ %w(documentation.rb.erb service.rb.erb).each do |template|
70
67
  output_file = File.join(contract_name, 'lib', path, File.basename(template, ".erb"))
71
- puts "writing template: #{output_file}"
72
- File.open(output_file, 'w') do |file|
73
- file.write(erb.result(b))
74
- end
68
+ write_template(template, output_file, b)
69
+ end
70
+
71
+ write_template("module.rb.erb", File.join(contract_name, "lib", "#{path}.rb"), b)
72
+ end
73
+
74
+ protected
75
+
76
+ def write_template(name, output_file, bind)
77
+ template_folder = File.expand_path("../../../../template", __FILE__)
78
+ input = File.join(template_folder, name)
79
+ erb = ERB.new(File.read(input))
80
+ File.open(output_file, 'w') do |file|
81
+ file.write(erb.result(bind))
75
82
  end
76
83
  end
77
84
 
@@ -1,5 +1,5 @@
1
1
  module ServiceContract
2
2
  module Generator
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -0,0 +1,8 @@
1
+ <% module_names.each do |name| %>
2
+ module <%= name %> do
3
+ <% end %>
4
+ autoload :Documentation, "<%= path %>/documentation"
5
+ autoload :Service, "<%= path %>/service"
6
+ <% module_names.each do |name| %>
7
+ end
8
+ <% end %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: service_contract-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Ching
@@ -83,10 +83,10 @@ files:
83
83
  - lib/service_contract-generator.rb
84
84
  - lib/service_contract/generator.rb
85
85
  - lib/service_contract/generator/cli.rb
86
- - lib/service_contract/generator/cli/contract.rb
87
86
  - lib/service_contract/generator/version.rb
88
87
  - service_contract-generator.gemspec
89
88
  - template/documentation.rb.erb
89
+ - template/module.rb.erb
90
90
  - template/protocol.avdl.erb
91
91
  - template/service.rb.erb
92
92
  homepage: ''
@@ -1,66 +0,0 @@
1
- module ServiceContract
2
- module Generator
3
- module CLI
4
- class Contract < Thor
5
- desc "new"
6
-
7
- desc "gem CONTRACT_NAME", "bootstraps a new service_contract"
8
- def gem(contract_name)
9
- path = contract_name.gsub("-", "/")
10
- module_name = ActiveSupport::Inflector.camelize(path)
11
-
12
- # create directory structure
13
- commands = [
14
- # create gem stub
15
- %{bundle gem #{contract_name}},
16
-
17
- # create contracts folder
18
- %{mkdir -p #{contract_name}/contracts/},
19
- %{touch #{contract_name}/contracts/},
20
-
21
- # append tasks to Rakefile
22
- %{echo "require 'service_contract/tasks'" >> #{contract_name}/Rakefile}
23
- ]
24
- commands.each do |command|
25
- puts command
26
- `#{command}`
27
- end
28
-
29
- # add service_contract to .gemspec
30
- gemspec = "#{contract_name}/#{contract_name}.gemspec"
31
- dependency_line = `grep -m 1 -n '.add_de' #{gemspec}`
32
- matched = false
33
- output = ""
34
- File.open(gemspec, "r") do |file|
35
- file.each_line do |line|
36
- puts line
37
- if !matched && match = line.match(/([^\.]+)\.add_de/)
38
- puts "matched"
39
- output += %{#{match[1]}.add_dependency "service_contract"\n}
40
- matched = true
41
- end
42
- output += line
43
- end
44
- end
45
- puts output
46
- File.open(gemspec, "w") do |file|
47
- file.write(output)
48
- end
49
-
50
- # template files
51
- path_to_root = (Array.new(2 + module_name.split("::").length) {".."}).join("/")
52
- service_name = ActiveSupport::Inflector.humanize(contract_name)
53
- b = binding()
54
- Dir.glob(File.expand_path("../../../../template/*.erb", __FILE__)).each do |template|
55
- erb = ERB.new(File.read(template))
56
- output_file = File.join(contract_name, 'lib', path, File.basename(template, ".erb"))
57
- puts "writing template: #{output_file}"
58
- File.open(output_file, 'w') do |file|
59
- file.write(erb.result(b))
60
- end
61
- end
62
- end
63
- end
64
- end
65
- end
66
- end