nextday 0.3.0 → 0.4.0

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/README.md CHANGED
@@ -45,6 +45,33 @@ DateTime.today.delivery_day
45
45
  Time.now.delivery_day
46
46
  ```
47
47
 
48
+ ## Rack Application
49
+
50
+ To make caching easier you can mount the ```Nextday::JSON``` in your application so you can poll it every few minutes and have next to real time data.
51
+
52
+ It will return so:
53
+
54
+ ```ruby
55
+ {
56
+ "cut_off_time": "16:00",
57
+ "working_day": false,
58
+ "next_working_day": "2012-06-11",
59
+ "previous_working_day": "2012-06-08",
60
+ "despatch_day": "2012-06-11",
61
+ "delivery_day": "2012-06-12"
62
+ }
63
+ ```
64
+
65
+ ### Rails
66
+
67
+ ```ruby
68
+ require 'nextday/json'
69
+
70
+ YourAmazing::Application.routes.draw do
71
+ mount Nextday::JSON.new, :at => "/nextday.json"
72
+ end
73
+ ```
74
+
48
75
  ## Configuration
49
76
 
50
77
  To set the cut off time to a different value:
@@ -0,0 +1,23 @@
1
+ require 'rack'
2
+ require 'json'
3
+ require 'nextday'
4
+
5
+ module Nextday
6
+ class JSON
7
+ def call(env)
8
+ [200, {"Content-Type" => "application/json"}, [data.to_json]]
9
+ end
10
+
11
+ protected
12
+ def data(current_time = Time.now)
13
+ {
14
+ :cut_off_time => Nextday::Config.cut_off_time,
15
+ :working_day => current_time.working_day?,
16
+ :next_working_day => current_time.next_working_day,
17
+ :previous_working_day => current_time.previous_working_day,
18
+ :despatch_day => current_time.despatch_day,
19
+ :delivery_day => current_time.delivery_day
20
+ }
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module Nextday
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
data/nextday.gemspec CHANGED
@@ -25,5 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_development_dependency('rspec', '~> 2.10.0')
26
26
  s.add_development_dependency('yard')
27
27
  s.add_development_dependency('rake')
28
- # s.add_runtime_dependency "rest-client"
28
+ s.add_development_dependency('rack-test')
29
+ s.add_runtime_dependency "json"
30
+ s.add_runtime_dependency "rack"
29
31
  end
@@ -0,0 +1,31 @@
1
+ require_relative '../../spec_helper.rb'
2
+ require 'rack/test'
3
+ require 'nextday/json'
4
+
5
+ describe Nextday::JSON do
6
+ include Rack::Test::Methods
7
+
8
+ def app
9
+ Nextday::JSON.new
10
+ end
11
+
12
+ before do
13
+ get '/'
14
+ end
15
+
16
+ it { last_response.should be_ok }
17
+
18
+ it { last_response.header["Content-Type"].should eql("application/json") }
19
+
20
+ it "should return the correct json" do
21
+ current_time = Time.now
22
+ JSON.parse(last_response.body).should eql({
23
+ "cut_off_time" => Nextday::Config.cut_off_time,
24
+ "working_day" => current_time.working_day?,
25
+ "next_working_day" => current_time.next_working_day.to_s,
26
+ "previous_working_day" => current_time.previous_working_day.to_s,
27
+ "despatch_day" => current_time.despatch_day.to_s,
28
+ "delivery_day" => current_time.delivery_day.to_s
29
+ })
30
+ end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nextday
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-08 00:00:00.000000000 Z
12
+ date: 2012-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -59,6 +59,54 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rack-test
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: json
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rack
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
62
110
  description: ! "\n Finds the Next Working Day even if holidays are in the way.\n
63
111
  \ Extends Date with a .next_working_day instance method.\n "
64
112
  email:
@@ -80,6 +128,7 @@ files:
80
128
  - lib/nextday/date_extension.rb
81
129
  - lib/nextday/holiday.rb
82
130
  - lib/nextday/holidays.rb
131
+ - lib/nextday/json.rb
83
132
  - lib/nextday/public_holidays.rb
84
133
  - lib/nextday/version.rb
85
134
  - nextday.gemspec
@@ -87,6 +136,7 @@ files:
87
136
  - spec/lib/nextday/core_ext/date_spec.rb
88
137
  - spec/lib/nextday/holiday_spec.rb
89
138
  - spec/lib/nextday/holidays_spec.rb
139
+ - spec/lib/nextday/json_spec.rb
90
140
  - spec/spec_helper.rb
91
141
  homepage: https://github.com/robwilliams/nextday
92
142
  licenses: []
@@ -102,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
152
  version: '0'
103
153
  segments:
104
154
  - 0
105
- hash: 798981716380311647
155
+ hash: -2514156019871276712
106
156
  required_rubygems_version: !ruby/object:Gem::Requirement
107
157
  none: false
108
158
  requirements:
@@ -111,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
161
  version: '0'
112
162
  segments:
113
163
  - 0
114
- hash: 798981716380311647
164
+ hash: -2514156019871276712
115
165
  requirements: []
116
166
  rubyforge_project: nextday
117
167
  rubygems_version: 1.8.24
@@ -123,5 +173,6 @@ test_files:
123
173
  - spec/lib/nextday/core_ext/date_spec.rb
124
174
  - spec/lib/nextday/holiday_spec.rb
125
175
  - spec/lib/nextday/holidays_spec.rb
176
+ - spec/lib/nextday/json_spec.rb
126
177
  - spec/spec_helper.rb
127
178
  has_rdoc: