rna 0.1.1 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.9.2
4
- - 1.9.3
5
- bundler_args: --without development
4
+ - 1.9.3
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Rna gem
2
2
  ===========
3
3
 
4
+ [![Build History][2]][1]
5
+
6
+ [1]: http://travis-ci.org/tongueroo/rna
7
+ [2]: https://secure.travis-ci.org/tongueroo/rna.png?branch=master
8
+
4
9
  Rna is a ruby gem that provides simple DSL for generating node.json files required by chef-solo.
5
10
 
6
11
  Requirements
@@ -0,0 +1,3 @@
1
+ guard "rna" do
2
+ watch(%r{^config/rna.rb$})
3
+ end
data/lib/rna/cli.rb CHANGED
@@ -22,7 +22,7 @@ EOL
22
22
  method_option :output, :aliases => '-o', :desc => "specify where to output the generated files to", :default => 'filesystem'
23
23
  method_option :public_read, :aliases => '-p', :desc => "make s3 files readable by public, default private", :default => false, :type => :boolean
24
24
  def build
25
- Rna::Tasks.build(options.dup)
25
+ Rna::Tasks.build(options.dup.merge(:verbose => true))
26
26
  end
27
27
  end
28
28
 
data/lib/rna/dsl.rb CHANGED
@@ -65,6 +65,7 @@ module Rna
65
65
 
66
66
  outputer = options[:output] || 'filesystem'
67
67
  outputer_class = Rna.const_get(outputer.capitalize)
68
+ puts "Building node.json files:" if options[:verbose]
68
69
  outputer_class.new(options).run(jsons)
69
70
  end
70
71
 
data/lib/rna/outputers.rb CHANGED
@@ -9,9 +9,10 @@ module Rna
9
9
  class Filesystem < Outputer
10
10
  def run(jsons)
11
11
  # options[:output_path] only used for specs
12
- output_path = options[:output_path] || "nodejson"
12
+ output_path = options[:output_path] || "output"
13
13
  FileUtils.mkdir(output_path) unless File.exist?(output_path)
14
14
  jsons.each do |role,json|
15
+ puts " #{role}.json" if options[:verbose]
15
16
  File.open("#{output_path}/#{role}.json", 'w') {|f| f.write(json) }
16
17
  end
17
18
  end
@@ -28,6 +29,7 @@ module Rna
28
29
  @s3 = AWS::S3.new
29
30
  bucket = @s3.buckets[@config['bucket']]
30
31
  jsons.each do |role,json|
32
+ puts " #{role}.json" if options[:verbose]
31
33
  bucket.objects.create("#{@config['folder']}/#{role}.json", json, s3_options)
32
34
  end
33
35
  self # return outputer object for specs
data/lib/rna/tasks.rb CHANGED
@@ -3,9 +3,10 @@ module Rna
3
3
  def self.init(project_root=".",options={})
4
4
  puts "Settin up rna project" unless options[:quiet]
5
5
  FileUtils.mkdir("#{project_root}/config") unless File.exist?("#{project_root}/config")
6
- %w/rna.rb s3.yml/.each do |name|
6
+ %w/rna.rb s3.yml Guardfile/.each do |name|
7
7
  source = File.expand_path("../../files/#{name}", __FILE__)
8
8
  dest = "#{project_root}/config/#{File.basename(source)}"
9
+ dest = "#{project_root}/#{File.basename(source)}" if name == 'Guardfile'
9
10
  if File.exist?(dest)
10
11
  puts "already exists: #{dest}" unless options[:quiet]
11
12
  else
@@ -20,7 +21,11 @@ module Rna
20
21
 
21
22
  def initialize(options={})
22
23
  @options = options
23
- @dsl = DSL.new
24
+ if options[:config_path]
25
+ @dsl = DSL.new(options[:config_path])
26
+ else
27
+ @dsl = DSL.new
28
+ end
24
29
  end
25
30
  def build
26
31
  @dsl.evaluate
data/lib/rna/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rna
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.4'
3
3
  end
data/rna.gemspec CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.require_paths = ["lib"]
18
18
  gem.version = Rna::VERSION
19
19
 
20
+ gem.add_dependency "rake"
20
21
  gem.add_dependency "json"
21
22
  gem.add_dependency "thor"
22
23
  gem.add_dependency "aws-sdk"
data/spec/lib/rna_spec.rb CHANGED
@@ -94,14 +94,14 @@ describe Rna do
94
94
  it "should write json files to outputs folder" do
95
95
  @dsl.build
96
96
  @dsl.output(:output => 'filesystem', :output_path => "#{@project_root}/nodejson")
97
- Dir.glob("#{@project_root}/nodejson/*").size.should > 0
97
+ Dir.glob("#{@project_root}/output/*").size.should > 0
98
98
  end
99
99
 
100
100
  # complete end to end tests
101
101
  it "base.json should contain correct attributes" do
