inkit 0.0.12 → 0.0.13

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.
@@ -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
-