brighter_planet_metadata 0.0.16 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,8 @@
1
- source "http://rubygems.org"
1
+ source :rubygems
2
2
 
3
- # Specify your gem's dependencies in brighter_planet_metadata.gemspec
4
3
  gemspec
4
+
5
+ # development dependencies
6
+ gem 'webmock'
7
+ gem 'test-unit'
8
+ gem 'rake'
data/Rakefile CHANGED
@@ -10,16 +10,3 @@ Rake::TestTask.new(:test) do |test|
10
10
  end
11
11
 
12
12
  task :default => :test
13
-
14
- begin
15
- require 'rake/rdoctask'
16
- Rake::RDocTask.new do |rdoc|
17
- rdoc.rdoc_dir = 'rdoc'
18
- rdoc.title = 'remote_table'
19
- rdoc.options << '--line-numbers' << '--inline-source'
20
- rdoc.rdoc_files.include('README*')
21
- rdoc.rdoc_files.include('lib/**/*.rb')
22
- end
23
- rescue LoadError
24
- puts "Rdoc is not available"
25
- end
@@ -5,7 +5,6 @@ require "brighter_planet_metadata/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "brighter_planet_metadata"
7
7
  s.version = BrighterPlanetMetadata::VERSION
8
- s.platform = Gem::Platform::RUBY
9
8
  s.authors = ["Seamus Abshere", "Andy Rossmeissl"]
10
9
  s.email = ["seamus@abshere.net"]
11
10
  s.homepage = "https://github.com/brighterplanet/brighter_planet_metadata"
@@ -18,17 +17,8 @@ Gem::Specification.new do |s|
18
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
19
  s.require_paths = ["lib"]
21
- s.add_dependency 'eat'
22
20
  s.add_dependency 'activesupport', '>=2.3.4'
23
21
  s.add_dependency 'i18n' # activesupport?
24
22
  s.add_dependency 'cache_method'
25
- s.add_development_dependency 'brighter_planet_deploy'
26
- s.add_development_dependency 'fakeweb'
27
- s.add_development_dependency 'test-unit'
28
- s.add_development_dependency 'fakefs'
29
- s.add_development_dependency 'earth'
30
- s.add_development_dependency 'rake'
31
- unless RUBY_VERSION > '1.9'
32
- s.add_development_dependency 'fastercsv' # earth
33
- end
23
+ s.add_dependency 'multi_json'
34
24
  end
@@ -1,14 +1,13 @@
1
1
  require 'singleton'
2
- require 'eat'
2
+ require 'uri'
3
+ require 'net/http'
4
+ require 'multi_json'
3
5
  require 'active_support'
4
6
  require 'active_support/version'
5
- %w{
6
- active_support/json
7
- active_support/core_ext/object/blank
8
- active_support/inflector/inflections
9
- }.each do |active_support_3_requirement|
10
- require active_support_3_requirement
11
- end if ::ActiveSupport::VERSION::MAJOR == 3
7
+ if ::ActiveSupport::VERSION::MAJOR >= 3
8
+ require 'active_support/core_ext'
9
+ require 'active_support/inflector/inflections'
10
+ end
12
11
 
13
12
  ::ActiveSupport::Inflector.inflections do |inflect|
14
13
  inflect.uncountable %w{ aircraft bts_aircraft }
@@ -23,10 +22,10 @@ module BrighterPlanet
23
22
  include ::Singleton
24
23
  LIVE_URL = {
25
24
  'datasets' => 'http://data.brighterplanet.com/datasets.json',
26
- 'emitters' => 'http://carbon.brighterplanet.com/emitters.json',
27
- 'certified_emitters' => 'http://certified.carbon.brighterplanet.com/emitters.json',
25
+ 'emitters' => 'http://impact.brighterplanet.com/emitters.json',
26
+ 'certified_emitters' => 'http://certified.impact.brighterplanet.com/emitters.json',
28
27
  'resources' => 'http://data.brighterplanet.com/resources.json',
29
- 'protocols' => 'http://carbon.brighterplanet.com/protocols.json',
28
+ 'protocols' => 'http://impact.brighterplanet.com/protocols.json',
30
29
  }.freeze
