ec2-metadata 0.2.1 → 0.2.2

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.
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.2-head@ec2-metadata
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
@@ -1,79 +1,78 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ec2-metadata}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Takeshi AKIMA"]
12
- s.date = %q{2010-04-09}
12
+ s.date = %q{2011-03-03}
13
13
  s.default_executable = %q{ec2-metadata}
14
14
  s.description = %q{ec2-metadata provides to access metadata, and you can use in outside of ec2 like in ec2}
15
15
  s.email = %q{akm2000@gmail.com}
16
16
  s.executables = ["ec2-metadata"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE",
19
- "README.rdoc"
19
+ "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
- ".gitignore",
24
- "LICENSE",
25
- "README.rdoc",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/ec2-metadata",
29
- "ec2-metadata.gemspec",
30
- "lib/ec2_metadata.rb",
31
- "lib/ec2_metadata/base.rb",
32
- "lib/ec2_metadata/command.rb",
33
- "lib/ec2_metadata/dummy.rb",
34
- "lib/ec2_metadata/dummy.yml",
35
- "lib/ec2_metadata/http_client.rb",
36
- "lib/ec2_metadata/revision.rb",
37
- "lib/ec2_metadata/root.rb",
38
- "lib/hash_key_orderable.rb",
39
- "spec/ec2_metadata/base_spec.rb",
40
- "spec/ec2_metadata/command_spec.rb",
41
- "spec/ec2_metadata/dummy_spec.rb",
42
- "spec/ec2_metadata/http_client_spec.rb",
43
- "spec/ec2_metadata/revision_spec.rb",
44
- "spec/ec2_metadata/root_spec.rb",
45
- "spec/ec2_metadata_spec.rb",
46
- "spec/hash_key_orderable_spec.rb",
47
- "spec/introduction_spec.rb",
48
- "spec/rcov.opts",
49
- "spec/spec.opts",
50
- "spec/spec_helper.rb",
51
- "spec/to_hash_spec.rb"
23
+ ".rvmrc",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/ec2-metadata",
29
+ "ec2-metadata.gemspec",
30
+ "lib/ec2_metadata.rb",
31
+ "lib/ec2_metadata/base.rb",
32
+ "lib/ec2_metadata/command.rb",
33
+ "lib/ec2_metadata/dummy.rb",
34
+ "lib/ec2_metadata/dummy.yml",
35
+ "lib/ec2_metadata/http_client.rb",
36
+ "lib/ec2_metadata/revision.rb",
37
+ "lib/ec2_metadata/root.rb",
38
+ "lib/hash_key_orderable.rb",
39
+ "spec/ec2_metadata/base_spec.rb",
40
+ "spec/ec2_metadata/command_spec.rb",
41
+ "spec/ec2_metadata/dummy_spec.rb",
42
+ "spec/ec2_metadata/http_client_spec.rb",
43
+ "spec/ec2_metadata/revision_spec.rb",
44
+ "spec/ec2_metadata/root_spec.rb",
45
+ "spec/ec2_metadata_spec.rb",
46
+ "spec/hash_key_orderable_spec.rb",
47
+ "spec/introduction_spec.rb",
48
+ "spec/rcov.opts",
49
+ "spec/spec.opts",
50
+ "spec/spec_helper.rb",
51
+ "spec/to_hash_spec.rb"
52
52
  ]
