title: How do I structure Cucumber framework that operates on several sites?
body: <p>So, I want to write seperate tests for several sites but utilise a single framework to do so. I want to structure my Cucumber framework in a way that all code specific to the particular site is not tied up with overall framework code.</p>
  
  <p>At the moment, I have the following structure:</p>
  
  <pre><code>- features
    - site1_feature.feature 
    - site2_feature.feature
    - step_definitions
      - site1.rb
      - site2.rb 
    - support 
      - config 
        - site1_domain.yaml
        - site2_domain.yaml
      - pages 
        - page_object.rb
        - site1_homepage.rb
        - site2_homepage.rb
      - env.rb
      - world_ext.rb
  </code></pre>
  
  <p>So right now my problem is this:</p>
  
  <p>I can move site1_feature.feature and site1.rb into its own folder, and invoke cucumber on that folder. That's fine, except, everything under the support folder has stuff that belongs to different sites:</p>
  
  <ul>
  <li><p>site1_domain.yaml should go in a folder with the site1 features and
  SDs</p></li>
  <li><p>page_object.rb is a "abstract" class which I use as a superclass to
  make PageObjects, such as the code in site1_homepage.rb which I want
  to package with all the site1 features, etc.</p></li>
  <li><p>env.rb is more general setup code that I want to not be connected to
  any bunch of tests.</p></li>
  </ul>
  
  <p>But Cucumber requires the presence of a support dir in the features directory, so I can't see how to get the general framework stuff:</p>
  
  <ul>
  <li>page_object.rb </li>
  <li>env.rb </li>
  <li>world_ext.rb</li>
  </ul>
  
  <p>seperate from the site-specific test code. Any pointers?</p>