31
30
 
32
31
  # sabshere 2/4/11 obv these have to be updated with some regularity
@@ -66,56 +65,29 @@ module BrighterPlanet
66
65
  # Clear out any cached values
67
66
  def refresh
68
67
  # instance_variables.each { |ivar_name| instance_variable_set ivar_name, nil }
69
- clear_method_cache :authoritative_value_or_fallback
68
+ cache_method_clear :authoritative_value_or_fallback
70
69
  end
71
70
 
72
71
  # for cache_method
73
- HASH = 'BrighterPlanet::Metadata.instance'.hash
74
- def method_cache_hash
75
- HASH
72
+ def as_cache_key
73
+ 'BrighterPlanet::Metadata.instance'
76
74
  end
77
75
 
78
76
  private
79
-
80
- autoload :Cm1Authority, 'brighter_planet_metadata/cm1_authority'
81
- def cm1_authority
82
- Cm1Authority.instance
83
- end
84
-
85
- autoload :Data1Authority, 'brighter_planet_metadata/data1_authority'
86
- def data1_authority
87
- Data1Authority.instance
88
- end
89
-
90
- def authorities
91
- [ cm1_authority, data1_authority ]
92
- end
93
-
77
+
94
78
  def deep_copy_of_authoritative_value_or_fallback(k)
95
- v = authoritative_value_or_fallback k
96
- case v
97
- when ::Hash
98
- ::Hash[(v.map { |k, vv| [ k.to_s.dup, vv.to_s.dup] })]
99
- when ::Array
100
- v.map { |vv| vv.to_s.dup }
101
- when ::String, ::Symbol
102
- v.to_s.dup
103
- else
104
- raise "i only handle arrays of strings, hashes of strings, and strings"
105
- end
79
+ authoritative_value_or_fallback(k).clone
106
80
  end
107
81
 
108
82
  # Used internally to pull a live list of emitters/datasets/etc. or fall back to a static one.
109
83
  def authoritative_value_or_fallback(k)
110
84
  k = k.to_s
111
- if (authority = authorities.detect { |a| a.authority? k })
112
- authority.send k
113
- elsif ::ENV['BRIGHTER_PLANET_METADATA_FALLBACKS_ONLY'] == 'true'
85
+ if ::ENV['BRIGHTER_PLANET_METADATA_FALLBACKS_ONLY'] == 'true'
114
86
  $stderr.puts %{ENV['BRIGHTER_PLANET_METADATA_FALLBACKS_ONLY'] == 'true', so using fallback value for '#{k}'}
115
87
  FALLBACK[k]
116
88
  else
117
89
  begin
118
- hsh = ::ActiveSupport::JSON.decode eat(LIVE_URL[k])
90
+ hsh = ::MultiJson.decode ::Net::HTTP.get(::URI.parse(LIVE_URL[k]))
119
91
  kk = (k == 'certified_emitters') ? 'emitters' : k # the live certified response will contain an 'emitters' key
120
92
  raise unless hsh.has_key? kk
121
93
  hsh[kk]
@@ -1,3 +1,3 @@
1
1
  module BrighterPlanetMetadata
2
- VERSION = "0.0.16"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'cache_method'
2
+ require 'brighter_planet_metadata/metadata'
2
3
 
3
4
  module BrighterPlanet
4
- autoload :Metadata, 'brighter_planet_metadata/metadata'
5
5
  def self.metadata
6
6
  Metadata.instance
7
7
  end
data/test/helper.rb CHANGED
@@ -2,44 +2,21 @@ require 'rubygems'
2
2
  require 'bundler'
3
3
  Bundler.setup
