inkit 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,7 +24,9 @@ class Inkit
24
24
  private
25
25
 
26
26
  def filename(name)
27
- @cache_dir+"/."+OpenSSL::HMAC::hexdigest("sha256",@secret,name.to_s)
27
+ a = File.extname name
28
+ b = File.basename name, a
29
+ @cache_dir+"/."+OpenSSL::HMAC::hexdigest("sha256",@secret,a.to_s)+a
28
30
  end
29
31
  end
30
32
  end
@@ -4,27 +4,12 @@ require 'cgi'
4
4
  require 'mustache'
5
5
  require 'time'
6
6
 
7
+ load File.dirname(__FILE__)+"/utils.rb"
7
8
  load File.dirname(__FILE__)+"/cache.rb"
8
9
 
9
- class Hash
10
- def to_query
11
- map{|k,v| "#{::CGI.escape(k.to_s)}=#{::CGI.escape(v)}"}.join("&")
12
- end
13
- end
14
-
15
- class String
16
- def indent(n)
17
- if n >= 0
18
- gsub(/^/, ' ' * n)
19
- else
20
- gsub(/^ {0,#{-n}}/, "")
21
- end
22
- end
23
- end
24
-
25
10
  class Inkit
26
11
 
27
- attr_accessor :token
12
+ attr_reader :token, :secret
28
13
 
29
14
  # Constructor
30
15
  def initialize(options)
@@ -34,29 +19,28 @@ class Inkit
34
19
  @cache = Cache.new(@secret)
35
20
  end
36
21
 
37
- # Pull a view from the inkit api
38
22
  def digest(hash)
39
23
  OpenSSL::HMAC::hexdigest("sha256", @secret, hash.to_query)
40
24
  end
41
25
 
42
26
  def pull(view,type = 'haml')
43
- data = {:view => view.to_s, :type => type}
27
+ data = {:view => view.to_s, :type => type, :timestamp => Time.now.rfc2822}
44
28
  data[:digest] = digest(data)
45
29
  data[:token] = @token
46
30
  uri = URI("http://inkit.org/api/document?"+data.to_query)
47
31
  req = ::Net::HTTP::Get.new uri.request_uri
48
- if @cache.cached? view
49
- req['If-Modified-Since'] = @cache.cached_at view
32
+ if @cache.cached? view+"."+type
33
+ req['If-Modified-Since'] = @cache.cached_at view+"."+type
50
34
  end
51
35
  res = ::Net::HTTP.start(uri.host, uri.port) {|http|
52
36
  http.request(req)
53
37
  }
54
38
  if res.is_a?(::Net::HTTPSuccess)
55
- @cache[view] = res.body
56
- return @cache[view]
39
+ @cache[view+"."+type] = res.body
40
+ return @cache[view+"."+type]
57
41
  end
58
42
  if res.is_a?(::Net::HTTPNotModified)
59
- return @cache[view]
43
+ return @cache[view+"."+type]
60
44
  end
61
45
  raise res.code
62
46
  end
@@ -0,0 +1,15 @@
1
+ class Hash
2
+ def to_query
3
+ map{|k,v| "#{::CGI.escape(k.to_s)}=#{::CGI.escape(v)}"}.join("&")
4
+ end
5
+ end
6
+
7
+ class String
8
+ def indent(n)
9
+ if n >= 0
10
+ gsub(/^/, ' ' * n)
11
+ else
12
+ gsub(/^ {0,#{-n}}/, "")
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-27 00:00:00.000000000 Z
12
+ date: 2012-03-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mustache
16
- requirement: &74838360 !ruby/object:Gem::Requirement
16
+ requirement: &15001680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,18 +21,16 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *74838360
24
+ version_requirements: *15001680
25
25
  description: Client library to pull and render INK views.
26
26
  email: ink-support@hotmail.com
27
27
  executables: []
28
28
  extensions: []
29
29
  extra_rdoc_files: []
30
30
  files:
31
- - ./lib/inkit.rb
31
+ - ./lib/utils.rb
32
32
  - ./lib/cache.rb
33
- - test/Gemfile.lock
34
- - test/Gemfile
35
- - test/config.ru
33
+ - ./lib/inkit.rb
36
34
  homepage: http://inkit.org
37
35
  licenses: []
38
36
  post_install_message:
@@ -53,11 +51,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
51
  version: '0'
54
52
  requirements: []
55
53
  rubyforge_project:
56
- rubygems_version: 1.8.17
54
+ rubygems_version: 1.8.10
57
55
  signing_key:
58
56
  specification_version: 3
59
57
  summary: Client library for INK.
60
- test_files:
61
- - test/Gemfile.lock
62
- - test/Gemfile
63
- - test/config.ru
58
+ test_files: []
59
+ has_rdoc:
@@ -1,2 +0,0 @@
1
- source :gemcutter
2
- gem 'inkit'
@@ -1,12 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- inkit (0.0.11)
5
- mustache
6
- mustache (0.99.4)
7
-
8
- PLATFORMS
9
- ruby
10
-
11
- DEPENDENCIES
12
- inkit
@@ -1,12 +0,0 @@
1
- require "rubygems"
2
- require '../inkit'
3
-
4
- ink = Inkit.new({
5
- :token => "egxM28qoFkP",
6
- :secret => "QntGyT3P00T"
7
- })
8
-
9
- run lambda { |env|
10
- [200, {"Content-Type" => "text/plain"}, [ink.haml(:asd,{:layout => :test01})]]
11
- }
12
-