rack-remote-configuration 0.0.1 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4318e585789e110f4f25d46a19ab95e92ca52df
4
- data.tar.gz: c23f225cab80543587c311cd5b2b217a0f30b691
3
+ metadata.gz: 7acbe80ccdf7cf70335adb5cb3ec7d69a5ad693c
4
+ data.tar.gz: 04d9efb8d40ce34f3ef2c0eedb22e03212c68ff2
5
5
  SHA512:
6
- metadata.gz: 09876f15758b99bd01cdec0276274bd86955567e2c6d511bbb1e0ae75eb5f8ad2368a847f1c264e2bbcbcaec23983d00891a9c37e8f26adb0ec5ecc7cc526d80
7
- data.tar.gz: 30807ba3f96c1d1c383961fd26f435988fe00ec3755f0276c2877201625b50c65a7363ca554ea63500f1904d42c4ccb70b02055f45a4ba5ac6b60344281bb31e
6
+ metadata.gz: 8fa82bd2a82cc4db79d8436e4eed82e8488fcd77d973ff35ffa92112d1be246c3563bbcc0f64cdadb3a50b01d08a4c15f11becc541ef3b6704917f14d11294e8
7
+ data.tar.gz: 13741442cc08127842287e86abedc5e941986a36edfb9a739842184b92ae8192d23879b59052fd660d4743f1e48c667ded17360c7787eb1bd0dfae0783857983
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-remote-configuration (0.0.1)
4
+ rack-remote-configuration (0.1.1)
5
5
  json (~> 1.8)
6
6
  plist (~> 3.1)
7
7
  rack (~> 1.4)
@@ -11,16 +11,16 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- backports (3.3.3)
14
+ backports (3.15.0)
15
15
  diff-lcs (1.2.4)
16
- eventmachine (1.0.3)
17
- json (1.8.0)
18
- plist (3.1.0)
19
- rack (1.5.2)
20
- rack-protection (1.5.0)
16
+ json (1.8.6)
17
+ multi_json (1.13.1)
18
+ plist (3.5.0)
19
+ rack (1.6.11)
20
+ rack-protection (1.5.5)
21
21
  rack
22
- rack-test (0.6.2)
23
- rack (>= 1.0)
22
+ rack-test (1.1.0)
23
+ rack (>= 1.0, < 3)
24
24
  rake (10.0.4)
25
25
  rspec (2.13.0)
26
26
  rspec-core (~> 2.13.0)
@@ -30,18 +30,18 @@ GEM
30
30
  rspec-expectations (2.13.0)
31
31
  diff-lcs (>= 1.1.3, < 2.0)
32
32
  rspec-mocks (2.13.1)
33
- sinatra (1.4.3)
34
- rack (~> 1.4)
33
+ sinatra (1.4.8)
34
+ rack (~> 1.5)
35
35
  rack-protection (~> 1.4)
36
- tilt (~> 1.3, >= 1.3.4)
37
- sinatra-contrib (1.4.0)
36
+ tilt (>= 1.3, < 3)
37
+ sinatra-contrib (1.4.7)
38
38
  backports (>= 2.0)
39
- eventmachine
39
+ multi_json
40
40
  rack-protection
41
41
  rack-test
42
- sinatra (~> 1.4.2)
43
- tilt (~> 1.3)
44
- tilt (1.4.1)
42
+ sinatra (~> 1.4.0)
43
+ tilt (>= 1.3, < 3)
44
+ tilt (2.0.9)
45
45
 
46
46
  PLATFORMS
47
47
  ruby
@@ -50,3 +50,6 @@ DEPENDENCIES
50
50
  rack-remote-configuration!
51
51
  rake
52
52
  rspec
