plan_b 0.0.1.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. data/README.md +43 -0
  2. data/Rakefile +13 -0
  3. data/app/assets/images/plan_b/plan_b.png +0 -0
  4. data/app/assets/javascripts/plan_b/application.js +9 -0
  5. data/app/assets/javascripts/plan_b/itineraries/controllers.js +67 -0
  6. data/app/assets/javascripts/plan_b/itineraries/services.js +4 -0
  7. data/app/assets/javascripts/plan_b/plan_b.js +53 -0
  8. data/app/assets/stylesheets/plan_b/application.css.scss +2 -0
  9. data/app/assets/stylesheets/plan_b/foundation_and_overrides.scss +1015 -0
  10. data/app/assets/templates/plan_b/itineraries/edit.html.erb +87 -0
  11. data/app/assets/templates/plan_b/itineraries/new.html.erb +22 -0
  12. data/app/controllers/plan_b/angular_controller.rb +16 -0
  13. data/app/controllers/plan_b/application_controller.rb +5 -0
  14. data/app/controllers/plan_b/hiking_profiles_controller.rb +59 -0
  15. data/app/controllers/plan_b/itineraries_controller.rb +46 -0
  16. data/app/helpers/plan_b/application_helper.rb +4 -0
  17. data/app/helpers/plan_b/itineraries_helper.rb +4 -0
  18. data/app/models/plan_b/hiking_template.rb +7 -0
  19. data/app/models/plan_b/itinerary.rb +15 -0
  20. data/app/models/plan_b/itinerary_template.rb +8 -0
  21. data/app/models/plan_b/template_creator.rb +25 -0
  22. data/app/views/plan_b/angular/index.html.haml +38 -0
  23. data/config/initializers/haml.rb +1 -0
  24. data/config/initializers/wrap_parameters.rb +14 -0
  25. data/config/locales/plan_b.en.yml +31 -0
  26. data/config/routes.rb +20 -0
  27. data/db/migrate/20130408193857_create_plan_b_itineraries.rb +16 -0
  28. data/db/migrate/20130408193858_create_plan_b_itinerary_templates.rb +10 -0
  29. data/db/migrate/20130408193859_create_plan_b_hiking_templates.rb +10 -0
  30. data/lib/plan_b/config.rb +10 -0
  31. data/lib/plan_b/engine.rb +12 -0
  32. data/lib/plan_b/version.rb +3 -0
  33. data/lib/plan_b.rb +5 -0
  34. metadata +161 -0
