kalipso 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem 'jaysus', :path => '/Users/paul/Sites/gems/jaysus/jaysus'
7
+ gem "thor"
8
+ gem "highline"
9
+
10
+ # Add dependencies to develop your gem here.
11
+ # Include everything needed to run rake, tests, features, etc.
12
+ group :development do
13
+ gem "rspec", "~> 2.3.0"
14
+ gem "bundler", "~> 1.0.0"
15
+ gem "jeweler", "~> 1.5.2"
16
+ gem "rcov", ">= 0"
17
+ gem 'vcr', '1.5.1'
18
+ gem 'webmock', '1.6.2'
19
+ end
@@ -0,0 +1,59 @@
1
+ PATH
2
+ remote: /Users/paul/Sites/gems/jaysus/jaysus
3
+ specs:
4
+ jaysus (0.1.3)
5
+ activemodel (~> 3.0.0)
6
+ activesupport (~> 3.0.0)
7
+ rest-client (~> 1.6.1)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ activemodel (3.0.3)
13
+ activesupport (= 3.0.3)
14
+ builder (~> 2.1.2)
15
+ i18n (~> 0.4)
16
+ activesupport (3.0.3)
17
+ addressable (2.2.3)
18
+ builder (2.1.2)
19
+ crack (0.1.8)
20
+ diff-lcs (1.1.2)
21
+ git (1.2.5)
22
+ highline (1.6.1)
23
+ i18n (0.5.0)
24
+ jeweler (1.5.2)
25
+ bundler (~> 1.0.0)
26
+ git (>= 1.2.5)
27
+ rake
28
+ mime-types (1.16)
29
+ rake (0.8.7)
30
+ rcov (0.9.9)
31
+ rest-client (1.6.1)
32
+ mime-types (>= 1.16)
33
+ rspec (2.3.0)
34
+ rspec-core (~> 2.3.0)
35
+ rspec-expectations (~> 2.3.0)
36
+ rspec-mocks (~> 2.3.0)
37
+ rspec-core (2.3.1)
38
+ rspec-expectations (2.3.0)
39
+ diff-lcs (~> 1.1.2)
40
+ rspec-mocks (2.3.0)
41
+ thor (0.14.6)
42
+ vcr (1.5.1)
43
+ webmock (1.6.2)
44
+ addressable (>= 2.2.2)
45
+ crack (>= 0.1.7)
46
+
47
+ PLATFORMS
48
+ ruby
49
+
50
+ DEPENDENCIES
51
+ bundler (~> 1.0.0)
52
+ highline
53
+ jaysus!
54
+ jeweler (~> 1.5.2)
55
+ rcov
56
+ rspec (~> 2.3.0)
57
+ thor
58
+ vcr (= 1.5.1)
59
+ webmock (= 1.6.2)
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Paul Campbell
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,38 @@
1
+ # Kalipso #
2
+
3
+ Command line client and library for uploading sites to Kalipso.
4
+
5
+
6
+ ## Basic setup ##
7
+
8
+ Add a folder as a Kalipso site:
9
+
10
+ $ cd Sites/my_site
11
+ $ kalipso sites:add .
12
+
13
+ (this will auto-assign a site name)
14
+
15
+ Or specify a name:
16
+
17
+ $ kalipso sites:add . --name my_site
18
+
19
+ This will add the site to your account on Kalipso.
20
+
21
+ ## Listing your sites ##
22
+
23
+ List your sites
24
+
25
+ $ kalipso sites
26
+ SITENAME => /path/to/local
27
+
28
+ ## Uploading a site ##
29
+
30
+ $ kalipso upload SITENAME
31
+ http://SITENAME.diddlydum.com
32
+
33
+
34
+ == Copyright
35
+
36
+ Copyright (c) 2011 Paul Campbell. See LICENSE.txt for
37
+ further details.
38
+
@@ -0,0 +1,53 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "kalipso"
16
+ gem.homepage = "http://github.com/paulca/kalipso"
17
+ gem.license = "MIT"
18
+ gem.platform = Gem::Platform::RUBY
19
+ gem.require_path = "lib"
20
+ gem.summary = %Q{Client library and command line client for kalipso}
21
+ gem.description = %Q{A full library for interactiing with your sites using kalipso}
22
+ gem.email = "paul@rslw.com"
23
+ gem.authors = ["Paul Campbell"]
24
+ gem.files = FileList["[A-Za-z]*", "lib/**/*", "bin/**/*"]
25
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
26
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
27
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
28
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
29
+ end
30
+ Jeweler::RubygemsDotOrgTasks.new
31
+
32
+ require 'rspec/core'
33
+ require 'rspec/core/rake_task'
34
+ RSpec::Core::RakeTask.new(:spec) do |spec|
35
+ spec.pattern = FileList['spec/**/*_spec.rb']
36
+ end
37
+
38
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
39
+ spec.pattern = 'spec/**/*_spec.rb'
40
+ spec.rcov = true
41
+ end
42
+
43
+ task :default => :spec
44
+
45
+ require 'rake/rdoctask'
46
+ Rake::RDocTask.new do |rdoc|
47
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
+
49
+ rdoc.rdoc_dir = 'rdoc'
50
+ rdoc.title = "kalipso #{version}"
51
+ rdoc.rdoc_files.include('README*')
52
+ rdoc.rdoc_files.include('lib/**/*.rb')
53
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
+ require 'kalipso'
4
+ require 'kalipso/cli'
5
+
6
+ Kalipso::CLI.start
@@ -0,0 +1,84 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{kalipso}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Paul Campbell"]
12
+ s.date = %q{2011-01-26}
13
+ s.default_executable = %q{kalipso}
14
+ s.description = %q{A full library for interactiing with your sites using kalipso}
15
+ s.email = %q{paul@rslw.com}
16
+ s.executables = ["kalipso"]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/kalipso",
29
+ "kalipso.gemspec",
30
+ "lib/kalipso.rb",
31
+ "lib/kalipso/cli.rb",
32
+ "lib/kalipso/site.rb"
33
+ ]
34
+ s.homepage = %q{http://github.com/paulca/kalipso}
35
+ s.licenses = ["MIT"]
36
+ s.require_paths = ["lib"]
37
+ s.rubygems_version = %q{1.4.2}
38
+ s.summary = %q{Client library and command line client for kalipso}
39
+ s.test_files = [
40
+ "spec/kalipso_spec.rb",
41
+ "spec/lib/kalipso/cli_spec.rb",
42
+ "spec/site_spec.rb",
43
+ "spec/spec_helper.rb",
44
+ "spec/support/kalipso.rb",
45
+ "spec/support/vcr.rb"
46
+ ]
47
+
48
+ if s.respond_to? :specification_version then
49
+ s.specification_version = 3
50
+
51
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
+ s.add_runtime_dependency(%q<jaysus>, [">= 0"])
53
+ s.add_runtime_dependency(%q<thor>, [">= 0"])
54
+ s.add_runtime_dependency(%q<highline>, [">= 0"])
55
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
56
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
57
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
58
+ s.add_development_dependency(%q<rcov>, [">= 0"])
59
+ s.add_development_dependency(%q<vcr>, ["= 1.5.1"])
60
+ s.add_development_dependency(%q<webmock>, ["= 1.6.2"])
61
+ else
62
+ s.add_dependency(%q<jaysus>, [">= 0"])
63
+ s.add_dependency(%q<thor>, [">= 0"])
64
+ s.add_dependency(%q<highline>, [">= 0"])
65
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
66
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
68
+ s.add_dependency(%q<rcov>, [">= 0"])
69
+ s.add_dependency(%q<vcr>, ["= 1.5.1"])
70
+ s.add_dependency(%q<webmock>, ["= 1.6.2"])
71
+ end
72
+ else
73
+ s.add_dependency(%q<jaysus>, [">= 0"])
74
+ s.add_dependency(%q<thor>, [">= 0"])
75
+ s.add_dependency(%q<highline>, [">= 0"])
76
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
77
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
78
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
79
+ s.add_dependency(%q<rcov>, [">= 0"])
80
+ s.add_dependency(%q<vcr>, ["= 1.5.1"])
81
+ s.add_dependency(%q<webmock>, ["= 1.6.2"])
82
+ end
83
+ end
84
+
@@ -0,0 +1,38 @@
1
+ # system deps
2
+ require "rubygems"
3
+
4
+ # gem deps
5
+ require 'jaysus'
6
+ require 'thor'
7
+
8
+ # lib deps
9
+ require 'kalipso/cli'
10
+ require 'highline/import'
11
+ require 'rest_client'
12
+ require 'pathname'
13
+
14
+ # models
15
+ require 'kalipso/site'
16
+
17
+ # app
18
+ Dir['app/*/*.rb'].each do |file|
19
+ require file
20
+ end
21
+
22
+ Jaysus::Local.store_dir = "#{ENV['HOME']}/.kalipso"
23
+
24
+
25
+ token_path = Pathname.new(Jaysus::Local.store_dir + '/token')
26
+
27
+ if token_path.exist?
28
+ token = token_path.read
29
+ else
30
+ email = ask("Enter your email: ") { |q| q.echo = true }
31
+ password = ask("Enter your password: ") { |q| q.echo = "*" }
32
+ token = ActiveSupport::JSON.decode(RestClient.get("http://#{CGI.escape(email)}:#{CGI.escape(password)}@oncalypso.com/api/v1/users.json"))['token']
33
+ token_path.open('w') do |file|
34
+ file.write token
35
+ end
36
+ end
37
+
38
+ Jaysus::Remote.base_url = "http://#{token}:x@oncalypso.com/api/v1"
@@ -0,0 +1,82 @@
1
+ module Kalipso
2
+ class CLI < Thor
3
+
4
+ desc "create", "add a site"
5
+ def create(name = nil)
6
+ path = File.expand_path(File.dirname(__FILE__))
7
+ if name.present?
8
+ puts "Creating #{name} linked to #{path}"
9
+ else
10
+ puts "Creating a new site linked to #{path}"
11
+ end
12
+ begin
13
+ Site::Remote.create(:name => name)
14
+ rescue RestClient::UnprocessableEntity
15
+ puts "There was an error uploading your site"
16
+ end
17
+ end
18
+
19
+ desc "sites", "list all sites"
20
+ def sites
21
+ if Site::Local.all.empty?
22
+ sync
23
+ else
24
+ Site::Local.all.each do |site|
25
+ out = "".tap do |out|
26
+ out << site.name
27
+ out << " -> #{site.path}" if site.path.present?
28
+ end
29
+ puts out
30
+ end
31
+ end
32
+ end
33
+
34
+ desc "link", "link a local path to a site"
35
+ def link(site, path)
36
+ site = Site::Local.find_by_name(site)
37
+ path = File.expand_path(path)
38
+ site.update_attributes(:path => path)
39
+ puts "#{site.name} linked to #{path}"
40
+ end
41
+
42
+ desc "unlink", "stop linking a local path to a site"
43
+ def unlink(site)
44
+ site = Site::Local.find_by_name(site)
45
+ site.update_attributes(:path => "")
46
+ puts "Site #{site.name} unlinked"
47
+ end
48
+
49
+ desc "store_dir", "show kalipso store dir"
50
+ def store_dir
51
+ puts Jaysus::Local.store_dir
52
+ end
53
+
54
+ desc "base_url", "show kalipso API base url"
55
+ def base_url
56
+ puts Jaysus::Remote.base_url
57
+ end
58
+
59
+ desc "sync", "synchronize remote changes locally"
60
+ def sync
61
+ puts "fetching remote sites"
62
+ Site::Remote.all.each do |site|
63
+ puts "syncing #{site.name}"
64
+ local_site = Site::Local.find_or_create_by_id(site.id)
65
+ local_site.update_attributes(site.attributes)
66
+ end
67
+ end
68
+
69
+ desc "upload", "upload a path, eg. kalipso upload SITENAME PATH"
70
+ def upload(name)
71
+ puts "uploading #{name}"
72
+ site = Site::Local.find_by_name(name)
73
+ if site.path.present?
74
+ puts "uploading #{site.path} to #{site.name}.diddlydum.com"
75
+ `rsync -arvH #{site.path.gsub(/\/+$/, '')}/ sites@diddlydum.com:/home/sites/#{site.name}`
76
+ puts "#{site.path} uploaded to http://#{site.name}.diddlydum.com"
77
+ else
78
+ puts "You need to link this site first"
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,23 @@
1
+ module Kalipso
2
+ module Site
3
+
4
+ class Base < Jaysus::Base
5
+ primary_key :id
6
+ attribute :id
7
+ attribute :name
8
+ attribute :user_id
9
+ attribute :created_at
10
+ attribute :updated_at
11
+ end
12
+
13
+ class Local < Base
14
+ attribute :path
15
+ include Jaysus::Local
16
+ end
17
+
18
+ class Remote < Base
19
+ include Jaysus::Remote
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,5 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Kalipso" do
4
+ describe "#sites"
5
+ end
File without changes
@@ -0,0 +1,53 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Kalipso::Site do
4
+
5
+ describe Kalipso::Site::Remote do
6
+ describe ".all" do
7
+ use_vcr_cassette "kalipso/all_empty", :record => :new_episodes
8
+ subject { Kalipso::Site::Remote.all }
9
+
10
+ it { should be_empty }
11
+ end
12
+
13
+ describe ".find" do
14
+ use_vcr_cassette "kalipso/find", :record => :new_episodes
15
+ subject { Kalipso::Site::Remote.find(44) }
16
+
17
+ it { should_not be_nil }
18
+ its(:name) { should == 'testsite' }
19
+ end
20
+
21
+ describe "#save" do
22
+ use_vcr_cassette "kalipso/save_and_all", :record => :new_episodes
23
+ subject { Kalipso::Site::Remote.new(:name => "automatedtest") }
24
+
25
+ before do
26
+ subject.save
27
+ end
28
+
29
+ its(:id) { should_not be_nil }
30
+ end
31
+
32
+ describe "#update_attributes" do
33
+ use_vcr_cassette "kalipso/update", :record => :new_episodes
34
+ let(:site) { Kalipso::Site::Remote.find(46) }
35
+ subject { site.update_attributes(:name => 'somethingelse') }
36
+ its(:name) { should == 'somethingelse' }
37
+ end
38
+
39
+ describe "#delete" do
40
+ use_vcr_cassette "kalipso/create_and_delete", :record => :new_episodes
41
+ subject { Kalipso::Site::Remote.all }
42
+
43
+ before do
44
+ site = Kalipso::Site::Remote.new(:name => "tobedeleted")
45
+ site.save
46
+ site.destroy
47
+ end
48
+
49
+ it { should be_empty }
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'kalipso'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
@@ -0,0 +1,2 @@
1
+ Jaysus::Local.store_dir = "spec/.kalipso"
2
+ Jaysus::Remote.base_url = "http://test%40test.com:testtest@oncalypso.com/api/v1"
@@ -0,0 +1,13 @@
1
+ require 'vcr'
2
+
3
+ VCR.config do |c|
4
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
5
+ c.stub_with :webmock
6
+ c.default_cassette_options = {
7
+ :record => :new_episodes
8
+ }
9
+ end
10
+
11
+ RSpec.configure do |c|
12
+ c.extend VCR::RSpec::Macros
13
+ end
metadata ADDED
@@ -0,0 +1,224 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kalipso
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Paul Campbell
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-26 00:00:00 +00:00
19
+ default_executable: kalipso
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ name: jaysus
24
+ type: :runtime
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ prerelease: false
37
+ name: thor
38
+ type: :runtime
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ requirement: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ prerelease: false
51
+ name: highline
52
+ type: :runtime
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ requirement: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ prerelease: false
65
+ name: rspec
66
+ type: :development
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 2
75
+ - 3
76
+ - 0
77
+ version: 2.3.0
78
+ requirement: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ prerelease: false
81
+ name: bundler
82
+ type: :development
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ hash: 23
89
+ segments:
90
+ - 1
91
+ - 0
92
+ - 0
93
+ version: 1.0.0
94
+ requirement: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ prerelease: false
97
+ name: jeweler
98
+ type: :development
99
+ version_requirements: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ hash: 7
105
+ segments:
106
+ - 1
107
+ - 5
108
+ - 2
109
+ version: 1.5.2
110
+ requirement: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ prerelease: false
113
+ name: rcov
114
+ type: :development
115
+ version_requirements: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ requirement: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ prerelease: false
127
+ name: vcr
128
+ type: :development
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - "="
133
+ - !ruby/object:Gem::Version
134
+ hash: 1
135
+ segments:
136
+ - 1
137
+ - 5
138
+ - 1
139
+ version: 1.5.1
140
+ requirement: *id008
141
+ - !ruby/object:Gem::Dependency
142
+ prerelease: false
143
+ name: webmock
144
+ type: :development
145
+ version_requirements: &id009 !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - "="
149
+ - !ruby/object:Gem::Version
150
+ hash: 11
151
+ segments:
152
+ - 1
153
+ - 6
154
+ - 2
155
+ version: 1.6.2
156
+ requirement: *id009
157
+ description: A full library for interactiing with your sites using kalipso
158
+ email: paul@rslw.com
159
+ executables:
160
+ - kalipso
161
+ extensions: []
162
+
163
+ extra_rdoc_files:
164
+ - LICENSE.txt
165
+ - README.md
166
+ files:
167
+ - Gemfile
168
+ - Gemfile.lock
169
+ - LICENSE.txt
170
+ - README.md
171
+ - Rakefile
172
+ - VERSION
173
+ - bin/kalipso
174
+ - kalipso.gemspec
175
+ - lib/kalipso.rb
176
+ - lib/kalipso/cli.rb
177
+ - lib/kalipso/site.rb
178
+ - spec/kalipso_spec.rb
179
+ - spec/lib/kalipso/cli_spec.rb
180
+ - spec/site_spec.rb
181
+ - spec/spec_helper.rb
182
+ - spec/support/kalipso.rb
183
+ - spec/support/vcr.rb
184
+ has_rdoc: true
185
+ homepage: http://github.com/paulca/kalipso
186
+ licenses:
187
+ - MIT
188
+ post_install_message:
189
+ rdoc_options: []
190
+
191
+ require_paths:
192
+ - lib
193
+ required_ruby_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ hash: 3
199
+ segments:
200
+ - 0
201
+ version: "0"
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ hash: 3
208
+ segments:
209
+ - 0
210
+ version: "0"
211
+ requirements: []
212
+
213
+ rubyforge_project:
214
+ rubygems_version: 1.4.2
215
+ signing_key:
216
+ specification_version: 3
217
+ summary: Client library and command line client for kalipso
218
+ test_files:
219
+ - spec/kalipso_spec.rb
220
+ - spec/lib/kalipso/cli_spec.rb
221
+ - spec/site_spec.rb
222
+ - spec/spec_helper.rb
223
+ - spec/support/kalipso.rb
224
+ - spec/support/vcr.rb