Project

emitter

0.01
No commit activity in last 3 years
No release in over 3 years
A framework for modelling the impact of real-world entities.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Project Readme

emitter

Base module for Brighter Planet's emitters. See the Brighter Planet developer page for details on Brighter Planet's development environment.

Installation

$ gem install emitter

Usage

# my_emitter.rb
require 'emitter'

class MyEmitter
  include BrighterPlanet::Emitter
end

Required modules

Your emitter must define some modules under lib/my_emitter/, they are:

  • lib/my_emitter/impact_model.rb - module MyEmitter::ImpactModel - defines the Leap decisions that calculate an impact.
  • lib/my_emitter/characterization.rb - module MyEmitter::Characterization - defines the Characteristics that describe the model's inputs.
  • lib/my_emitter/data.rb - module MyEmitter::Data - defines the schema definitions for the emitter and DataMiner processes that fetch and store data for the emitter.
  • lib/my_emitter/relationships.rb - module MyEmitter::Relationships - defines the ActiveRecord relationships between the emitter and other Earth models.
  • lib/my_emitter/summarization.rb - moduel MyEmitter::Summarization - defines phrases that describe various attributes (SummaryJudgement descriptors) about an emitter that are displayed on CM1's methodology pages.

Tools

You can use the bp gem to generate the skeleton for a new emitter.

Magic

Emitter, once included, will perform a couple tasks automatically:

  1. It converts committees into characterizations that are not already characterized.
  2. It adds auto_upgrade! and run_data_miner_on_parent_associations! tasks to DataMiner so that a call to MyEmitter.run_data_miner! will update the emitter's schema and run DataMiner tasks on any belongs_to associations.

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • 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)
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright 2010, 2011 Brighter Planet, Inc. See LICENSE and LICENSE-PREAMBLE for details.