@@ -0,0 +1,87 @@
1
+ <h1>
2
+ {{ itinerary.title }}
3
+ <small><a href='#' ng-click='addTemplate("hiking")'><%= I18n.translate 'plan_b.itineraries.form.add_hike' %></a></small>
4
+ </h1>
5
+
6
+ <div class="alert-box success" ng-show="flash.success">
7
+ {{ flash.success }}
8
+ </div>
9
+
10
+ <div class="alert-box alert" ng-show="flash.error">
11
+ {{ flash.error }}
12
+ </div>
13
+
14
+ <form>
15
+
16
+ <div ng-repeat="template in itinerary.hiking_templates">
17
+ <fieldset>
18
+ <legend>
19
+ <%= I18n.translate 'plan_b.itineraries.form.legends.hike' %>
20
+ <a href="#" ng-click="removeTemplate($index)">Remove</a>
21
+ </legend>
22
+ <div class="row">
23
+ <div class="large-4 columns">
24
+ <label><%= PlanB::HikingTemplate.human_attribute_name 'start' %></label>
25
+ <input ng-model="template.start">
26
+ </div>
27
+ <div class="large-4 columns">
28
+ <label><%= PlanB::HikingTemplate.human_attribute_name 'end' %></label>
29
+ <input ng-model="template.end">
30
+ </div>
31
+ <div class="large-4 columns">
32
+ <label><%= PlanB::HikingTemplate.human_attribute_name 'distance' %></label>
33
+ <input ng-model="template.distance">
34
+ </div>
35
+ </div>
36
+ </fieldset>
37
+ </div>
38
+
39
+ <fieldset>
40
+ <legend><%= I18n.translate 'plan_b.itineraries.form.legends.details' %></legend>
41
+
42
+ <div class="row">
43
+ <div class="large-12 columns">
44
+ <label>Title</label>
45
+ <input type="text" ng-model="itinerary.title" placeholder="<%= I18n.translate 'plan_b.itineraries.form.new.title_placeholder' %>">
46
+ </div>
47
+ </div>
48
+
49
+ <div class="row">
50
+ <div class="large-6 columns">
51
+ <label><%= PlanB::Itinerary.human_attribute_name('start') %></label>
52
+ <input data-date-format="yyyy-mm-dd" ng-model="itinerary.start" class="date">
53
+ </div>
54
+ <div class="large-6 columns">
55
+ <label><%= PlanB::Itinerary.human_attribute_name('end') %></label>
56
+ <input data-date-format="yyyy-mm-dd" ng-model="itinerary.end" class="date">
57
+ </div>
58
+ </div>
59
+
60
+ <div class="row">
61
+ <div class="large-12 columns">
62
+ <label><%= PlanB::Itinerary.human_attribute_name('preplanning') %></label>
63
+ <textarea ng-model="itinerary.preplanning" placeholder="Enter in some details about what you're planning"></textarea>
64
+ </div>
65
+ </div>
66
+
67
+ <div class="row">
68
+ <div class="large-12 columns">
69
+ <label><%= PlanB::Itinerary.human_attribute_name('summary') %></label>
70
+ <textarea ng-model="itinerary.summary" placeholder="After the trip, enter in a summary of how awesome it was."></textarea>
71
+ </div>
72
+ </div>
73
+
74
+
75
+ <div class="row">
76
+ <div class="large-12 columns">
77
+ <label><input type="checkbox"><span class="custom checkbox"></span> Published?</label>
78
+ </div>
79
+ </div>
80
+ </fieldset>
81
+
82
+ <div class="row">
83
+ <div class="large-3 columns">
84
+ <a href='#' class="button prefix" ng-click="save()"><%= I18n.translate 'plan_b.itineraries.form.edit.submit' %></a>
85
+ </div>
86
+ </div>
87
+ </form>
@@ -0,0 +1,22 @@
1
+ <h1>
2
+ <small>{{ itinerary.title }}</small>
3
+ </h1>
4
+
5
+ <div class="alert-box success" ng-show="flash.success">
6
+ {{ flash.success }}
7
+ </div>
8
+
9
+ <div class="alert-box alert" ng-show="flash.error">
10
+ {{ flash.error }}
11
+ </div>
12
+
13
+ <form>
14
+ <div class="row collapse">
15
+ <div class="large-9 columns">
16
+ <input type="text" ng-model="itinerary.title" placeholder="<%= I18n.translate 'plan_b.itineraries.form.new.title_placeholder' %>">
17
+ </div>
18
+ <div class="large-3 columns">
19
+ <a href='#' class="button prefix" ng-click="save()"><%= I18n.translate 'plan_b.itineraries.form.new.submit' %></a>
20
+ </div>
21
+ </div>
22
+ </form>
@@ -0,0 +1,16 @@
1
+ require_dependency "plan_b/application_controller"
2
+
3
+ module PlanB
4
+ class AngularController < ApplicationController
5
+ before_filter :_authenticate!
6
+
7
+ def index
8
+ end
9
+
10
+ private
11
+
12
+ def _authenticate!
13
+ instance_eval &PlanB::Config.authenticate_with
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ module PlanB
2
+ class ApplicationController < ::ApplicationController
3
+ layout false
4
+ end
5
+ end
@@ -0,0 +1,59 @@
1
+ require_dependency "plan_b/application_controller"
2
+
3
+ module PlanB
4
+ class HikingProfilesController < ApplicationController
5
+
6
+ def show
7
+ @hiking_profile = HikingProfiles.find params[:id]
8
+
9
+ respond_to do |format|
10
+ format.json { render json: @hiking_profile }
11
+ end
12
+ end
13
+
14
+ def new
15
+ @itinerary = Itinerary.new
16
+
17
+ respond_to do |format|
18
+ format.json { render json: @hiking_profile }
19
+ end
20
+ end
21
+
22
+ # POST /itineraries.json
23
+ def create
24
+ @hiking_profile = Itinerary.new(params[:itinerary])
25
+
26
+ respond_to do |format|
27
+ if @hiking_profile.save
28
+ format.json { render json: @hiking_profile, status: :created, location: @hiking_profile }
29
+ else
30
+ format.json { render json: @hiking_profile.errors, status: :unprocessable_entity }
31
+ end
32
+ end
33
+ end
34
+
35
+ # PUT /itineraries/1.json
36
+ def update
37
+ @hiking_profile = Itinerary.find(params[:id])
38
+
39
+ respond_to do |format|
40
+ if @hiking_profile.update_attributes(params[:hiking_profile])
41
+ format.json { head :no_content }
42
+ else
43
+ format.json { render json: @hiking_profile.errors, status: :unprocessable_entity }
44
+ end
45
+ end
46
+ end
47
+
48
+ # DELETE /itineraries/1
49
+ # DELETE /itineraries/1.json
50
+ def destroy
51
+ @itinerary = Itinerary.find(params[:id])
52
+ @itinerary.destroy
53
+
54
+ respond_to do |format|
55
+ format.json { head :no_content }
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,46 @@
1
+ require_dependency "plan_b/application_controller"
2
+
3
+ module PlanB
4
+ class ItinerariesController < ApplicationController
5
+ respond_to :json
6
+
7
+ def index
8
+ @itineraries = Itinerary.all
9
+ respond_with @itineraries
10
+ end
11
+
12
+ def show
13
+ @itinerary = Itinerary.find(params[:id])
14
+ respond_with @itinerary.to_json(include: :hiking_templates)
15
+ end
16
+
17
+ def new
18
+ @itinerary = Itinerary.new
19
+ respond_with @itinerary
20
+ end
21
+
22
+ def create
23
+ @itinerary = PlanB::Itinerary.new params[:itinerary]
24
+ @itinerary.save
25
+ respond_with @itinerary
26
+ end
27
+
28
+ # PUT /itineraries/1.json
29
+ def update
30
+ @itinerary = PlanB::TemplateCreator.new(Itinerary.find(params[:id]), params[:itinerary])
31
+ @itinerary.save
32
+ respond_with @itinerary
33
+ end
34
+
35
+ # DELETE /itineraries/1
36
+ # DELETE /itineraries/1.json
37
+ def destroy
38
+ @itinerary = Itinerary.find(params[:id])
39
+ @itinerary.destroy
40
+
41
+ respond_to do |format|
42
+ format.json { head :no_content }
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,4 @@
1
+ module PlanB
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PlanB
2
+ module ItinerariesHelper
3
+ end
4
+ end
@@ -0,0 +1,7 @@
1
+ module PlanB
2
+ class HikingTemplate < ActiveRecord::Base
3
+ has_one :itinerary_template, as: :template
4
+
5
+ attr_accessible :start, :end, :distance, :distance_unit, :created_at, :updated_at, :id
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ require 'friendly_id'
2
+
3
+ module PlanB
4
+ class Itinerary < ActiveRecord::Base
5
+ extend FriendlyId
6
+ attr_accessible :title, :start, :end, :preplanning, :summary, :published
7
+
8
+ has_many :itinerary_templates, dependent: :destroy
9
+ has_many :hiking_templates, through: :itinerary_templates, source: :template, source_type: 'PlanB::HikingTemplate'
10
+
11
+ friendly_id :title, use: :slugged
12
+
13
+ validates :title, presence: true, uniqueness: true
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ module PlanB
2
+ class ItineraryTemplate < ActiveRecord::Base
3
+ belongs_to :itinerary
4
+ belongs_to :template, polymorphic: true
5
+
6
+ attr_accessible :template
7
+ end
8
+ end
@@ -0,0 +1,25 @@
1
+ module PlanB
2
+ class TemplateCreator
3
+ def initialize itinerary, itinerary_params
4
+ @itinerary = itinerary
5
+ @templates = []
6
+ @itinerary_params = extract_templates(itinerary_params)
7
+ end
8
+
9
+ def save
10
+ @itinerary.update_attributes(@itinerary_params) && create_templates
11
+ end
12
+
13
+ def extract_templates itinerary_params
14
+ @templates << itinerary_params.delete(:hiking_templates)
15
+ itinerary_params
16
+ end
17
+
18
+ def create_templates
19
+ @itinerary.itinerary_templates.destroy_all
20
+ @templates.each do |t|
21
+ @itinerary.itinerary_templates.create(template: PlanB::HikingTemplate.new(t))
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,38 @@
1
+ !!! 5
2
+ %html(ng-app='plan-b' mount-path='#{plan_b.root_path[0..-2]}')
3
+ %head
4
+ %meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"}
5
+ %meta{content: "width=device-width, initial-scale=1.0", name: "viewport"}
6
+ %meta{content: "NONE,NOARCHIVE", name: "robots"}
7
+ %title Plan B
8
+ = csrf_meta_tag
9
+ = stylesheet_link_tag 'plan_b/application', :media => :all
10
+ = javascript_include_tag 'vendor/custom.modernizr'
11
+
12
+ %body
13
+ .alert-box(ng-class="alertType" ng-show="alertShow")
14
+ {{ alertMessage }}
15
+
16
+ .row
17
+ .large-2.columns
18
+ %h1
19
+ = image_tag 'plan_b/plan_b.png'
20
+ .row
21
+ .large-10.push-2.columns
22
+ %div(ng-view)
23
+ .large-2.pull-10.columns(ng-controller="ItinerariesCtrl")
24
+ = PlanB::Itinerary.model_name.human.pluralize
25
+ = link_to t('plan_b.itineraries.create_new'), new_itinerary_path, class: 'button tiny secondary'
26
+ %ul.side-nav
27
+ %li(ng-hide="itineraries.length")
28
+ = t('plan_b.itineraries.none_created')
29
+ %li(ng-repeat="itinerary in itineraries")
30
+ %a(href='/plan_b/itineraries/{{itinerary.id}}/edit') {{itinerary.title}}
31
+ %footer.row
32
+ .large-12.columns
33
+ %hr
34
+ .row
35
+ .large-6.columns
36
+ %p Plan B
37
+
38
+ = javascript_include_tag 'plan_b/application'
@@ -0,0 +1 @@
1
+ require 'haml'
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+ #
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json]
9
+ end
10
+
11
+ # Disable root element in JSON by default.
12
+ ActiveSupport.on_load(:active_record) do
13
+ self.include_root_in_json = false
14
+ end
@@ -0,0 +1,31 @@
1
+ en:
2
+ activerecord:
3
+ attributes:
4
+ plan_b/hiking_template:
5
+ distance: Distance
6
+ end: Ending trailhead
7
+ start: Starting trailhead
8
+ plan_b/itinerary:
9
+ title: Title
10
+ plan_b:
11
+ itineraries:
12
+ types:
13
+ backpacking: Backpacking
14
+ basic: Basic
15
+ climbing: Climbing
16
+ hiking: Hiking
17
+ sight_seeing: Sight seeing
18
+ create_new: Create new
19
+ none_created: You haven't created any itineraries yet.
20
+ form:
21
+ add_hike: Add Hike
22
+ legends:
23
+ details: Details
24
+ hike: Hike
25
+ edit:
26
+ submit: Save Itinerary
27
+ new:
28
+ submit: Create Itinerary
29
+ title_placeholder: Name your itinerary
30
+ trips:
31
+ title: Trips
data/config/routes.rb ADDED
@@ -0,0 +1,20 @@
1
+ PlanB::Engine.routes.draw do
2
+
3
+ class FormatTest
4
+ attr_accessor :mime_type
5
+
6
+ def initialize(format)
7
+ @mime_type = Mime::Type.lookup_by_extension(format)
8
+ end
9
+
10
+ def matches?(request)
11
+ request.format == mime_type
12
+ end
13
+ end
14
+
15
+ resources :hiking_profiles, constraints: FormatTest.new(:json)
16
+ resources :itineraries, constraints: FormatTest.new(:json)
17
+
18
+ get '/*foo', to: 'angular#index', constraints: FormatTest.new(:html)
19
+ root to: 'angular#index', constraints: FormatTest.new(:html)
20
+ end
@@ -0,0 +1,16 @@
1
+ class CreatePlanBItineraries < ActiveRecord::Migration
2
+ def change
3
+ create_table :plan_b_itineraries do |t|
4
+ t.string :title
5
+ t.string :slug
6
+ t.datetime :start
7
+ t.datetime :end
8
+ t.text :preplanning
9
+ t.text :summary
10
+ t.boolean :published, default: false, null: false
11
+
12
+ t.timestamps
13
+ end
14
+ add_index :plan_b_itineraries, :slug, unique: true
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ class CreatePlanBItineraryTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :plan_b_itinerary_templates do |t|
4
+ t.integer :itinerary_id
5
+ t.integer :template_id
6
+ t.string :template_type
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreatePlanBHikingTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :plan_b_hiking_templates do |t|
4
+ t.integer :distance
5
+ t.string :start
6
+ t.string :end
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module PlanB
2
+ module Config
3
+ class << self
4
+ def authenticate_with &blk
5
+ @authenticate = blk if blk
6
+ @authenticate
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ require 'sass'
2
+
3
+ module PlanB
4
+ class Engine < ::Rails::Engine
5
+ isolate_namespace PlanB
6
+
7
+ initializer "zurb-foundation" do
8
+ zurb_dir = Gem::Specification.find_by_name('zurb-foundation').gem_dir
9
+ Sass.load_paths << File.join(zurb_dir, 'scss')
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module PlanB
2
+ VERSION = "0.0.1.pre"
3
+ end
data/lib/plan_b.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "plan_b/engine"
2
+ require "plan_b/config"
3
+
4
+ module PlanB
5
+ end
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: plan_b
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Eric Thomas
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: friendly_id
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.9
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 4.0.9
30
+ - !ruby/object:Gem::Dependency
31
+ name: haml
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '4.0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '4.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rails
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '3.2'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.2'
62
+ - !ruby/object:Gem::Dependency
63
+ name: sass-rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '3.2'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '3.2'
78
+ - !ruby/object:Gem::Dependency
79
+ name: zurb-foundation
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - '='
84
+ - !ruby/object:Gem::Version
85
+ version: 4.0.3
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - '='
92
+ - !ruby/object:Gem::Version
93
+ version: 4.0.3
94
+ description: Plan B is a Rails engine that provides a flexible itinerary planning.
95
+ email:
96
+ - eric.l.m.thomas@gmail.com
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files: []
100
+ files:
101
+ - app/assets/images/plan_b/plan_b.png
102
+ - app/assets/javascripts/plan_b/application.js
103
+ - app/assets/javascripts/plan_b/itineraries/controllers.js
104
+ - app/assets/javascripts/plan_b/itineraries/services.js
105
+ - app/assets/javascripts/plan_b/plan_b.js
106
+ - app/assets/stylesheets/plan_b/application.css.scss
107
+ - app/assets/stylesheets/plan_b/foundation_and_overrides.scss
108
+ - app/assets/templates/plan_b/itineraries/edit.html.erb
109
+ - app/assets/templates/plan_b/itineraries/new.html.erb
110
+ - app/controllers/plan_b/angular_controller.rb
111
+ - app/controllers/plan_b/application_controller.rb
112
+ - app/controllers/plan_b/hiking_profiles_controller.rb
113
+ - app/controllers/plan_b/itineraries_controller.rb
114
+ - app/helpers/plan_b/application_helper.rb
115
+ - app/helpers/plan_b/itineraries_helper.rb
116
+ - app/models/plan_b/hiking_template.rb
117
+ - app/models/plan_b/itinerary.rb
118
+ - app/models/plan_b/itinerary_template.rb
119
+ - app/models/plan_b/template_creator.rb
120
+ - app/views/plan_b/angular/index.html.haml
121
+ - config/initializers/haml.rb
122
+ - config/initializers/wrap_parameters.rb
123
+ - config/locales/plan_b.en.yml
124
+ - config/routes.rb
125
+ - db/migrate/20130408193857_create_plan_b_itineraries.rb
126
+ - db/migrate/20130408193858_create_plan_b_itinerary_templates.rb
127
+ - db/migrate/20130408193859_create_plan_b_hiking_templates.rb
128
+ - lib/plan_b/config.rb
129
+ - lib/plan_b/engine.rb
130
+ - lib/plan_b/version.rb
131
+ - lib/plan_b.rb
132
+ - Rakefile
133
+ - README.md
134
+ homepage: ''
135
+ licenses: []
136
+ post_install_message:
137
+ rdoc_options: []
138
+ require_paths:
139
+ - lib
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ segments:
147
+ - 0
148
+ hash: -3695193271680986366
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ! '>'
153
+ - !ruby/object:Gem::Version
154
+ version: 1.3.1
155
+ requirements: []
156
+ rubyforge_project:
157
+ rubygems_version: 1.8.25
158
+ signing_key:
159
+ specification_version: 3
160
+ summary: An itinerary planning tool.
161
+ test_files: []