53
53
  s.homepage = %q{http://github.com/akm/ec2-metadata}
54
- s.rdoc_options = ["--charset=UTF-8"]
55
54
  s.require_paths = ["lib"]
56
- s.rubygems_version = %q{1.3.6}
55
+ s.rubygems_version = %q{1.3.7}
57
56
  s.summary = %q{ec2-metadata provides to access metadata}
58
57
  s.test_files = [
59
58
  "spec/ec2_metadata/base_spec.rb",
60
- "spec/ec2_metadata/command_spec.rb",
61
- "spec/ec2_metadata/dummy_spec.rb",
62
- "spec/ec2_metadata/http_client_spec.rb",
63
- "spec/ec2_metadata/revision_spec.rb",
64
- "spec/ec2_metadata/root_spec.rb",
65
- "spec/ec2_metadata_spec.rb",
66
- "spec/hash_key_orderable_spec.rb",
67
- "spec/introduction_spec.rb",
68
- "spec/spec_helper.rb",
69
- "spec/to_hash_spec.rb"
59
+ "spec/ec2_metadata/command_spec.rb",
60
+ "spec/ec2_metadata/dummy_spec.rb",
61
+ "spec/ec2_metadata/http_client_spec.rb",
62
+ "spec/ec2_metadata/revision_spec.rb",
63
+ "spec/ec2_metadata/root_spec.rb",
64
+ "spec/ec2_metadata_spec.rb",
65
+ "spec/hash_key_orderable_spec.rb",
66
+ "spec/introduction_spec.rb",
67
+ "spec/spec_helper.rb",
68
+ "spec/to_hash_spec.rb"
70
69
  ]
71
70
 
72
71
  if s.respond_to? :specification_version then
73
72
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
74
73
  s.specification_version = 3
75
74
 
76
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
75
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
77
76
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
78
77
  else
79
78
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
@@ -45,6 +45,7 @@ module Ec2Metadata
45
45
  new_child(child_key) :
46
46
  Ec2Metadata.get("#{path}#{child_key}")
47
47
  else
48
+ raise NotFoundError, "#{path}#{child_key} not found as default key" if @getting_default_child
48
49
  raise NotFoundError, "#{path}#{child_key} not found" unless default_child
49
50
  result = default_child.get(child_key)
50
51
  end
@@ -80,8 +81,16 @@ module Ec2Metadata
80
81
  alias_method :[], :get
81
82
 
82
83
  def default_child
84
+ return @default_child if @default_child
83
85
  logging("default_child") do
84
- @default_child ||= get(default_child_key) if default_child_key
86
+ if default_child_key
87
+ @getting_default_child = true
88
+ begin
89
+ @default_child = get(default_child_key)
90
+ ensure
91
+ @getting_default_child = false
92
+ end
93
+ end
85
94
  end
86
95
  end
87
96
 
@@ -21,7 +21,7 @@ module Ec2Metadata
21
21
  end
22
22
 
23
23
  def search_and_load_yaml
24
- paths = Dir.glob(yaml_paths.map{|path| File.expand_path(path)})
24
+ paths = Dir.glob(yaml_paths.map{|path| File.expand_path(path) rescue nil}.compact)
25
25
  load_yaml(paths.first) unless paths.empty?
26
26
  end
27
27
 
@@ -32,7 +32,7 @@ module Ec2Metadata
32
32
  Ec2Metadata.from_hash(YAML.load(text))
33
33
  @loaded_yaml_path = path
34
34
  end
35
-
35
+
36
36
  def loaded_yaml_path
37
37
  @loaded_yaml_path
38
38
  end
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
2
3
 
3
4
  describe Ec2Metadata::Base do
@@ -59,8 +60,18 @@ describe Ec2Metadata::Base do
59
60
 
60
61
  end
61
62
  end
63
+ end
62
64
 
63
-
65
+ describe :default_child do
66
+ it "stack level too deep" do
67
+ Ec2Metadata.should_receive(:get).with("/latest/").once.and_return(DATA_TYPES.join("\n"))
68
+ # 0.2.1で発生しうる、SystemStackError: stack level too deep を無理に発生させている
69
+ latest = Ec2Metadata["latest"]
70
+ latest.instance_variable_set(:@default_child_key, 'unexist-meta-data')
71
+ lambda{
72
+ latest["instance_id"].should == nil
73
+ }.should raise_error(Ec2Metadata::NotFoundError)
74
+ end
64
75
  end
65
76
 
66
77
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 1
9
- version: 0.2.1
8
+ - 2
9
+ version: 0.2.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Takeshi AKIMA
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-09 00:00:00 +09:00
17
+ date: 2011-03-03 00:00:00 +09:00
18
18
  default_executable: ec2-metadata
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -42,7 +43,7 @@ extra_rdoc_files:
42
43
  - README.rdoc
43
44
  files:
44
45
  - .document
45
- - .gitignore
46
+ - .rvmrc
46
47
  - LICENSE
47
48
  - README.rdoc
48
49
  - Rakefile
@@ -76,11 +77,12 @@ homepage: http://github.com/akm/ec2-metadata
76
77
  licenses: []
77
78
 
78
79
  post_install_message:
79
- rdoc_options:
80
- - --charset=UTF-8
80
+ rdoc_options: []
81
+
81
82
  require_paths:
82
83
  - lib
83
84
  required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
84
86
  requirements:
85
87
  - - ">="
86
88
  - !ruby/object:Gem::Version
@@ -88,6 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
90
  - 0
89
91
  version: "0"
90
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
91
94
  requirements:
92
95
  - - ">="
93
96
  - !ruby/object:Gem::Version
@@ -97,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
100
  requirements: []
98
101
 
99
102
  rubyforge_project:
100
- rubygems_version: 1.3.6
103
+ rubygems_version: 1.3.7
101
104
  signing_key:
102
105
  specification_version: 3
103
106
  summary: ec2-metadata provides to access metadata
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
-
2
-
3
-
4
-
5
-
6
- ## EMACS
7
- ## MAC OS
8
- ## PROJECT::GENERAL
9
- ## PROJECT::SPECIFIC
10
- ## TEXTMATE
11
- ## VIM
12
- *.swp
13
- *.tmproj
14
- *~
15
- .DS_Store
16
- .\#*
17
- /ec2-metadata-0.1.0.gem
18
- \#*
19
- coverage
20
- pkg
21
- rdoc
22
- tmtags