cotendo 0.0.1

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.
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source :rubygems
2
+ gem 'savon', '>=0.8.2'
3
+
4
+ group :dev do # not development <-> would add unneeded development dependencies in gemspec
5
+ gem 'rake'
6
+ gem 'rspec', '~>2'
7
+ gem 'jeweler'
8
+ end
@@ -0,0 +1,39 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ builder (3.0.0)
5
+ crack (0.1.8)
6
+ diff-lcs (1.1.2)
7
+ git (1.2.5)
8
+ gyoku (0.1.1)
9
+ builder (>= 2.1.2)
10
+ httpi (0.7.7)
11
+ rack
12
+ jeweler (1.5.2)
13
+ bundler (~> 1.0.0)
14
+ git (>= 1.2.5)
15
+ rake
16
+ rack (1.2.1)
17
+ rake (0.8.7)
18
+ rspec (2.5.0)
19
+ rspec-core (~> 2.5.0)
20
+ rspec-expectations (~> 2.5.0)
21
+ rspec-mocks (~> 2.5.0)
22
+ rspec-core (2.5.1)
23
+ rspec-expectations (2.5.0)
24
+ diff-lcs (~> 1.1.2)
25
+ rspec-mocks (2.5.0)
26
+ savon (0.8.2)
27
+ builder (>= 2.1.2)
28
+ crack (~> 0.1.8)
29
+ gyoku (>= 0.1.1)
30
+ httpi (>= 0.7.5)
31
+
32
+ PLATFORMS
33
+ ruby
34
+
35
+ DEPENDENCIES
36
+ jeweler
37
+ rake
38
+ rspec (~> 2)
39
+ savon (>= 0.8.2)
@@ -0,0 +1,18 @@
1
+ task :default do
2
+ sh "rspec spec/"
3
+ end
4
+
5
+ begin
6
+ require 'jeweler'
7
+ Jeweler::Tasks.new do |gem|
8
+ gem.name = 'cotendo'
9
+ gem.summary = "Wrapper for cotendo SOAP Api"
10
+ gem.email = "michael@grosser.it"
11
+ gem.homepage = "http://github.com/grosser/#{gem.name}"
12
+ gem.authors = ["Michael Grosser"]
13
+ end
14
+
15
+ Jeweler::GemcutterTasks.new
16
+ rescue LoadError
17
+ puts "Jeweler, or one of its dependencies, is not available. Install it with: gem install jeweler"
18
+ end
@@ -0,0 +1,19 @@
1
+ Wrapper for cotendo SOAP Api
2
+
3
+ Install
4
+ =======
5
+ sudo gem install cotendo
6
+
7
+ Usage
8
+ =====
9
+ client = Cotendo.new(:user => 'user', :password => 'password')
10
+
11
+ # flush
12
+ client.flush(cname, "/images/*") # hard flush
13
+ client.flush(cname, ["/images/*", "/*.jsp", "/*.txt"], :flush_type => 'soft')
14
+
15
+ Author
16
+ ======
17
+ [Michael Grosser](http://grosser.it)<br/>
18
+ michael@grosser.it<br/>
19
+ Hereby placed under public domain, do what you want, just do not hold me accountable...
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,47 @@
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{cotendo}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Michael Grosser"]
12
+ s.date = %q{2011-04-29}
13
+ s.email = %q{michael@grosser.it}
14
+ s.files = [
15
+ "Gemfile",
16
+ "Gemfile.lock",
17
+ "Rakefile",
18
+ "Readme.md",
19
+ "VERSION",
20
+ "cotendo.gemspec",
21
+ "lib/cotendo.rb",
22
+ "spec/config.example.yml",
23
+ "spec/cotendo_spec.rb",
24
+ "spec/spec_helper.rb"
25
+ ]
26
+ s.homepage = %q{http://github.com/grosser/cotendo}
27
+ s.require_paths = ["lib"]
28
+ s.rubygems_version = %q{1.4.2}
29
+ s.summary = %q{Wrapper for cotendo SOAP Api}
30
+ s.test_files = [
31
+ "spec/cotendo_spec.rb",
32
+ "spec/spec_helper.rb"
33
+ ]
34
+
35
+ if s.respond_to? :specification_version then
36
+ s.specification_version = 3
37
+
38
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
39
+ s.add_runtime_dependency(%q<savon>, [">= 0.8.2"])
40
+ else
41
+ s.add_dependency(%q<savon>, [">= 0.8.2"])
42
+ end
43
+ else
44
+ s.add_dependency(%q<savon>, [">= 0.8.2"])
45
+ end
46
+ end
47
+
@@ -0,0 +1,44 @@
1
+ require 'savon'
2
+
3
+ class Cotendo
4
+ VERSION = File.read( File.join(File.dirname(__FILE__),'..','VERSION') ).strip
5
+ WSDL = "https://api.cotendo.net/cws?wsdl"
6
+ NAMESPACE = 'http://api.cotendo.net/'
7
+
8
+ def initialize(options)
9
+ @user = options[:user]
10
+ @password = options[:password]
11
+ end
12
+
13
+ def flush(cname, expressions, options = {})
14
+ expressions = [*expressions]
15
+ request(:do_flush,
16
+ :cname => cname,
17
+ :flush_expression => expressions.join("\n"),
18
+ :flush_type => options[:flush_type] || 'hard'
19
+ )
20
+ end
21
+
22
+ def client
23
+ @client = begin
24
+ client = Savon::Client.new do
25
+ wsdl.document = WSDL
26
+ end
27
+ client.wsdl.request.auth.basic @user, @password
28
+ client
29
+ end
30
+ end
31
+
32
+ def request(method, options)
33
+ response = client.request(api_namespaced(method)) do |r|
34
+ r.namespaces['xmlns:api'] = NAMESPACE
35
+ r.namespaces['xmlns:wsdl'] = WSDL+'&ver=1.0'
36
+ r.body = options
37
+ end
38
+ response.to_hash
39
+ end
40
+
41
+ def api_namespaced(method)
42
+ "api:#{method.to_s.gsub(/_./){|x| x.slice(1,1).upcase }}"
43
+ end
44
+ end
@@ -0,0 +1,3 @@
1
+ :user: email
2
+ :password: pass
3
+ :cname: foo.bar.com
@@ -0,0 +1,16 @@
1
+ require File.expand_path('spec/spec_helper')
2
+
3
+ describe Cotendo do
4
+ let(:config){ YAML.load_file('spec/config.yml') }
5
+ let(:client){ Cotendo.new(config) }
6
+
7
+ it "has a VERSION" do
8
+ Cotendo::VERSION.should =~ /^\d+\.\d+\.\d+$/
9
+ end
10
+
11
+ describe :flush do
12
+ it "can do it" do
13
+ client.flush(config[:cname], '/foo')
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift 'lib'
2
+ require 'cotendo'
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cotendo
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Michael Grosser
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-04-29 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 59
28
+ segments:
29
+ - 0
30
+ - 8
31
+ - 2
32
+ version: 0.8.2
33
+ type: :runtime
34
+ requirement: *id001
35
+ name: savon
36
+ prerelease: false
37
+ description:
38
+ email: michael@grosser.it
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files: []
44
+
45
+ files:
46
+ - Gemfile
47
+ - Gemfile.lock
48
+ - Rakefile
49
+ - Readme.md
50
+ - VERSION
51
+ - cotendo.gemspec
52
+ - lib/cotendo.rb
53
+ - spec/config.example.yml
54
+ - spec/cotendo_spec.rb
55
+ - spec/spec_helper.rb
56
+ has_rdoc: true
57
+ homepage: http://github.com/grosser/cotendo
58
+ licenses: []
59
+
60
+ post_install_message:
61
+ rdoc_options: []
62
+
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ hash: 3
80
+ segments:
81
+ - 0
82
+ version: "0"
83
+ requirements: []
84
+
85
+ rubyforge_project:
86
+ rubygems_version: 1.4.2
87
+ signing_key:
88
+ specification_version: 3
89
+ summary: Wrapper for cotendo SOAP Api
90
+ test_files:
91
+ - spec/cotendo_spec.rb
92
+ - spec/spec_helper.rb