motion-config 1.0.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.
@@ -0,0 +1,6 @@
1
+ .repl_history
2
+ build
3
+ .DS_STORE
4
+ Gemfile.lock
5
+ .ruby-version
6
+ *.gem
@@ -0,0 +1,2 @@
1
+ FacebookAPPID: "13123123"
2
+ api_endpoint: "https://www.google.fr"
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,16 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/motion_config/version.rb', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = 'motion-config'
6
+ gem.version = MotionConfig::VERSION
7
+
8
+ gem.authors = ['Joffrey Jaffeux']
9
+ gem.email = ['j.jaffeux@gmail.com']
10
+ gem.summary = "RubyMotion config out of your Rakefile !"
11
+ gem.description = "RubyMotion config out of your Rakefile !"
12
+ gem.homepage = 'https://github.com/jjaffeux/motion-config'
13
+
14
+ gem.files = `git ls-files`.split($\)
15
+ gem.require_paths = ['lib']
16
+ end
@@ -0,0 +1,40 @@
1
+ # MotionConfig
2
+
3
+ ## Description
4
+
5
+ MotionConfig allows you to define string settings for you RubyMotion project without putting them in the Rakefile. You can set user level settings and app level settings.
6
+
7
+ After installation, the first rake will create two files
8
+
9
+ * ~/.motion_config.yml # this is the user level config file
10
+
11
+ * /path/to/your_rm_project/.motion_config.yml # this is the app level config file
12
+
13
+ App level config file take precedence over user level config file.
14
+
15
+ ## Installation
16
+
17
+ gem install 'motion-config'
18
+
19
+ require 'motion-config' in the Rakefile
20
+
21
+ or
22
+
23
+ gem 'motion-config' in your Gemfile
24
+
25
+
26
+ ## Usage
27
+
28
+ 1) Run rake to create files
29
+
30
+ 2) Edit files ~/.motion_config.yml or /path/to/your_rm_project/.motion_config.yml
31
+
32
+ This is YAML and you can only set strings or this will fail, example yaml config :
33
+
34
+ ```yaml
35
+ api_endpoint: "https://www.google.fr"
36
+ FacebookAPPID: "323232DQSDQDDS"
37
+ ```
38
+
39
+ 3) You now have access to ENV['api_endpoint'] in your app or your Rakefile
40
+
@@ -0,0 +1,11 @@
1
+ $:.unshift('/Library/RubyMotion/lib')
2
+ require 'motion/project'
3
+ require "bundler/gem_tasks"
4
+ require "bundler/setup"
5
+
6
+ $:.unshift("./lib/")
7
+ require './lib/motion_config'
8
+
9
+ Motion::Project::App.setup do |app|
10
+ app.name = 'MotionConfig'
11
+ end
@@ -0,0 +1,7 @@
1
+ class AppDelegate
2
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
3
+ p ENV['FacebookAPPID']
4
+ p ENV['api_endpoint']
5
+ true
6
+ end
7
+ end
@@ -0,0 +1,48 @@
1
+ unless defined?(Motion::Project::Config)
2
+ raise "The motion-config gem must be required within a RubyMotion project Rakefile."
3
+ end
4
+
5
+ require 'yaml'
6
+
7
+ module MotionConfig
8
+ GLOBAL_CONFIG = File.expand_path("~/.motion_config.yml")
9
+ APP_CONFIG = File.expand_path(".motion_config.yml")
10
+
11
+ module_function
12
+
13
+ def start
14
+ check_files
15
+ environmentize parse(GLOBAL_CONFIG)
16
+ environmentize parse(APP_CONFIG)
17
+ end
18
+
19
+ def check_files
20
+ system("touch #{GLOBAL_CONFIG.shellescape}") unless File.exist?(GLOBAL_CONFIG)
21
+ system("touch #{APP_CONFIG.shellescape}") unless File.exist?(APP_CONFIG)
22
+ end
23
+
24
+ def environmentize(settings)
25
+ settings.each do |key, value|
26
+ log_override(key) unless ENV[key].nil?
27
+ ENV[key] = value
28
+ end
29
+ end
30
+
31
+ def parse(file)
32
+ # catch exception for a bug in ruby-1.9.3p194
33
+ # https://bugs.ruby-lang.org/issues/6487
34
+ begin
35
+ YAML.load_file(file) || {}
36
+ rescue TypeError
37
+ {}
38
+ end
39
+ end
40
+
41
+ def log_override(key)
42
+ App.log "motion-config", "#{key} previously set has been overridden"
43
+ end
44
+ end
45
+
46
+ Motion::Project::App.setup do |app|
47
+ MotionConfig.start
48
+ end
@@ -0,0 +1,3 @@
1
+ module MotionConfig
2
+ VERSION = "1.0.0"
3
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: motion-config
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ - 0
9
+ version: 1.0.0
10
+ platform: ruby
11
+ authors:
12
+ - Joffrey Jaffeux
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2013-03-23 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: RubyMotion config out of your Rakefile !
22
+ email:
23
+ - j.jaffeux@gmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - .gitignore
32
+ - .motion_config.yml
33
+ - Gemfile
34
+ - MotionConfig.gemspec
35
+ - README.md
36
+ - Rakefile
37
+ - app/app_delegate.rb
38
+ - lib/motion_config.rb
39
+ - lib/motion_config/version.rb
40
+ has_rdoc: true
41
+ homepage: https://github.com/jjaffeux/motion-config
42
+ licenses: []
43
+
44
+ post_install_message:
45
+ rdoc_options: []
46
+
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ segments:
54
+ - 0
55
+ version: "0"
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ requirements: []
64
+
65
+ rubyforge_project:
66
+ rubygems_version: 1.3.6
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: RubyMotion config out of your Rakefile !
70
+ test_files: []
71
+