4
4
  require 'test/unit'
5
- require 'fakeweb'
6
- require 'fakefs/safe'
5
+ require 'webmock/test_unit'
7
6
  require 'fileutils'
8
- require 'active_support/string_inquirer'
9
7
  $LOAD_PATH.unshift(File.dirname(__FILE__))
10
8
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
11
9
  require 'brighter_planet_metadata'
10
+
12
11
  class Test::Unit::TestCase
13
12
  def setup
14
13
  BrighterPlanet.metadata.refresh
15
- FakeWeb.clean_registry
16
- FakeWeb.allow_net_connect = false
17
- Rails.application.certified = false
18
- Rails.root = '/var/www/myapp'
19
- Rails.env = ActiveSupport::StringInquirer.new 'development'
14
+ WebMock.enable!
15
+ WebMock.disable_net_connect!
20
16
  end
21
17
  def teardown
22
- FakeFS::FileSystem.clear
23
- FakeFS.deactivate!
24
- FakeWeb.allow_net_connect = true
25
- Rails.application.certified = false
26
- Rails.root = nil
27
- end
28
- end
29
-
30
- require 'singleton'
31
- require 'active_support/core_ext/module'
32
- module Rails
33
- mattr_accessor :root, :env
34
- def self.application
35
- FakeApplication.instance
36
- end
37
- class FakeApplication
38
- include ::Singleton
39
- attr_writer :certified
40
- def certified?
41
- @certified == true
42
- end
18
+ WebMock.reset!
19
+ WebMock.disable!
43
20
  end
44
21
  end
45
22
 
@@ -3,19 +3,14 @@ require 'helper'
3
3
  class TestFallback < Test::Unit::TestCase
4
4
  def setup
5
5
  super
6
- FakeWeb.clean_registry
7
- FakeWeb.allow_net_connect = false
8
6
  [
9
7
  'http://data.brighterplanet.com/datasets.json',
10
- 'http://carbon.brighterplanet.com/emitters.json',
11
- 'http://certified.carbon.brighterplanet.com/emitters.json',
8
+ 'http://impact.brighterplanet.com/emitters.json',
9
+ 'http://certified.impact.brighterplanet.com/emitters.json',
12
10
  'http://data.brighterplanet.com/resources.json',
13
- 'http://carbon.brighterplanet.com/protocols.json',
11
+ 'http://impact.brighterplanet.com/protocols.json',
14
12
  ].each do |url|
15
- FakeWeb.register_uri :get,
16
- url,
17
- :status => ["500", "Urg"],
18
- :body => nil
13
+ WebMock.stub_request(:get, url).to_return(:status => 500)
19
14
  end
20
15
  end
21
16
 
@@ -1,29 +1,22 @@
1
1
  require 'helper'
2
2
 
3
- require 'active_support/json/encoding'
4
-
5
3
  class TestLiveRemote < Test::Unit::TestCase
6
4
  def setup
7
5
  super
8
- FakeWeb.clean_registry
9
- FakeWeb.allow_net_connect = false
10
6
  {
11
7
  'http://data.brighterplanet.com/datasets.json' => { 'datasets' => %w{ LiveRemoteDataset } },
12
- 'http://carbon.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteEmitter } },
13
- 'http://certified.carbon.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteCertifiedEmitter } },
8
+ 'http://impact.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteEmitter } },
9
+ 'http://certified.impact.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteCertifiedEmitter } },
14
10
  'http://data.brighterplanet.com/resources.json' => { 'resources' => %w{ LiveRemoteResource } },
15
- 'http://carbon.brighterplanet.com/protocols.json' => { 'protocols' => { 'fooprotocol' => 'Foo Protocol' } },
11
+ 'http://impact.brighterplanet.com/protocols.json' => { 'protocols' => { 'fooprotocol' => 'Foo Protocol' } },
16
12
  }.each do |url, hsh|
