chaplin 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b88b42dd226a2e3d9553ddb47250d83ac43e07d
4
- data.tar.gz: 02828e7fec8444d4de837ed409e08bfdd317c296
3
+ metadata.gz: db428235e40febf17c34bb3a2091836828f1722c
4
+ data.tar.gz: de03bacbdd6dab54e88688c09bbfb244c5254df4
5
5
  SHA512:
6
- metadata.gz: 4c40e4fa22f823b9a3403690ef7ec8b81dfc68271219422c7be3bf089d65f3bd5699122cd8cab01aad5b40c1efe4bf19b11cdc018aeb5937de20ec850a4678e8
7
- data.tar.gz: d87c879b813e303e658398add11fce95ea7de0606074ea88b41f94317d5c38f053b9e0f1444b69510c264283dfcd5234036dafefdfd788fcb232ad26c55a549a
6
+ metadata.gz: cff47ddbe4db3b6cb5697279651090465227b98de75c63c2852a8180adbf02f78a24c9ee16d8931671aa6f0aedc8121e2c61642a146886dd18603eded9a69b10
7
+ data.tar.gz: acd1de9efd894c543b4d050c45e9d595b74f630ce4468c8a7cbc29db24a20bce10323b2033f0bc1fe215d44b1c3f37b56d6414419862ab76342b804890e422fd
@@ -42,7 +42,7 @@ class Chaplin
42
42
 
43
43
  def api_request_params(full_params)
44
44
  if json_request? && [:post, :put, :patch].include?(http_method)
45
- Mustache.render(params.to_json, full_params)
45
+ json_rendered_params(full_params)
46
46
  else
47
47
  rendered_params(full_params)
48
48
  end
@@ -56,6 +56,12 @@ class Chaplin
56
56
  @@default_headers.merge(headers)
57
57
  end
58
58
 
59
+ def json_rendered_params(full_params)
60
+ params.each_with_object({}) do |(key, value), rendered_params|
61
+ rendered_params[key] = JSON.parse(Mustache.render(value, full_params))
62
+ end.to_json
63
+ end
64
+
59
65
  def rendered_params(full_params)
60
66
  params.each_with_object({}) do |(key, value), rendered_params|
61
67
  rendered_params[key] = Mustache.render(value, full_params)
@@ -0,0 +1,12 @@
1
+ require 'mustache'
2
+
3
+ class Chaplin
4
+ InlinePartial = Struct.new(:content) do
5
+
6
+ def render(chaplin_request_params)
7
+ full_params = chaplin_request_params.merge(env: ENV)
8
+ Mustache.render(content, full_params)
9
+ end
10
+
11
+ end
12
+ end
@@ -6,6 +6,11 @@ class Chaplin
6
6
 
7
7
  class ApiEndpoints
8
8
 
9
+ def self.valid?(raw_data_value)
10
+ http_verbs = ['get ', 'post ', 'put ', 'head ', 'delete ']
11
+ [raw_data_value].flatten.first.downcase.start_with?(*http_verbs)
12
+ end
13
+
9
14
  def self.build(api_endpoint_declaration)
10
15
  new(api_endpoint_declaration).build
11
16
  end
@@ -1,4 +1,5 @@
1
1
  require_relative '../responses/page'
2
+ require_relative '../inline_partial'
2
3
  require_relative 'api_endpoints'
3
4
 
4
5
  class Chaplin
@@ -60,14 +61,21 @@ class Chaplin
60
61
 
61
62
  def build_data(raw_data_value)
62
63
  if partial?(raw_data_value)
63
- @pages[raw_data_value]
64
- else
64
+ partial_name = raw_data_value.split(" ").last
65
+ @pages[partial_name]
66
+ elsif endpoint?(raw_data_value)
65
67
  ApiEndpoints.build(raw_data_value)
68
+ else
69
+ InlinePartial.new(raw_data_value)
66
70
  end
67
71
  end
68
72
 
69
73
  def partial?(raw_data_value)
70
- raw_data_value.is_a?(String) && !raw_data_value.include?(' ')
74
+ raw_data_value.is_a?(String) && raw_data_value.downcase.start_with?("render")
75
+ end
76
+
77
+ def endpoint?(raw_data_value)
78
+ ApiEndpoints.valid?(raw_data_value)
71
79
  end
72
80
 
73
81
  end
@@ -7,6 +7,8 @@ class Chaplin
7
7
 
8
8
  def self.setup(project_path)
9
9
  set :public_folder, project_path + '/public'
10
+ set :static_cache_control, [:public, :max_age => 300]
11
+
10
12
  set :show_exceptions, false
11
13
 
12
14
  error do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chaplin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Mours
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-21 00:00:00.000000000 Z
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -232,6 +232,7 @@ files:
232
232
  - lib/chaplin.rb
233
233
  - lib/chaplin/api_endpoint.rb
234
234
  - lib/chaplin/endpoint.rb
235
+ - lib/chaplin/inline_partial.rb
235
236
  - lib/chaplin/parser.rb
236
237
  - lib/chaplin/parser/api_endpoints.rb
237
238
  - lib/chaplin/parser/config.rb
@@ -267,4 +268,3 @@ signing_key:
267
268
  specification_version: 4
268
269
  summary: Build HTML apps from JSON APIs in no time
269
270
  test_files: []
270
- has_rdoc: