confiture 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/.document +3 -0
- data/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/.travis.yml +10 -0
- data/CHANGELOG.rdoc +3 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +27 -0
- data/README.rdoc +51 -0
- data/confiture.gemspec +23 -0
- data/lib/confiture.rb +4 -0
- data/lib/confiture/configuration.rb +89 -0
- data/lib/confiture/version.rb +3 -0
- data/rakefile.rb +11 -0
- data/spec/config.yml +2 -0
- data/spec/config_spec.rb +33 -0
- data/spec/spec_helper.rb +10 -0
- metadata +86 -0
data/.document
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.3@confiture --create
|
data/.travis.yml
ADDED
data/CHANGELOG.rdoc
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
confiture (0.0.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.1.3)
|
10
|
+
rake (0.9.2.2)
|
11
|
+
rspec (2.7.0)
|
12
|
+
rspec-core (~> 2.7.0)
|
13
|
+
rspec-expectations (~> 2.7.0)
|
14
|
+
rspec-mocks (~> 2.7.0)
|
15
|
+
rspec-core (2.7.1)
|
16
|
+
rspec-expectations (2.7.0)
|
17
|
+
diff-lcs (~> 1.1.2)
|
18
|
+
rspec-mocks (2.7.0)
|
19
|
+
|
20
|
+
PLATFORMS
|
21
|
+
java
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
confiture!
|
26
|
+
rake (~> 0.9.2.2)
|
27
|
+
rspec (~> 2.7.0)
|
data/README.rdoc
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
== Infos
|
2
|
+
|
3
|
+
Status: http://stillmaintained.com/phoet/asin.png
|
4
|
+
Build: http://travis-ci.org/phoet/asin.png
|
5
|
+
|
6
|
+
|
7
|
+
== Installation
|
8
|
+
|
9
|
+
gem install confiture
|
10
|
+
|
11
|
+
or in your Gemfile:
|
12
|
+
|
13
|
+
gem "confiture"
|
14
|
+
|
15
|
+
== Usage
|
16
|
+
|
17
|
+
Rails style initializer (config/initializers/asin.rb):
|
18
|
+
|
19
|
+
ASIN::Configuration.configure do |config|
|
20
|
+
config.secret = 'your-secret'
|
21
|
+
config.key = 'your-key'
|
22
|
+
end
|
23
|
+
|
24
|
+
YAML style configuration:
|
25
|
+
|
26
|
+
ASIN::Configuration.configure :yaml => 'config/asin.yml'
|
27
|
+
|
28
|
+
Inline style configuration:
|
29
|
+
|
30
|
+
ASIN::Configuration.configure :secret => 'your-secret', :key => 'your-key'
|
31
|
+
# or
|
32
|
+
client.configure :secret => 'your-secret', :key => 'your-key'
|
33
|
+
|
34
|
+
Have a look at ASIN::Configuration class for all the details.
|
35
|
+
|
36
|
+
===API Changes
|
37
|
+
|
38
|
+
With the latest version of the Product Advertising API you need to include your associate_tag[https://affiliate-program.amazon.com/gp/advertising/api/detail/api-changes.html].
|
39
|
+
|
40
|
+
ASIN::Configuration.configure do |config|
|
41
|
+
config.secret = 'your-secret'
|
42
|
+
config.key = 'your-key'
|
43
|
+
config.associate_tag = 'your-tag'
|
44
|
+
end
|
45
|
+
|
46
|
+
== License
|
47
|
+
|
48
|
+
"THE BEER-WARE LICENSE" (Revision 42):
|
49
|
+
ps@nofail.de[mailto:ps@nofail.de] wrote this file. As long as you retain this notice you
|
50
|
+
can do whatever you want with this stuff. If we meet some day, and you think
|
51
|
+
this stuff is worth it, you can buy me a beer in return Peter Schröder
|
data/confiture.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "confiture/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "confiture"
|
7
|
+
s.version = Confiture::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ['Peter Schröder']
|
10
|
+
s.email = ['phoetmail@googlemail.com']
|
11
|
+
s.homepage = 'http://github.com/phoet/confiture'
|
12
|
+
s.summary = s.description = 'Confiture helps with configuring your gem.'
|
13
|
+
|
14
|
+
s.rubyforge_project = "confiture"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_development_dependency('rake', '~> 0.9.2.2')
|
22
|
+
s.add_development_dependency('rspec', '~> 2.7.0')
|
23
|
+
end
|
data/lib/confiture.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require 'logger'
|
3
|
+
|
4
|
+
module Confiture
|
5
|
+
class Configuration
|
6
|
+
class << self
|
7
|
+
|
8
|
+
attr_accessor :secret, :key
|
9
|
+
|
10
|
+
# Rails initializer configuration.
|
11
|
+
#
|
12
|
+
# Expects at least +secret+ and +key+ for the API call:
|
13
|
+
#
|
14
|
+
# ASIN::Configuration.configure do |config|
|
15
|
+
# config.secret = 'your-secret'
|
16
|
+
# config.key = 'your-key'
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# With the latest version of the Product Advertising API you need to include your associate_tag[https://affiliate-program.amazon.com/gp/advertising/api/detail/api-changes.html].
|
20
|
+
#
|
21
|
+
# You may pass options as a hash as well:
|
22
|
+
#
|
23
|
+
# ASIN::Configuration.configure :secret => 'your-secret', :key => 'your-key'
|
24
|
+
#
|
25
|
+
# Or configure everything using YAML:
|
26
|
+
#
|
27
|
+
# ASIN::Configuration.configure :yaml => 'config/asin.yml'
|
28
|
+
#
|
29
|
+
# ASIN::Configuration.configure :yaml => 'config/asin.yml' do |config, yml|
|
30
|
+
# config.key = yml[Rails.env]['aws_access_key']
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# ==== Options:
|
34
|
+
#
|
35
|
+
# [secret] the API secret key (required)
|
36
|
+
# [key] the API access key (required)
|
37
|
+
# [associate_tag] your Amazon associate tag. Default is blank (required in latest API version)
|
38
|
+
# [host] the host, which defaults to 'webservices.amazon.com'
|
39
|
+
# [logger] a different logger than logging to STDERR (nil for no logging)
|
40
|
+
# [version] a custom version of the API calls. Default is 2010-11-01
|
41
|
+
# [item_type] a different class for SimpleItem, use :mash / :rash for Hashie::Mash / Hashie::Rash or :raw for a plain hash
|
42
|
+
# [cart_type] a different class for SimpleCart, use :mash / :rash for Hashie::Mash / Hashie::Rash or :raw for a plain hash
|
43
|
+
# [node_type] a different class for SimpleNode, use :mash / :rash for Hashie::Mash / Hashie::Rash or :raw for a plain hash
|
44
|
+
#
|
45
|
+
def configure(options={})
|
46
|
+
init_config
|
47
|
+
if yml_path = options[:yaml] || options[:yml]
|
48
|
+
yml = File.open(yml_path) { |file| YAML.load(file) }
|
49
|
+
if block_given?
|
50
|
+
yield self, yml
|
51
|
+
else
|
52
|
+
yml.each do |key, value|
|
53
|
+
send(:"#{key}=", value)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
elsif block_given?
|
57
|
+
yield self
|
58
|
+
else
|
59
|
+
options.each do |key, value|
|
60
|
+
send(:"#{key}=", value)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
self
|
64
|
+
end
|
65
|
+
|
66
|
+
# Resets configuration to defaults
|
67
|
+
#
|
68
|
+
def reset
|
69
|
+
init_config(true)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Check if a key is set
|
73
|
+
#
|
74
|
+
def blank?(key)
|
75
|
+
val = self.send :key
|
76
|
+
val.nil? || val.empty?
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def init_config(force=false)
|
82
|
+
return if @init && !force
|
83
|
+
@init = true
|
84
|
+
@secret = ''
|
85
|
+
@key = ''
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/rakefile.rb
ADDED
data/spec/config.yml
ADDED
data/spec/config_spec.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Confiture
|
4
|
+
describe Confiture do
|
5
|
+
context "configuration" do
|
6
|
+
it "should fail with wrong configuration key" do
|
7
|
+
lambda { @helper.configure :wrong => 'key' }.should raise_error(NoMethodError)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should work with a configuration block" do
|
11
|
+
conf = Confiture::Configuration.configure do |config|
|
12
|
+
config.key = 'bla'
|
13
|
+
end
|
14
|
+
conf.key.should eql('bla')
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should read configuration from yml" do
|
18
|
+
config = Confiture::Configuration.configure :yaml => 'spec/config.yml'
|
19
|
+
config.secret.should eql('secret_yml')
|
20
|
+
config.key.should eql('key_yml')
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should read configuration from yml with block" do
|
24
|
+
conf = Confiture::Configuration.configure :yaml => 'spec/config.yml' do |config, yml|
|
25
|
+
config.secret = nil
|
26
|
+
config.key = yml['secret']
|
27
|
+
end
|
28
|
+
conf.secret.should be_nil
|
29
|
+
conf.key.should eql('secret_yml')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: confiture
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Peter Schröder
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-11 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &70363265328940 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.9.2.2
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70363265328940
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70363265328440 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.7.0
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70363265328440
|
36
|
+
description: Confiture helps with configuring your gem.
|
37
|
+
email:
|
38
|
+
- phoetmail@googlemail.com
|
39
|
+
executables: []
|
40
|
+
extensions: []
|
41
|
+
extra_rdoc_files: []
|
42
|
+
files:
|
43
|
+
- .document
|
44
|
+
- .gitignore
|
45
|
+
- .rvmrc
|
46
|
+
- .travis.yml
|
47
|
+
- CHANGELOG.rdoc
|
48
|
+
- Gemfile
|
49
|
+
- Gemfile.lock
|
50
|
+
- README.rdoc
|
51
|
+
- confiture.gemspec
|
52
|
+
- lib/confiture.rb
|
53
|
+
- lib/confiture/configuration.rb
|
54
|
+
- lib/confiture/version.rb
|
55
|
+
- rakefile.rb
|
56
|
+
- spec/config.yml
|
57
|
+
- spec/config_spec.rb
|
58
|
+
- spec/spec_helper.rb
|
59
|
+
homepage: http://github.com/phoet/confiture
|
60
|
+
licenses: []
|
61
|
+
post_install_message:
|
62
|
+
rdoc_options: []
|
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
|
+
version: '0'
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
requirements: []
|
78
|
+
rubyforge_project: confiture
|
79
|
+
rubygems_version: 1.8.17
|
80
|
+
signing_key:
|
81
|
+
specification_version: 3
|
82
|
+
summary: Confiture helps with configuring your gem.
|
83
|
+
test_files:
|
84
|
+
- spec/config.yml
|
85
|
+
- spec/config_spec.rb
|
86
|
+
- spec/spec_helper.rb
|