17
- FakeWeb.register_uri :get,
18
- url,
19
- :status => ["200", "OK"],
20
- :body => hsh.to_json
13
+ WebMock.stub_request(:get, url).to_return(:status => 200, :body => MultiJson.encode(hsh))
21
14
  end
22
15
  end
23
16
 
24
17
  def test_refresh
25
18
  assert ::BrighterPlanet.metadata.emitters.include?('LiveRemoteEmitter')
26
- FakeWeb.register_uri :get, 'http://carbon.brighterplanet.com/emitters.json', :status => ["200", "OK"], :body => { 'emitters' => %w{LiveRemoteRefreshedEmitter}}.to_json
19
+ WebMock.stub_request(:get, 'http://impact.brighterplanet.com/emitters.json').to_return(:status => 200, :body => MultiJson.encode({ 'emitters' => %w{LiveRemoteRefreshedEmitter}}))
27
20
 
28
21
  # still the old value because it's cached...
29
22
  assert ::BrighterPlanet.metadata.emitters.include?('LiveRemoteEmitter')
@@ -3,9 +3,7 @@ require 'helper'
3
3
  class TestMemoryLeak < Test::Unit::TestCase
4
4
  def setup
5
5
  super
6
- FakeWeb.clean_registry
7
- FakeWeb.allow_net_connect = false
8
- FakeWeb.register_uri :get, 'http://carbon.brighterplanet.com/emitters.json', :status => ["500", "Urg"], :body => nil
6
+ WebMock.stub_request(:get, 'http://impact.brighterplanet.com/emitters.json').to_return(:status => 500)
9
7
  end
10
8
 
11
9
  def test_attack_array
data/test/test_real.rb CHANGED
@@ -2,10 +2,8 @@ require 'helper'
2
2
 
3
3
  class TestReal < Test::Unit::TestCase
4
4
  def setup
5
- super
5
+ WebMock.disable!
6
6
  BrighterPlanet.metadata.refresh
7
- FakeWeb.clean_registry
8
- FakeWeb.allow_net_connect = true
9
7
  $old_fallback = BrighterPlanet::Metadata::FALLBACK
10
8
  silence_warnings { BrighterPlanet::Metadata.const_set 'FALLBACK', Hash.new([]) }
11
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brighter_planet_metadata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,22 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-21 00:00:00.000000000Z
13
+ date: 2012-03-08 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: eat
17
- requirement: &2155032520 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: *2155032520
26
15
  - !ruby/object:Gem::Dependency
27
16
  name: activesupport
28
- requirement: &2155031760 !ruby/object:Gem::Requirement
17
+ requirement: &2169290140 !ruby/object:Gem::Requirement
29
18
  none: false
30
19
  requirements:
31
20
  - - ! '>='
@@ -33,10 +22,10 @@ dependencies:
33
22
  version: 2.3.4
34
23
  type: :runtime
35
24
  prerelease: false
36
- version_requirements: *2155031760
25
+ version_requirements: *2169290140
37
26
  - !ruby/object:Gem::Dependency
38
27
  name: i18n
39
- requirement: &2155031100 !ruby/object:Gem::Requirement
28
+ requirement: &2169289720 !ruby/object:Gem::Requirement
40
29
  none: false
41
30
  requirements:
42
31
  - - ! '>='
@@ -44,10 +33,10 @@ dependencies:
44
33
  version: '0'
45
34
  type: :runtime
46
35
  prerelease: false
47
- version_requirements: *2155031100
36
+ version_requirements: *2169289720
48
37
  - !ruby/object:Gem::Dependency
49
38
  name: cache_method
50
- requirement: &2155030640 !ruby/object:Gem::Requirement
39
+ requirement: &2169289260 !ruby/object:Gem::Requirement
51
40
  none: false
52
41
  requirements:
53
42
  - - ! '>='
@@ -55,73 +44,18 @@ dependencies:
55
44
  version: '0'