53
+
54
+ BUNDLED WITH
55
+ 2.0.1
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
1
+ Copyright (c) 2013 Mattt Thompson (http://mattt.me/)
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,10 +1,24 @@
1
- Rack::RemoteConfiguration
2
- =========================
1
+ # Rack::RemoteConfiguration
2
+
3
3
  **Serve property list or JSON configuration files**
4
4
 
5
- Although mobile and rich web clients consume resources from a server, there may be some application details that you'd like to coordinate outside of the resource structure of an API.
5
+ Although mobile and rich web clients consume resources from a server,
6
+ there may be some application details
7
+ that you'd like to coordinate outside of the resource structure of an API.
8
+
9
+ **Remote Configuration** is a great way to break out client-specific details
10
+ into a single, orthogonal endpoint,
11
+ such as [feature flags](http://code.flickr.com/blog/2009/12/02/flipping-out/),
12
+ impromptu [A/B tests](http://en.wikipedia.org/wiki/A/B_testing),
13
+ or a simple ["message of the day"](http://en.wikipedia.org/wiki/Motd_%28Unix%29)
14
+
15
+ ## Installation
6
16
 
7
- **Remote Configuration** is a great way to break out client-specific details into a single, orthogonal endpoint, such as [feature flags](http://code.flickr.com/blog/2009/12/02/flipping-out/), impromptu [A/B tests](http://en.wikipedia.org/wiki/A/B_testing), or a simple ["message of the day"](http://en.wikipedia.org/wiki/Motd_%28Unix%29)
17
+ ### Gemfile
18
+
19
+ ````ruby
20
+ gem 'rack-remote-configuration', require: 'rack/remote-configuration'
21
+ ```
8
22
 
9
23
  ## Usage
10
24
 
@@ -16,24 +30,13 @@ run Rack::RemoteConfiguration.new configuration: {
16
30
  'Price' => 4.20,
17
31
  'FeatureXIsLaunched' => true
18
32
  }
19
- ```
33
+ ````
20
34
 
21
35
  ### Parameters
22
36
 
23
37
  - `configuration`: a `Hash`, or `File` or a `.json` or `.plist` file path with the specified configuration.
24
38
  - `path`: the endpoint to serve the configuration, relative to the mount root of the application. _(defaults to `/configuration`)_
25
39
 
26
- ## iOS Client Integration
27
-
28
- > [GroundControl](https://github.com/mattt/GroundControl) gives you a dead-simple way to remotely configure your app's [User Defaults](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/).
29
-
30
- ```objective-c
31
- NSURL *URL = [NSURL URLWithString:@"http://example.com/defaults.plist"];
32
- [[NSUserDefaults standardUserDefaults] registerDefaultsWithURL:URL];
33
- ```
34
-
35
- See the [GroundControl README](https://github.com/mattt/GroundControl/blob/master/README.md) for further guidance on installation & usage.
36
-
37
40
  ## Deployment
38
41
 
39
42
  `Rack::RemoteConfiguration` can be deployed to Heroku with the following commands:
@@ -45,12 +48,9 @@ $ git push heroku master
45
48
 
46
49
  ## Contact
47
50
 
48
- Mattt Thompson
49
-
50
- - http://github.com/mattt
51
- - http://twitter.com/mattt
52
- - m@mattt.me
51
+ [Mattt](https://twitter.com/mattt)
53
52
 
54
53
  ## License
55
54
 
56
- Rack::RemoteConfiguration is available under the MIT license. See the LICENSE file for more info.
55
+ Rack::RemoteConfiguration is available under the MIT license.
56
+ See the LICENSE file for more info.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rack'
2
4
  require 'sinatra/base'
3
5
  require 'sinatra/respond_with'
@@ -8,26 +10,30 @@ require 'plist'
8
10
  module Rack
9
11
  class RemoteConfiguration
10
12
  def initialize(options = {})
11
- raise ArgumentError, "Missing required :configuration option" unless options[:configuration]
13
+ raise ArgumentError, 'Missing required :configuration option' unless options[:configuration]
12
14
 
13
- path = options[:path] || "/configuration"
15
+ path = options[:path] || '/configuration'
14
16
  configuration = case options[:configuration]
15
17
  when Hash
16
18
  options[:configuration]
17
19
  when File
18
- return new((Plist::parse_xml(configuration.path) || JSON.parse(configuration.read) rescue nil))
20
+ return new((begin
21
+ Plist.parse_xml(configuration.path) || JSON.parse(configuration.read)
22
+ rescue StandardError
23
+ nil
24
+ end))
19
25
  when String
20
26
  return new(File.open(configuration)) if File.exist?(configuration)
21
27
  end
22
28
 
23
- raise ArgumentError, "Invalid configuration (expected Hash or either .json or .plist File or file path)" if configuration.nil?
29
+ raise ArgumentError, 'Invalid configuration (expected Hash or either .json or .plist File or file path)' if configuration.nil?
24
30
 
25
31
  begin
26
- [:to_json, :to_plist].each do |serialization|
32
+ %i[to_json to_plist].each do |serialization|
27
33
  configuration.send(serialization)
28
34
  end
29
- rescue NoMethodError => error
30
- raise ArgumentError, "Serialization Error: #{error}"
35
+ rescue NoMethodError => e
36
+ raise ArgumentError, "Serialization Error: #{e}"
31
37
  end
32
38
 
33
39
  @app = Class.new(Sinatra::Base) do
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rack
4
+ class RemoteConfiguration
5
+ VERSION = '0.1.1'
6
+ end
7
+ end
@@ -1,27 +1,30 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+ require 'rack/remote-configuration/version'
3
5
 
4
6
  Gem::Specification.new do |s|
5
- s.name = "rack-remote-configuration"
6
- s.authors = ["Mattt Thompson"]
7
- s.email = "m@mattt.me"
8
- s.homepage = "http://mattt.me"
9
- s.version = "0.0.1"
7
+ s.name = 'rack-remote-configuration'
8
+ s.authors = ['Mattt']
9
+ s.email = 'mattt@me.com'
10
+ s.license = 'MIT'
11
+ s.homepage = 'https://mat.tt'
12
+ s.version = Rack::RemoteConfiguration::VERSION
10
13
  s.platform = Gem::Platform::RUBY
11
- s.summary = "Rack::RemoteConfiguration"
12
- s.description = "Serve property list or JSON configuration files."
14
+ s.summary = 'Rack::RemoteConfiguration'
15
+ s.description = 'Serve property list or JSON configuration files.'
13
16
 
14
- s.add_dependency "rack", "~> 1.4"
15
- s.add_dependency "sinatra", "~> 1.3"
16
- s.add_dependency "sinatra-contrib", "~> 1.4"
17
- s.add_dependency "json", "~> 1.8"
18
- s.add_dependency "plist", "~> 3.1"
17
+ s.add_dependency 'json', '~> 1.8'
18
+ s.add_dependency 'plist', '~> 3.1'
19
+ s.add_dependency 'rack', '~> 1.4'
20
+ s.add_dependency 'sinatra', '~> 1.3'
21
+ s.add_dependency 'sinatra-contrib', '~> 1.4'
19
22
 
20
- s.add_development_dependency "rspec"
21
- s.add_development_dependency "rake"
23
+ s.add_development_dependency 'rake'
24
+ s.add_development_dependency 'rspec'
22
25
 
23
- s.files = Dir["./**/*"].reject { |file| file =~ /\.\/(bin|example|log|pkg|script|spec|test|vendor)/ }
26
+ s.files = Dir['./**/*'].reject { |file| file =~ %r{\./(bin|example|log|pkg|script|spec|test|vendor)} }
24
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
- s.require_paths = ["lib"]
28
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
29
+ s.require_paths = ['lib']
27
30
  end
metadata CHANGED
@@ -1,128 +1,131 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-remote-configuration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
- - Mattt Thompson
7
+ - Mattt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-19 00:00:00.000000000 Z
11
+ date: 2019-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rack
14
+ name: json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.4'
19
+ version: '1.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.4'
26
+ version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
- name: sinatra
28
+ name: plist
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: '3.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: '3.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: sinatra-contrib
42
+ name: rack
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.4'
55
55
  - !ruby/object:Gem::Dependency
56
- name: json
56
+ name: sinatra
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.8'
61
+ version: '1.3'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.8'
68
+ version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
- name: plist
70
+ name: sinatra-contrib
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.1'
75
+ version: '1.4'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.1'
82
+ version: '1.4'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Serve property list or JSON configuration files.
112
- email: m@mattt.me
112
+ email: mattt@me.com
113
113
  executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
- - ./Gemfile
118
- - ./Gemfile.lock
119
- - ./lib/rack/remote-configuration.rb
120
- - ./LICENSE
121
- - ./rack-remote-configuration.gemspec
122
- - ./Rakefile
123
- - ./README.md
124
- homepage: http://mattt.me
125
- licenses: []
117
+ - "./Gemfile"
118
+ - "./Gemfile.lock"
119
+ - "./LICENSE"
120
+ - "./README.md"
121
+ - "./Rakefile"
122
+ - "./lib/rack/remote-configuration.rb"
123
+ - "./lib/rack/remote-configuration/version.rb"
124
+ - "./rack-remote-configuration-0.1.0.gem"
125
+ - "./rack-remote-configuration.gemspec"
126
+ homepage: https://mat.tt
127
+ licenses:
128
+ - MIT
126
129
  metadata: {}
127
130
  post_install_message:
128
131
  rdoc_options: []
@@ -130,17 +133,17 @@ require_paths:
130
133
  - lib
131
134
  required_ruby_version: !ruby/object:Gem::Requirement
132
135
  requirements:
133
- - - '>='
136
+ - - ">="
134
137
  - !ruby/object:Gem::Version
135
138
  version: '0'
136
139
  required_rubygems_version: !ruby/object:Gem::Requirement
137
140
  requirements:
138
- - - '>='
141
+ - - ">="
139
142
  - !ruby/object:Gem::Version
140
143
  version: '0'
141
144
  requirements: []
142
145
  rubyforge_project:
143
- rubygems_version: 2.0.3
146
+ rubygems_version: 2.6.14
144
147
  signing_key:
145
148
  specification_version: 4
146
149
  summary: Rack::RemoteConfiguration