102
102
  @dsl.build
103
103
  @dsl.output(:output => 'filesystem', :output_path => "#{@project_root}/nodejson")
104
- base = JSON.load(IO.read("#{@project_root}/nodejson/base.json"))
104
+ base = JSON.load(IO.read("#{@project_root}/output/base.json"))
105
105
  base['role'].should == 'base'
106
106
  base['run_list'].should == ["role[base]"]
107
107
  end
@@ -109,7 +109,7 @@ describe Rna do
109
109
  it "base.json should not contain global attributes" do
110
110
  @dsl.build
111
111
  @dsl.output(:output => 'filesystem', :output_path => "#{@project_root}/nodejson")
112
- base = JSON.load(IO.read("#{@project_root}/nodejson/base.json"))
112
+ base = JSON.load(IO.read("#{@project_root}/output/base.json"))
113
113
  base['framework_env'].should be_nil
114
114
  base['deploy_code'].should be_nil
115
115
  end
@@ -117,7 +117,7 @@ describe Rna do
117
117
  it "prod-api-redis.json should contain base and global attributes" do
118
118
  @dsl.build
119
119
  @dsl.output(:output => 'filesystem', :output_path => "#{@project_root}/nodejson")
120
- json = JSON.load(IO.read("#{@project_root}/nodejson/prod-api-redis.json"))
120
+ json = JSON.load(IO.read("#{@project_root}/output/prod-api-redis.json"))
121
121
  json['role'].should == 'prod-api-redis'
122
122
  json['run_list'].should == ["role[base]"]
123
123
  json['framework_env'].should == 'production'
@@ -127,7 +127,7 @@ describe Rna do
127
127
  it "stag-api-redis.json should contain base and global attributes and apply rules" do
128
128
  @dsl.build
129
129
  @dsl.output(:output => 'filesystem', :output_path => "#{@project_root}/nodejson")
130
- json = JSON.load(IO.read("#{@project_root}/nodejson/stag-api-redis.json"))
130
+ json = JSON.load(IO.read("#{@project_root}/output/stag-api-redis.json"))
131
131
  json['role'].should == 'stag-api-redis'
132
132
  json['run_list'].should == ["role[base]"]
133
133
  json['deploy_code'].should == false
@@ -137,7 +137,7 @@ describe Rna do
137
137
  it "prod-api-app.json should contain base and global attributes" do
138
138
  @dsl.build
139
139
  @dsl.output(:output => 'filesystem', :output_path => "#{@project_root}/nodejson")
140
- json = JSON.load(IO.read("#{@project_root}/nodejson/prod-api-app.json"))
140
+ json = JSON.load(IO.read("#{@project_root}/output/prod-api-app.json"))
141
141
  json['role'].should == 'prod-api-app'
142
142
  json['run_list'].should == ["role[base]","role[api_app]"]
143
143
  json['deploy_code'].should == true
@@ -182,7 +182,7 @@ describe Rna do
182
182
  :config_path => "#{@project_root}/config/rna.rb",
183
183
  :output_path => "#{@project_root}/nodejson"
184
184
  )
185
- json = JSON.load(IO.read("#{@project_root}/nodejson/prod-api-app.json"))
185
+ json = JSON.load(IO.read("#{@project_root}/output/prod-api-app.json"))
186
186
  json['role'].should == 'prod-api-app'
187
187
  json['run_list'].should == ["role[base]","role[api_app]"]
188
188
  json['deploy_code'].should == true
@@ -25,6 +25,7 @@ end
25
25
  role 'prod-api-redis', 'stag-api-redis'
26
26
  role 'prod-api-resque', 'stag-api-resque' do
27
27
  inherits 'prod-api-app'
28
+ set 'workers', 8
28
29
  end
29
30
  role 'prod-api-app', 'stag-api-app' do
30
31
  run_list ['base','api_app']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rna
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-02 00:00:00.000000000 Z
12
+ date: 2012-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: json
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +176,7 @@ files:
160
176
  - README.md
161
177
  - Rakefile
162
178
  - bin/rna
179
+ - lib/files/Guardfile
163
180
  - lib/files/rna.rb
164
181
  - lib/files/s3.yml
165
182
  - lib/rna.rb
@@ -185,12 +202,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
202
  - - ! '>='
186
203
  - !ruby/object:Gem::Version
187
204
  version: '0'
205
+ segments:
206
+ - 0
207
+ hash: 724117673622561747
188
208
  required_rubygems_version: !ruby/object:Gem::Requirement
189
209
  none: false
190
210
  requirements:
191
211
  - - ! '>='
192
212
  - !ruby/object:Gem::Version
193
213
  version: '0'
214
+ segments:
215
+ - 0
216
+ hash: 724117673622561747
194
217
  requirements: []
195
218
  rubyforge_project:
196
219
  rubygems_version: 1.8.24