56
45
  type: :runtime
57
46
  prerelease: false
58
- version_requirements: *2155030640
59
- - !ruby/object:Gem::Dependency
60
- name: brighter_planet_deploy
61
- requirement: &2155030140 !ruby/object:Gem::Requirement
62
- none: false
63
- requirements:
64
- - - ! '>='
65
- - !ruby/object:Gem::Version
66
- version: '0'
67
- type: :development
68
- prerelease: false
69
- version_requirements: *2155030140
70
- - !ruby/object:Gem::Dependency
71
- name: fakeweb
72
- requirement: &2155029500 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- type: :development
79
- prerelease: false
80
- version_requirements: *2155029500
47
+ version_requirements: *2169289260
81
48
  - !ruby/object:Gem::Dependency
82
- name: test-unit
83
- requirement: &2155028640 !ruby/object:Gem::Requirement
49
+ name: multi_json
50
+ requirement: &2169288800 !ruby/object:Gem::Requirement
84
51
  none: false
85
52
  requirements:
86
53
  - - ! '>='
87
54
  - !ruby/object:Gem::Version
88
55
  version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: *2155028640
92
- - !ruby/object:Gem::Dependency
93
- name: fakefs
94
- requirement: &2155023600 !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
97
- - - ! '>='
98
- - !ruby/object:Gem::Version
99
- version: '0'
100
- type: :development
101
- prerelease: false
102
- version_requirements: *2155023600
103
- - !ruby/object:Gem::Dependency
104
- name: earth
105
- requirement: &2155022580 !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- type: :development
112
- prerelease: false
113
- version_requirements: *2155022580
114
- - !ruby/object:Gem::Dependency
115
- name: rake
116
- requirement: &2155021260 !ruby/object:Gem::Requirement
117
- none: false
118
- requirements:
119
- - - ! '>='
120
- - !ruby/object:Gem::Version
121
- version: '0'
122
- type: :development
56
+ type: :runtime
123
57
  prerelease: false
124
- version_requirements: *2155021260
58
+ version_requirements: *2169288800
125
59
  description: What emitters (carbon models), resources (data classes), datasets, etc.
126
60
  we offer.
127
61
  email:
@@ -138,14 +72,10 @@ files:
138
72
  - bin/brighter_planet_metadata
139
73
  - brighter_planet_metadata.gemspec
140
74
  - lib/brighter_planet_metadata.rb
141
- - lib/brighter_planet_metadata/cm1_authority.rb
142
- - lib/brighter_planet_metadata/data1_authority.rb
143
75
  - lib/brighter_planet_metadata/metadata.rb
144
76
  - lib/brighter_planet_metadata/version.rb
145
77
  - test/helper.rb
146
78
  - test/test_fallback.rb
147
- - test/test_live_cm1.rb
148
- - test/test_live_data1.rb
149
79
  - test/test_live_remote.rb
150
80
  - test/test_memory_leak.rb
151
81
  - test/test_real.rb
@@ -169,15 +99,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
99
  version: '0'
170
100
  requirements: []
171
101
  rubyforge_project: brighter_planet_metadata
172
- rubygems_version: 1.8.10
102
+ rubygems_version: 1.8.15
173
103
  signing_key:
174
104
  specification_version: 3
175
105
  summary: Names of Brighter Planet things
176
106
  test_files:
177
107
  - test/helper.rb
178
108
  - test/test_fallback.rb
179
- - test/test_live_cm1.rb
180
- - test/test_live_data1.rb
181
109
  - test/test_live_remote.rb
182
110
  - test/test_memory_leak.rb
183
111
  - test/test_real.rb
