lws 0.1.2.1 → 0.1.3

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.rdoc ADDED
@@ -0,0 +1,59 @@
1
+ = LeftClick Web Services
2
+
3
+ LWS is a library for Ruby provides access to the LeftClick web
4
+ services/applications using a model-based structure that abstracts from API
5
+ calls using the available REST interfaces.
6
+
7
+ == Installation
8
+
9
+ In your Gemfile, add:
10
+
11
+ gem "lws"
12
+
13
+ or install the +ruby-lws+ package.
14
+
15
+
16
+ == Usage
17
+
18
+ First, you have to initialize the library. For example, with Rails, you
19
+ would create a new +config/initializers/lws.rb+ file with these lines:
20
+
21
+ # config/initializers/lws.rb
22
+ LWS.setup do |config|
23
+ config.api_token = "…" # Get it from someplace
24
+ end
25
+
26
+ After that, due to the fact that LWS is based on Her, you can access the
27
+ objects in the LeftClick Web Services similary to many ActiveRecord-like
28
+ ORM's:
29
+
30
+ map = Maps::Map.all.first
31
+ markers = map.markers
32
+
33
+ company = Company.find(6)
34
+ account = Auth::Account.create(name: "Foo Bar",
35
+ company: company)
36
+
37
+ loc = Presence::Location.where(name: "Test")
38
+ loc.destroy
39
+
40
+ == Configuration
41
+
42
+ The following example uses a much more elaborate setup:
43
+
44
+ LWS.setup do |config|
45
+ config.api_token = "…"
46
+ config.caching_object = MyRedisCache.new
47
+ config.environment = :development
48
+ config.endponts = { maps: "https://maps.leftclick.eu" }
49
+ config.http_debug = true
50
+ config.json_debug = true
51
+ end
52
+
53
+ In this setup, a caching object is used that follows the
54
+ +FaradayMiddleWare::Caching+ API. It uses all development API endpoints,
55
+ except for maps, which is overriden to use the production endpoint. Also
56
+ HTTP request and JSON data debug logging is enabled.
57
+
58
+ The +LC_LWS_ENV+ is supported to override the LWS environment.
59
+ Allowed values are "production" (default) and "development".
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ Rake::TestTask.new do |t|
10
10
  end
11
11
 
12
12
  YARD::Rake::YardocTask.new do |t|
13
- t.files = ["lib"]
13
+ t.files = ["README.rdoc", "lib"]
14
14
  t.options = ["--no-private",
15
15
  "--title", "LeftClick Web Services Documentation"]
16
16
  end
data/lib/lws/auth.rb CHANGED
@@ -2,11 +2,15 @@
2
2
  module LWS::Auth
3
3
 
4
4
  # The API endpoint for the auth app
5
- ENDPOINT = "https://auth.leftclick.eu/" unless defined? ENDPOINT
5
+ unless defined? ENDPOINT
6
+ ENDPOINT = { production: "https://auth.leftclick.eu/" ,
7
+ development: "https://auth-dev.leftclick.eu/" }
8
+ end
6
9
 
7
10
  # @!visibility private
8
11
  def self.api
9
- LWS.setup_api(LWS.config.endpoints[:auth] || ENDPOINT)
12
+ LWS.setup_api(LWS.config.endpoints[:auth] ||
13
+ ENDPOINT[LWS.config.environment])
10
14
  end
11
15
 
12
16
  ### Generic classes
data/lib/lws/maps.rb CHANGED
@@ -2,11 +2,15 @@
2
2
  module LWS::Maps
3
3
 
4
4
  # The API endpoint for the map app
5
- ENDPOINT = "https://maps.leftclick.eu/" unless defined? ENDPOINT
5
+ unless defined? ENDPOINT
6
+ ENDPOINT = { production: "https://maps.leftclick.eu/",
7
+ development: "https://maps-dev.leftclick.eu/" }
8
+ end
6
9
 
7
10
  #@!visibility private
8
11
  def self.api
9
- LWS.setup_api(LWS.config.endpoints[:maps] || ENDPOINT)
12
+ LWS.setup_api(LWS.config.endpoints[:maps] ||
13
+ ENDPOINT[LWS.config.environment])
10
14
  end
11
15
 
12
16
  ### Generic classes
data/lib/lws/presence.rb CHANGED
@@ -2,11 +2,15 @@
2
2
  module LWS::Presence
3
3
 
4
4
  # The API endpoint for the presence app
5
- ENDPOINT = "https://presence.leftclick.eu/" unless defined? ENDPOINT
5
+ unless defined? ENDPOINT
6
+ ENDPOINT = { production: "https://presence.leftclick.eu/",
7
+ development: "https://presence-dev.leftclick.eu/" }
8
+ end
6
9
 
7
10
  #@!visibility private
8
11
  def self.api
