Rubygems | Latest Versions for sniffhttps://rubygems.org/gems2023-09-28T03:16:12Zsniff (1.1.1)https://rubygems.org/gems/sniff/versions/1.1.12012-11-07T13:10:18ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (1.1.0)https://rubygems.org/gems/sniff/versions/1.1.02012-11-06T22:24:37ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (1.0.1)https://rubygems.org/gems/sniff/versions/1.0.12012-08-03T21:40:35ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (1.0.0)https://rubygems.org/gems/sniff/versions/1.0.02012-08-03T21:18:53ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.12)https://rubygems.org/gems/sniff/versions/0.11.122012-04-18T21:42:25ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.11)https://rubygems.org/gems/sniff/versions/0.11.112012-03-05T09:08:01ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.10)https://rubygems.org/gems/sniff/versions/0.11.102012-02-02T02:40:23ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.9)https://rubygems.org/gems/sniff/versions/0.11.92012-02-01T20:19:23ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.8)https://rubygems.org/gems/sniff/versions/0.11.82012-01-27T22:15:35ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.7)https://rubygems.org/gems/sniff/versions/0.11.72011-12-22T22:59:33ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.6)https://rubygems.org/gems/sniff/versions/0.11.62011-12-16T20:10:02ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.5)https://rubygems.org/gems/sniff/versions/0.11.52011-12-01T03:00:27ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.4)https://rubygems.org/gems/sniff/versions/0.11.42011-11-09T03:44:51ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.3)https://rubygems.org/gems/sniff/versions/0.11.32011-11-08T19:18:14ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.2)https://rubygems.org/gems/sniff/versions/0.11.22011-10-25T13:28:22ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.1)https://rubygems.org/gems/sniff/versions/0.11.12011-10-11T00:27:31ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.11.0)https://rubygems.org/gems/sniff/versions/0.11.02011-10-10T19:01:59ZDerek KastnerProvides development and test environment for Brighter Planet's impact model libraries.
Provides development and test environment for Brighter Planet's impact model libraries. sniff (0.10.1)https://rubygems.org/gems/sniff/versions/0.10.12011-10-05T15:00:31ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.10.0)https://rubygems.org/gems/sniff/versions/0.10.02011-09-29T20:49:53ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.9.0)https://rubygems.org/gems/sniff/versions/0.9.02011-09-28T20:45:25ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.7)https://rubygems.org/gems/sniff/versions/0.8.72011-08-09T21:09:08ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.6)https://rubygems.org/gems/sniff/versions/0.8.62011-07-20T00:34:03ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.5)https://rubygems.org/gems/sniff/versions/0.8.52011-07-14T18:28:55ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.4)https://rubygems.org/gems/sniff/versions/0.8.42011-07-08T15:56:26ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.3)https://rubygems.org/gems/sniff/versions/0.8.32011-06-17T16:11:44ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.2)https://rubygems.org/gems/sniff/versions/0.8.22011-06-13T19:08:38ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.1)https://rubygems.org/gems/sniff/versions/0.8.12011-06-06T19:36:10ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.8.0)https://rubygems.org/gems/sniff/versions/0.8.02011-06-03T14:02:38ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.7.3)https://rubygems.org/gems/sniff/versions/0.7.32011-05-27T18:29:34ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.7.2)https://rubygems.org/gems/sniff/versions/0.7.22011-05-27T16:43:51ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.7.1)https://rubygems.org/gems/sniff/versions/0.7.12011-05-27T15:55:04ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.7.0)https://rubygems.org/gems/sniff/versions/0.7.02011-05-24T18:12:27ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.8)https://rubygems.org/gems/sniff/versions/0.6.82011-05-19T14:38:13ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.7)https://rubygems.org/gems/sniff/versions/0.6.72011-05-16T22:41:15ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.6)https://rubygems.org/gems/sniff/versions/0.6.62011-03-15T21:24:53ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.5)https://rubygems.org/gems/sniff/versions/0.6.52011-03-08T16:11:41ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.4)https://rubygems.org/gems/sniff/versions/0.6.42011-03-07T19:41:33ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.3)https://rubygems.org/gems/sniff/versions/0.6.32011-03-04T23:34:30ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.2)https://rubygems.org/gems/sniff/versions/0.6.22011-02-23T20:41:29ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.1)https://rubygems.org/gems/sniff/versions/0.6.12011-02-17T15:37:26ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.6.0)https://rubygems.org/gems/sniff/versions/0.6.02011-02-14T19:36:37ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.5.3)https://rubygems.org/gems/sniff/versions/0.5.32011-01-27T22:13:07ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.5.2)https://rubygems.org/gems/sniff/versions/0.5.22011-01-27T21:59:16ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.5.1)https://rubygems.org/gems/sniff/versions/0.5.12011-01-27T21:36:57ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.5.0)https://rubygems.org/gems/sniff/versions/0.5.02011-01-25T14:52:41ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.12)https://rubygems.org/gems/sniff/versions/0.4.122011-01-07T20:22:23ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.11)https://rubygems.org/gems/sniff/versions/0.4.112010-12-30T17:55:06ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.10)https://rubygems.org/gems/sniff/versions/0.4.102010-12-22T19:35:43ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.9)https://rubygems.org/gems/sniff/versions/0.4.92010-12-21T15:55:36ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.7)https://rubygems.org/gems/sniff/versions/0.4.72010-12-17T17:18:29ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.6)https://rubygems.org/gems/sniff/versions/0.4.62010-12-16T22:06:31ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.5)https://rubygems.org/gems/sniff/versions/0.4.52010-12-15T22:01:02ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.4)https://rubygems.org/gems/sniff/versions/0.4.42010-12-14T19:06:33ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.3)https://rubygems.org/gems/sniff/versions/0.4.32010-11-23T23:44:08ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.2)https://rubygems.org/gems/sniff/versions/0.4.22010-11-23T22:52:03ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.1)https://rubygems.org/gems/sniff/versions/0.4.12010-11-23T21:34:27ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.4.0)https://rubygems.org/gems/sniff/versions/0.4.02010-11-23T20:41:11ZDerek KastnerTest support for Brighter Planet carbon gems
Provides development and test environment for emitter gems sniff (0.3.1)https://rubygems.org/gems/sniff/versions/0.3.12010-11-22T16:46:45ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.3.0)https://rubygems.org/gems/sniff/versions/0.3.02010-11-19T22:18:43ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.8)https://rubygems.org/gems/sniff/versions/0.2.82010-11-06T14:21:00ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.7)https://rubygems.org/gems/sniff/versions/0.2.72010-11-05T23:04:10ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.6)https://rubygems.org/gems/sniff/versions/0.2.62010-11-05T16:12:46ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.5)https://rubygems.org/gems/sniff/versions/0.2.52010-11-05T00:59:21ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.4)https://rubygems.org/gems/sniff/versions/0.2.42010-11-05T00:36:56ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.3)https://rubygems.org/gems/sniff/versions/0.2.32010-10-19T21:00:49ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.2)https://rubygems.org/gems/sniff/versions/0.2.22010-10-19T20:49:34ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.1)https://rubygems.org/gems/sniff/versions/0.2.12010-10-18T19:10:26ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.2.0)https://rubygems.org/gems/sniff/versions/0.2.02010-09-23T17:56:11ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.17)https://rubygems.org/gems/sniff/versions/0.1.172010-09-21T20:33:06ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.16)https://rubygems.org/gems/sniff/versions/0.1.162010-09-20T19:20:22ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.15)https://rubygems.org/gems/sniff/versions/0.1.152010-09-20T19:02:48ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.14)https://rubygems.org/gems/sniff/versions/0.1.142010-09-13T21:23:15ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.13)https://rubygems.org/gems/sniff/versions/0.1.132010-09-13T18:21:56ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.12)https://rubygems.org/gems/sniff/versions/0.1.122010-09-07T21:42:55ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.10)https://rubygems.org/gems/sniff/versions/0.1.102010-08-30T18:01:56ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.9)https://rubygems.org/gems/sniff/versions/0.1.92010-08-25T14:25:49ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.8)https://rubygems.org/gems/sniff/versions/0.1.82010-08-20T15:59:45ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.7)https://rubygems.org/gems/sniff/versions/0.1.72010-08-13T17:54:59ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.6)https://rubygems.org/gems/sniff/versions/0.1.62010-08-11T14:31:19ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.5)https://rubygems.org/gems/sniff/versions/0.1.52010-08-10T19:13:57ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.4)https://rubygems.org/gems/sniff/versions/0.1.42010-08-06T22:51:03ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.3)https://rubygems.org/gems/sniff/versions/0.1.32010-08-04T17:24:09ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.2)https://rubygems.org/gems/sniff/versions/0.1.22010-08-03T21:18:51ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.1)https://rubygems.org/gems/sniff/versions/0.1.12010-08-03T15:25:21ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.1.0)https://rubygems.org/gems/sniff/versions/0.1.02010-08-03T14:24:57ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.0.19)https://rubygems.org/gems/sniff/versions/0.0.192010-07-29T21:28:40ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.0.18)https://rubygems.org/gems/sniff/versions/0.0.182010-07-29T18:40:31ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.0.17)https://rubygems.org/gems/sniff/versions/0.0.172010-07-28T13:26:20ZDerek KastnerTest support for Brighter Planet carbon gems
Provides data environment for emitter gems sniff (0.0.15)https://rubygems.org/gems/sniff/versions/0.0.152010-07-23T22:07:44ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.14)https://rubygems.org/gems/sniff/versions/0.0.142010-07-23T19:05:26ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.13)https://rubygems.org/gems/sniff/versions/0.0.132010-07-23T17:55:18ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.12)https://rubygems.org/gems/sniff/versions/0.0.122010-07-23T17:07:53ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.11)https://rubygems.org/gems/sniff/versions/0.0.112010-07-23T13:45:25ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.10)https://rubygems.org/gems/sniff/versions/0.0.102010-07-23T03:49:56ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.9)https://rubygems.org/gems/sniff/versions/0.0.92010-07-23T03:30:41ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.8)https://rubygems.org/gems/sniff/versions/0.0.82010-07-23T02:36:40ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.7)https://rubygems.org/gems/sniff/versions/0.0.72010-07-22T20:41:20ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.6)https://rubygems.org/gems/sniff/versions/0.0.62010-07-22T13:51:38ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Development and testing environment for Brighter Planet emitters.
## Background
Brighter Planet's emitters, such as [`flight`](http://github.com/brighterplanet/flight), inhabit a complex production runtime environment backing its [emission estimates web service](http://carbon.brighterplanet.com). Sniff simulates this environment, including representative data, fixtures, and other supporting code, so that developers can test improvements to the emitters before submitting them back to Brighter Planet.
### Caution
The data and other supporting information in the sniff environment is only representative of production data and in many cases is purely fictional, contrived to return predictable results in tests. Emission estimates and other information gleaned from execution within this environment will undoubtedly be--to put it simply--wrong. For real numbers, always use live queries to the [emission estimate web service](http://carbon.brighterplanet.com).
## Usage
Sniff is never used directly but rather as a requirement of a specific emitter. Current production emitters include, for example:
* [Automobile](http://github.com/brighterplanet/automobile)
* [Flight](http://github.com/brighterplanet/flight)
* [Residence](http://github.com/brighterplanet/residence)
For a complete list, see the emission estimate service's [documentation](http://carbon.brighterplanet.com/use).
## The emitter
An emitter is a software model of a real-world emission source, like a flight. Brighter Planet's emitter libraries each comprise a carbon model, an attribute curation policy, a persistence schema, and a summarization strategy.
### Persistence schema
Although the production environment does not persist emitter instances, we nevertheless define emitter schemas to enable ActiveRecord assocations. An emitter's schema is defined in `lib/*emitter_name*/data.rb` within an emitter library. For example, here is [flight's schema](http://github.com/brighterplanet/flight/blob/master/lib/flight/data.rb).
Schema are defined using a DSL provided by the [data_miner](http://github.com/seamusabshere/data_miner) library.
### Attribute curation policy
This defines how an emitter's attributes (initialized and stored with respect to the schema) are curated and decorated into a snapshot for later use by the carbon model. The policy is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's characterization](http://github.com/brighterplanet/flight/blob/master/lib/flight/characterization.rb).
Characterizations are defined using a DSL provided by the [characterizable](http://github.com/seamusabshere/characterizable) library.
### Carbon model
An emission estimate is obtained by giving an emitter's curated characteristics as input to an execution of its carbon model. The model is defined in `lib/*emitter_name*/characterization.rb` within an emitter library. For example, here is [flight's carbon model](http://github.com/brighterplanet/flight/blob/master/lib/flight/carbon_model.rb).
Carbon models are defined using a DSL provided by the [leap](http://github.com/rossmeissl/leap) library.
### Summarization strategy
Summaries are human-friendly descriptions of characterized emitters. The strategy is defined in `lib/*emitter_name*/summarization.rb` within an emitter library. For example, here is [flight's summarization strategy](http://github.com/brighterplanet/flight/blob/master/lib/flight/summarization.rb).
Summarizations are defined using a DSL provided by the [summary_judgement](http://github.com/rossmeissl/summary_judgement) library.
## Collaboration cycle
Brighter Planet vigorously encourages collaborative improvement of its emitter libraries. Collaboration requires a (free) GitHub account.
### You
1. Fork the emitter repository on GitHub.
1. Write a test proving the existing implementation's inadequacy. Ensure that the test fails. Commit the test.
1. Improve the code until your new test passes and commit your changes.
1. Push your changes to your GitHub fork.
1. Submit a pull request to brighterplanet.
### Brighter Planet
1. Receive a pull request.
1. Pull changes from forked repository.
1. Ensure tests pass.
1. Review changes for scientific accuracy.
1. Merge changes to master repository and publish.
1. Direct production environment to use new emitter version.
sniff (0.0.5)https://rubygems.org/gems/sniff/versions/0.0.52010-07-20T19:24:25ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Testing environment for Brighter Planet Climate Middleware emission calculation gems.
This gem provides:
* Sample data used for calculations, representative of data found on http://data.brighterplanet.com
* A database/ActiveRecord environment for said data
* References to gems needed by each emitter gem
* An autoloader that will load any models and sample data needed by the emitter gem being tested (see Usage)
# Usage
Within an emitter gem's test setup, you can:
require 'sniff'
Sniff.init '/path/to/emitter_project'
If an emitter gem has its own test models and data, sniff will look for the models in `EMITTER_GEM_DIR/lib/test_support/data_models/` and the data fixtures in `EMITTER_GEM_DIR/lib/test_support/db/fixtures/`. It will also look for a schema in `EMITTER_GEM_DIR/lib/test_support/db/schema.rb`
# How to contribute
Typical contributions will include updates to test data.
1. Fork the project.
1. Make your feature addition or bug fix.
1. Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
1. Send me a pull request. Bonus points for topic branches.
# Local Gems
Sniff depends on several gems, some of which are developed by Brighter Planet. You can tell Sniff or any of the carbon gems to use your local repos in lieu of installed rubygems through the following steps:
Paste the following functions into your ~/.bash_profile
function mod_devgem() {
var="LOCAL_`echo $2 | tr 'a-z' 'A-Z'`"
if [ "$1" == "disable" ]
then
echo "unset $var"
unset $var
else
dir=${3:-"~/$2"}
echo "export $var=$dir"
export $var=$dir
fi
}
function devgems () {
# Usage: devgems [enable|disable] [gemname]
cmd=${1:-"enable"}
if [ -z $2 ]
then
mod_devgem $cmd characterizable
mod_devgem $cmd cohort_scope
mod_devgem $cmd falls_back_on
mod_devgem $cmd leap
mod_devgem $cmd loose_tight_dictionary
mod_devgem $cmd sniff
mod_devgem $cmd data_miner
else
mod_devgem $cmd $2
fi
}
To enable all local gems, run `devgems enable`
To turn off devgems, run `devgems disable`
To turn off a specific gem, run `devgems disable leap`
To turn on a specific gem, run `devgems enable leap`
Typical development process:
cd ~
git clone http://github.com/rossmeissl/leap.git
cd leap
<do some development on leap>
cd ~/sniff
devgems enable leap
rake gemspec
rm -f Gemfile.lock
bundle install
<run tests, e.g. `spec spec`>
sniff (0.0.4)https://rubygems.org/gems/sniff/versions/0.0.42010-07-19T20:42:21ZDerek KastnerTest support for Brighter Planet carbon gems
# sniff
Testing environment for Brighter Planet Climate Middleware emission calculation gems.
This gem provides:
* Sample data used for calculations, representative of data found on http://data.brighterplanet.com
* A database/ActiveRecord environment for said data
* References to gems needed by each emitter gem
* An autoloader that will load any models and sample data needed by the emitter gem being tested (see Usage)
# Usage
Within an emitter gem's test setup, you can:
require 'sniff'
Sniff.init '/path/to/emitter_project'
If an emitter gem has its own test models and data, sniff will look for the models in `EMITTER_GEM_DIR/lib/test_support/data_models/` and the data fixtures in `EMITTER_GEM_DIR/lib/test_support/db/fixtures/`. It will also look for a schema in `EMITTER_GEM_DIR/lib/test_support/db/schema.rb`
# How to contribute
Typical contributions will include updates to test data.
1. Fork the project.
1. Make your feature addition or bug fix.
1. Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
1. Send me a pull request. Bonus points for topic branches.
# Local Gems
Sniff depends on several gems, some of which are developed by Brighter Planet. You can tell Sniff or any of the carbon gems to use your local repos in lieu of installed rubygems through the following steps:
Paste the following functions into your ~/.bash_profile
function mod_devgem() {
var="LOCAL_`echo $2 | tr 'a-z' 'A-Z'`"
if [ "$1" == "disable" ]
then
echo "unset $var"
unset $var
else
dir=${3:-"~/$2"}
echo "export $var=$dir"
export $var=$dir
fi
}
function devgems () {
# Usage: devgems [enable|disable] [gemname]
cmd=${1:-"enable"}
if [ -z $2 ]
then
mod_devgem $cmd characterizable
mod_devgem $cmd cohort_scope
mod_devgem $cmd falls_back_on
mod_devgem $cmd leap
mod_devgem $cmd loose_tight_dictionary
mod_devgem $cmd sniff
mod_devgem $cmd data_miner
else
mod_devgem $cmd $2
fi
}
To enable all local gems, run `devgems enable`
To turn off devgems, run `devgems disable`
To turn off a specific gem, run `devgems disable leap`
To turn on a specific gem, run `devgems enable leap`
Typical development process:
cd ~
git clone http://github.com/rossmeissl/leap.git
cd leap
<do some development on leap>
cd ~/sniff
devgems enable leap
rake gemspec
rm -f Gemfile.lock
bundle install
<run tests, e.g. `spec spec`>