the-city-admin 0.6.3 → 0.6.4

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.
@@ -23,11 +23,23 @@ else
23
23
  puts "Metrices: #{metric_list.count}"
24
24
  end
25
25
 
26
- measurement_list = TheCity::MetricMeasurementList.new({:metric_id => metric_list[0].id})
26
+
27
+ # The next line is the same as: TheCity::MetricMeasurementList.new({:metric_id => metric_list[0].id})
28
+ measurement_list = metric_list[0].measurements
27
29
  if metric_list.empty?
28
30
  puts "No measurements in list"
29
31
  else
30
32
  puts "Measurements: #{measurement_list.count}"
31
33
  end
32
34
 
35
+
36
+ # The next line is the same as: TheCity::MetricMeasurementValues.new({:metric_id => metric_list[0].id})
37
+ values = metric_list[0].measurement_values
38
+ if values.empty?
39
+ puts "No values returned"
40
+ else
41
+ puts "Measurement values: #{values.count}"
42
+ values.each_with_index { |value, indx| puts "#{indx+1}) #{value}" }
43
+ end
44
+
33
45
  puts "####################################"
data/lib/api/metric.rb CHANGED
@@ -32,17 +32,29 @@ module TheCity
32
32
  end
33
33
 
34
34
 
35
- # Address information.
35
+ # Measurement information.
36
36
  #
37
- # @return [UserAddressList]
37
+ # @return [MetricMeasurementList]
38
38
  def measurements
39
39
  return @measurement_list unless @measurement_list.nil?
40
40
  return nil unless self.id
41
-
42
- reader = MetricMeasurementListReader.new(self.id)
43
- @measurement_list = MetricMeasurementList.new(reader)
41
+
42
+ @measurement_list = MetricMeasurementList.new({:metric_id => self.id})
44
43
  return @measurement_list
45
44
  end
45
+
46
+
47
+
48
+ # Measurement values list information.
49
+ #
50
+ # @return [MetricMeasurementValues]
51
+ def measurement_values
52
+ return @measurement_values unless @measurement_values.nil?
53
+ return nil unless self.id
54
+
55
+ @measurement_values = MetricMeasurementValues.new({:metric_id => self.id})
56
+ return @measurement_values
57
+ end
46
58
  end
47
59
 
48
60
  end
@@ -9,14 +9,15 @@ module TheCity
9
9
  # @param options A hash of options for loading the list.
10
10
  #
11
11
  # Options:
12
+ # :metric_id - The ID of the metric to load the measurements for. (required)
12
13
  # :page - The page number to get.
13
14
  # :reader - The Reader to use to load the data.
14
15
  #
15
16
  #
16
17
  # Examples:
17
- # MetricMeasurementList.new({:group_id => 12345})
18
+ # MetricMeasurementList.new({:metric_id => 12345})
18
19
  #
19
- # MetricMeasurementList.new({:group_id => 12345, :page => 2})
20
+ # MetricMeasurementList.new({:metric_id => 12345, :page => 2})
20
21
  #
21
22
  def initialize(options = {})
22
23
  @options = options
@@ -0,0 +1,65 @@
1
+ module TheCity
2
+
3
+ class MetricMeasurementValues < ApiObject
4
+
5
+ include Enumerable
6
+
7
+ tc_attr_accessor :values
8
+
9
+ # Loads the metric measurement values by the specified metric ID.
10
+ #
11
+ # @param metric_id The ID of the user to load.
12
+ #
13
+ # Returns a new {Metric} object.
14
+ def self.load_by_id(metric_id)
15
+ metric_reader = MetricReader.new(metric_id)
16
+ self.new(metric_reader.load_feed)
17
+ end
18
+
19
+
20
+ # Constructor.
21
+ #
22
+ # @param options A hash of options for loading the list.
23
+ #
24
+ # Options:
25
+ # :metric_id - The ID of the metric to load the measurements values for. (required)
26
+ # :reader - The Reader to use to load the data.
27
+ #
28
+ #
29
+ # Examples:
30
+ # MetricMeasurementValues.new({:metric_id => 12345})
31
+ #
32
+ def initialize(options = {})
33
+ options[:reader] = TheCity::MetricMeasurementValuesReader.new(options) if options[:reader].nil?
34
+ @json_data = options[:reader].load_feed
35
+ end
36
+
37
+ # Get the specified account admin privilege.
38
+ #
39
+ # @param index The index of the admin privilege to get.
40
+ #
41
+ # @return Number
42
+ def [](index)
43
+ @json_data['values'][index] if @json_data['values'][index]
44
+ end
45
+
46
+
47
+ # This method is needed for Enumerable.
48
+ def each &block
49
+ @json_data['values'].each{ |value| yield(value) }
50
+ end
51
+
52
+ # Alias the count method
53
+ alias :size :count
54
+
55
+ # Checks if the list is empty.
56
+ #
57
+ # @return True on empty, false otherwise.
58
+ def empty?
59
+ @json_data['values'].empty?
60
+ end
61
+
62
+ end
63
+
64
+ end
65
+
@@ -0,0 +1,22 @@
1
+ module TheCity
2
+
3
+ class MetricMeasurementValuesReader < ApiReader
4
+
5
+ # Constructor.
6
+ #
7
+ # @param options A hash of options for requesting data from the server.
8
+ # :: metric_id is required
9
+ # @param [CacheAdapter] cacher (optional) The cacher to be used to cache data.
10
+ def initialize(options = {}, cacher = nil)
11
+ metric_id = options.delete(:metric_id)
12
+ @url_data_path = "/metrics/#{metric_id}/measurements/values"
13
+
14
+ # The object to store and load the cache.
15
+ @cacher = cacher unless cacher.nil?
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+
22
+
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  PROJECT_GEM = 'the-city-admin'
3
- PROJECT_GEM_VERSION = '0.6.3'
3
+ PROJECT_GEM_VERSION = '0.6.4'
4
4
 
5
5
  s.name = PROJECT_GEM
6
6
  s.version = PROJECT_GEM_VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the-city-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -100,6 +100,7 @@ files:
100
100
  - lib/api/metric_list.rb
101
101
  - lib/api/metric_measurement.rb
102
102
  - lib/api/metric_measurement_list.rb
103
+ - lib/api/metric_measurement_values.rb
103
104
  - lib/api/pledge.rb
104
105
  - lib/api/pledge_list.rb
105
106
  - lib/api/role.rb
@@ -169,6 +170,7 @@ files:
169
170
  - lib/readers/metric_list_reader.rb
170
171
  - lib/readers/metric_measurement_list_reader.rb
171
172
  - lib/readers/metric_measurement_reader.rb
173
+ - lib/readers/metric_measurement_values_reader.rb
172
174
  - lib/readers/metric_reader.rb
173
175
  - lib/readers/pledge_list_reader.rb
174
176
  - lib/readers/pledge_reader.rb