9
- LWS.setup_api(LWS.config.endpoints[:presence] || ENDPOINT)
12
+ LWS.setup_api(LWS.config.endpoints[:presence] ||
13
+ ENDPOINT[LWS.config.environment])
10
14
  end
11
15
 
12
16
  ### Generic classes
data/lib/lws/version.rb CHANGED
@@ -2,6 +2,6 @@ module LWS
2
2
 
3
3
  # The LWS library version.
4
4
  # @note This is not the API version!
5
- VERSION = '0.1.2.1'
5
+ VERSION = '0.1.3'
6
6
 
7
7
  end
data/lib/lws.rb CHANGED
@@ -84,6 +84,10 @@ module LWS
84
84
  # overrides
85
85
  property :endpoints, default: {}
86
86
 
87
+ #@!attribte environment
88
+ # @return [Symbol] the (default) API environment
89
+ property :environment, default: :production
90
+
87
91
  #@!attribute http_debug
88
92
  # @return [Boolean] whether to show HTTP debug messages
89
93
  property :http_debug, default: false
@@ -113,6 +117,11 @@ module LWS
113
117
 
114
118
  raise "API token is required" if config.api_token.blank?
115
119
 
120
+ # Override the environment if needed
121
+ if ENV["LC_LWS_ENV"].present?
122
+ @@config.environment = ENV["LC_LWS_ENV"].to_sym
123
+ end
124
+
116
125
  load_app_modules
117
126
 
118
127
  return self
data/test/test_generic.rb CHANGED
@@ -9,11 +9,12 @@ class TestGenericConfiguration < MiniTest::Unit::TestCase
9
9
  @configuration = Configuration.all.first
10
10
  end
11
11
 
12
- def test_valid_configuration
13
- refute_nil(@configuration)
14
- assert_instance_of(Configuration, @configuration)
15
- refute_nil(@configuration.id)
16
- end
12
+ # FIXME: renable this test once some configurations are available again
13
+ #def test_valid_configuration
14
+ # refute_nil(@configuration)
15
+ # assert_instance_of(Configuration, @configuration)
16
+ # refute_nil(@configuration.id)
17
+ #end
17
18
 
18
19
  end
19
20
 
data/test/test_helper.rb CHANGED
@@ -9,7 +9,5 @@ LWS.setup do |config|
9
9
  config.http_debug = true
10
10
  config.json_debug = true
11
11
  end
12
- config.endpoints = { auth: "https://auth-dev.leftclick.eu",
13
- maps: "https://maps-dev.leftclick.eu",
14
- presence: "https://presence-dev.leftclick.eu" }
12
+ config.environment = :development
15
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.1
4
+ version: 0.1.3
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: 2016-02-26 00:00:00.000000000 Z
12
+ date: 2016-03-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday_middleware
16
- requirement: &16029460 !ruby/object:Gem::Requirement
16
+ requirement: &10903360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -24,10 +24,10 @@ dependencies:
24
24
  version: '1.0'
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *16029460
27
+ version_requirements: *10903360
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: hashie
30
- requirement: &16028600 !ruby/object:Gem::Requirement
30
+ requirement: &10902460 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *16028600
38
+ version_requirements: *10902460
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: her
41
- requirement: &16027860 !ruby/object:Gem::Requirement
41
+ requirement: &10901740 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ~>
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: 0.8.1
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *16027860
49
+ version_requirements: *10901740
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: hashie
52
- requirement: &16027280 !ruby/object:Gem::Requirement
52
+ requirement: &10901140 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :development
59
59
  prerelease: false
60
- version_requirements: *16027280
60
+ version_requirements: *10901140
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: her
63
- requirement: &16026560 !ruby/object:Gem::Requirement
63
+ requirement: &10900440 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ~>
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 0.8.1
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *16026560
71
+ version_requirements: *10900440
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: minitest
74
- requirement: &16025980 !ruby/object:Gem::Requirement
74
+ requirement: &10899860 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: '0'
80
80
  type: :development
81
81
  prerelease: false
82
- version_requirements: *16025980
82
+ version_requirements: *10899860
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
- requirement: &16041720 !ruby/object:Gem::Requirement
85
+ requirement: &10915620 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ~>
@@ -90,7 +90,7 @@ dependencies:
90
90
  version: 0.9.2
91
91
  type: :development
92
92
  prerelease: false
93
- version_requirements: *16041720
93
+ version_requirements: *10915620
94
94
  description: ! "This library for Ruby provides access to the LeftClick\n web services/applications
95
95
  using a model-based structure that abstracts from API calls\n using the available
96
96
  REST interfaces."
@@ -103,6 +103,7 @@ extra_rdoc_files: []
103
103
  files:
104
104
  - .gitignore
105
105
  - Gemfile
106
+ - README.rdoc
106
107
  - Rakefile
107
108
  - bin/lwsconsole
108
109
  - lib/lws.rb