112
+ has_rdoc:
@@ -1,40 +0,0 @@
1
- require 'singleton'
2
- module BrighterPlanet
3
- class Metadata
4
- class Cm1Authority
5
- include ::Singleton
6
- def authority?(method_id)
7
- return unless defined?(::Rails) and ::Rails.env.production? and brighter_planet_server?
8
- method_id = method_id.to_s
9
- if method_id == 'certified_emitters'
10
- ::Rails.application.certified?
11
- else
12
- respond_to? method_id
13
- end
14
- end
15
- def emitters
16
- ary = []
17
- ::ObjectSpace.each_object(::BrighterPlanet::Emitter) do |obj|
18
- ary.push obj.name.demodulize
19
- end
20
- ary
21
- end
22
- def certified_emitters
23
- emitters
24
- end
25
- def protocols
26
- emitters.map(&:constantize).map(&:protocols).flatten.uniq.inject({}) do |memo, p|
27
- memo[p] = ::File.read(::File.join(::Rails.root, 'app', 'views', 'protocols', 'names', "_#{p}.html.erb")).strip
28
- memo
29
- end
30
- end
31
- private
32
- def brighter_planet_server?
33
- require 'brighter_planet_deploy'
34
- ::BrighterPlanet.deploy.servers.me.service == 'Cm1'
35
- rescue ::Exception
36
- false
37
- end
38
- end
39
- end
40
- end
@@ -1,25 +0,0 @@
1
- require 'singleton'
2
- module BrighterPlanet
3
- class Metadata
4
- class Data1Authority
5
- include ::Singleton
6
- def authority?(method_id)
7
- return unless defined?(::Rails) and ::Rails.env.production? and brighter_planet_server?
8
- respond_to? method_id
9
- end
10
- def resources
11
- ::Earth.resources.sort
12
- end
13
- def datasets
14
- ::Dir[::File.expand_path(::File.join(::Rails.root, 'app', 'models', '**', '*.rb'))].select { |f| ::File.read(f) =~ /class [\:A-Za-z0-9]+ < Dataset/ }.map { |path| ::File.basename(path, '.rb').camelcase }.sort
15
- end
16
- private
17
- def brighter_planet_server?
18
- require 'brighter_planet_deploy'
19
- ::BrighterPlanet.deploy.servers.me.service == 'Data1'
20
- rescue ::Exception
21
- false
22
- end
23
- end
24
- end
25
- end
@@ -1,60 +0,0 @@
1
- require 'helper'
2
-
3
- module BrighterPlanet
4
- module Emitter
5
- end
6
- module LiveCm1Emitter
7
- extend BrighterPlanet::Emitter
8
- end
9
- end
10
-
11
- class TestLiveCm1 < Test::Unit::TestCase
12
- def setup
13
- super
14
- FakeFS.activate!
15
- Rails.env = ActiveSupport::StringInquirer.new 'production'
16
- Rails.root = '/data/edge/current'
17
- FileUtils.mkdir_p '/data/edge/current/config/brighter_planet_deploy'
18
- FileUtils.mkdir_p '/data/edge/current/public/brighter_planet_deploy'
19
- File.open('/data/edge/current/config/brighter_planet_deploy/service', 'w') { |f| f.write 'Cm1' }
20
- end
21
-
22
- def test_self_awareness
23
- assert ::Rails.env.production?
24
- assert_equal 'Cm1', ::BrighterPlanet.deploy.servers.me.service
25
- end
26
-
27
- def test_authority
28
- assert ::BrighterPlanet::Metadata::Cm1Authority.instance.authority?('emitters')
29
-
30
- # you don't have authority to say what's certified...
31
- assert !::BrighterPlanet::Metadata::Cm1Authority.instance.authority?('certified_emitters')
32
-
33
- # now you do
34
- Rails.application.certified = true
35
- assert ::BrighterPlanet::Metadata::Cm1Authority.instance.authority?('certified_emitters')
36
- ensure
37
- Rails.application.certified = false
38
- end
39
-
40
- def test_emitters
41
- assert_equal %w{LiveCm1Emitter}, ::BrighterPlanet.metadata.emitters
42
- end
43
-
44
- def test_what_must_come_from_other_sources
45
- assert_equal ::BrighterPlanet::Metadata::FALLBACK['resources'], ::BrighterPlanet.metadata.resources
46
- end
47
-
48
- # note: you still get a list of certified emitters! the point is that you, as the edge server, don't decide which ones they are
49
- # in other words, nothing is ever certified unless Rails.application.certified?
50
- def test_certified_emitters_as_if_on_edge
51
- assert_equal ::BrighterPlanet::Metadata::FALLBACK['certified_emitters'], ::BrighterPlanet.metadata.certified_emitters
52
- end
53
-
54
- def test_certified_emitters_as_if_on_certified
55
- Rails.application.certified = true
56
- assert_equal %w{LiveCm1Emitter}, ::BrighterPlanet.metadata.certified_emitters
57
- ensure
58
- Rails.application.certified = false
59
- end
60
- end
@@ -1,72 +0,0 @@
1
- require 'helper'
2
- require 'earth'
3
-
4
- class FakeEarth
5
- def self.resources
6
- [ 'LiveData1Resource' ]
7
- end
8
- end
9
-
10
- class TestLiveData1 < Test::Unit::TestCase
11
- def setup
12
- super
13
- FakeFS.activate!
14
-
15
- # faking resources
16
- eval %{
17
- ::OldEarth = ::Earth
18
- ::Earth = ::FakeEarth
19
- }
20
-
21
- # faking deploy
22
- Rails.env = ActiveSupport::StringInquirer.new 'production'
23
- Rails.root = '/var/www/data1/current'
24
- FileUtils.mkdir_p '/var/www/data1/current/config/brighter_planet_deploy'
25
- FileUtils.mkdir_p '/var/www/data1/current/public/brighter_planet_deploy'
26
- File.open('/var/www/data1/current/config/brighter_planet_deploy/service', 'w') { |f| f.write 'Data1' }
27
-
28
- # FAKING DATASETS
29
- eval "class ::Dataset; end"
30
- fake_dataset_path = File.join ::Rails.root, 'app', 'models', 'live_data1_dataset.rb'
31
- FileUtils.mkdir_p File.dirname(fake_dataset_path)
32
- File.open(fake_dataset_path, 'w') { |f| f.write "class ::LiveData1Dataset < Dataset; end"}
33
- eval File.read(fake_dataset_path) unless defined?(::LiveData1Dataset)
34
- end
35
-
36
- def teardown
37
- super
38
- eval %{
39
- ::Earth = ::OldEarth
40
- }
41
- end
42
-
43
- def test_self_awareness
44
- assert ::Rails.env.production?
45
- assert_equal 'Data1', ::BrighterPlanet.deploy.servers.me.service
46
- end
47
-
48
- def test_authority
49
- assert ::BrighterPlanet.metadata.send(:data1_authority).authority?('resources')
50
- end
51
-
52
- def test_resources
53
- assert_equal %w{LiveData1Resource}, ::BrighterPlanet.metadata.resources
54
- end
55
-
56
- def test_datasets
57
- assert_equal %w{LiveData1Dataset}, ::BrighterPlanet.metadata.datasets
58
- end
59
-
60
- def test_what_must_come_from_other_sources
61
- assert_equal ::BrighterPlanet::Metadata::FALLBACK['emitters'], ::BrighterPlanet.metadata.emitters
62
- end
63
-
64
- def test_inflection
65
- assert_equal 'GreenhouseGases', 'GreenhouseGas'.pluralize
66
- assert_equal 'greenhouse_gases', 'greenhouse_gas'.pluralize
67
- assert_equal 'GreenhouseGas', 'GreenhouseGases'.singularize
68
- assert_equal 'Aircraft', 'Aircraft'.pluralize
69
- assert_equal 'aircraft', 'aircraft'.pluralize
70
- assert_equal 'Aircraft', 'Aircraft'.singularize
71
- end
72
- end