appfigures 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "appfigures"
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Francis Chong"]
@@ -20,12 +20,14 @@ Gem::Specification.new do |s|
20
20
  "VERSION",
21
21
  "appfigures.gemspec",
22
22
  "lib/appfigures.rb",
23
+ "lib/appfigures/archive.rb",
23
24
  "lib/appfigures/data.rb",
24
25
  "lib/appfigures/external.rb",
25
26
  "lib/appfigures/rank.rb",
26
27
  "lib/appfigures/sale.rb",
27
28
  "lib/appfigures/user.rb",
28
29
  "test/appfigures_fixture.yml.default",
30
+ "test/test_archive.rb",
29
31
  "test/test_data.rb",
30
32
  "test/test_external.rb",
31
33
  "test/test_rank.rb",
@@ -34,7 +36,7 @@ Gem::Specification.new do |s|
34
36
  ]
35
37
  s.homepage = "https://github.com/siuying/appfigures"
36
38
  s.require_paths = ["lib"]
37
- s.rubygems_version = "1.8.15"
39
+ s.rubygems_version = "1.8.10"
38
40
  s.summary = "AppFigures API"
39
41
 
40
42
  if s.respond_to? :specification_version then
@@ -9,4 +9,5 @@ require 'appfigures/user'
9
9
  require 'appfigures/data'
10
10
  require 'appfigures/sale'
11
11
  require 'appfigures/rank'
12
- require 'appfigures/external'
12
+ require 'appfigures/external'
13
+ require 'appfigures/archive'
@@ -0,0 +1,40 @@
1
+ require 'httparty'
2
+
3
+ module Appfigures
4
+ class Archive
5
+ include HTTParty
6
+ base_uri API_URL
7
+ format :json
8
+ TYPE = {
9
+ :DAILY => "daily",
10
+ :WEEKLY => "weekly",
11
+ :FINANCIAL => "financial",
12
+ :PAYMENT => "payment",
13
+ :ALL => "all"
14
+ }
15
+
16
+ def initialize(username, password)
17
+ @auth = {:username => username, :password => password}
18
+ end
19
+
20
+ def archives(type="all")
21
+ raise ArgumentError, "Type must be one of TYPE: #{TYPE.values.join(", ")}" unless TYPE.values.index(type)
22
+ self.class.get("/archive", {:basic_auth => @auth, :type => type})
23
+ end
24
+
25
+ def latest(type="all")
26
+ self.class.get("/archive/latest", {:basic_auth => @auth, :type => type})
27
+ end
28
+
29
+ def by_date(date, type="all")
30
+ self.class.get("/archive/#{date}", {:basic_auth => @auth, :type => type})
31
+ end
32
+
33
+ # get the raw report by report id
34
+ # requires admin
35
+ def raw(id)
36
+ self.class.get("/archive/raw/#{id}", {:basic_auth => @auth})
37
+ end
38
+
39
+ end
40
+ end
@@ -10,6 +10,8 @@ module Appfigures
10
10
  @auth = {:username => username, :password => password}
11
11
  end
12
12
 
13
+ # get list of external accounts
14
+ # requires admin
13
15
  def external
14
16
  self.class.get("/external_accounts", {:basic_auth => @auth})
15
17
  end
@@ -0,0 +1,55 @@
1
+ require "yaml"
2
+ require "test/unit"
3
+
4
+ require "rubygems"
5
+ require "bundler"
6
+ Bundler.require(:default)
7
+
8
+ require "./lib/appfigures"
9
+
10
+ class TestArchive < Test::Unit::TestCase
11
+ def setup
12
+ path = File.expand_path(File.dirname(__FILE__))
13
+ @config = YAML::load(open("#{path}/appfigures_fixture.yml"))
14
+
15
+ assert_not_nil(@config, "you must create appfigures_fixture.yml")
16
+ assert_not_nil(@config[:username], "you must configure username")
17
+ assert_not_nil(@config[:password], "you must configure password")
18
+
19
+ assert_not_equal("", @config[:username], "you must configure username")
20
+ assert_not_equal("", @config[:password], "you must configure password")
21
+
22
+ @archive = Appfigures::Archive.new @config[:username], @config[:password]
23
+ @user = Appfigures::User.new @config[:username], @config[:password]
24
+
25
+ @day_minutes_one = (Time.now - 24*60*60).strftime("%Y-%m-%d")
26
+ @day_minutes_two = (Time.now - 2*24*60*60).strftime("%Y-%m-%d")
27
+
28
+ @apps = @user.products(@config[:username])
29
+ @first_app = @apps[@apps.keys.first]
30
+ assert_kind_of(Hash, @first_app)
31
+ end
32
+
33
+ def test_archives
34
+ daily = @archive.archives("daily")
35
+ assert_not_nil(daily, "daily archives should be okay")
36
+ assert_kind_of(Hash, daily)
37
+ end
38
+
39
+ def test_latest
40
+ latest = @archive.latest("daily")
41
+ assert_not_nil(latest, "latest archives should be okay")
42
+ assert_kind_of(Hash, latest)
43
+ end
44
+
45
+ def test_by_date_and_raw
46
+ by_date = @archive.by_date("2012-09-10", "daily")
47
+ assert_not_nil(by_date, "by_date report should be okay")
48
+ assert_kind_of(Hash, by_date)
49
+
50
+ # requires admin permission
51
+ # raw = @archive.raw(by_date.values.first["id"])
52
+ # assert_not_nil(raw, "raw report should be okay")
53
+ # assert_kind_of(String, raw)
54
+ end
55
+ end
@@ -7,7 +7,7 @@ Bundler.require(:default)
7
7
 
8
8
  require "./lib/appfigures"
9
9
 
10
- class TestUser < Test::Unit::TestCase
10
+ class TestExternal < Test::Unit::TestCase
11
11
  # def test_external
12
12
  # path = File.expand_path(File.dirname(__FILE__))
13
13
  # @config = YAML::load(open("#{path}/appfigures_fixture.yml"))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appfigures
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-09-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &70099329990640 !ruby/object:Gem::Requirement
16
+ requirement: &70184358524400 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70099329990640
24
+ version_requirements: *70184358524400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: httparty
27
- requirement: &70099329990060 !ruby/object:Gem::Requirement
27
+ requirement: &70184358521260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70099329990060
35
+ version_requirements: *70184358521260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70099329989400 !ruby/object:Gem::Requirement
38
+ requirement: &70184358520320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70099329989400
46
+ version_requirements: *70184358520320
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: gemcutter
49
- requirement: &70099329988920 !ruby/object:Gem::Requirement
49
+ requirement: &70184358555480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70099329988920
57
+ version_requirements: *70184358555480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70099329988360 !ruby/object:Gem::Requirement
60
+ requirement: &70184358554200 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70099329988360
68
+ version_requirements: *70184358554200
69
69
  description: AppFigures API ruby edition
70
70
  email: francis@ignition.hk
71
71
  executables: []
@@ -79,12 +79,14 @@ files:
79
79
  - VERSION
80
80
  - appfigures.gemspec
81
81
  - lib/appfigures.rb
82
+ - lib/appfigures/archive.rb
82
83
  - lib/appfigures/data.rb
83
84
  - lib/appfigures/external.rb
84
85
  - lib/appfigures/rank.rb
85
86
  - lib/appfigures/sale.rb
86
87
  - lib/appfigures/user.rb
87
88
  - test/appfigures_fixture.yml.default
89
+ - test/test_archive.rb
88
90
  - test/test_data.rb
89
91
  - test/test_external.rb
90
92
  - test/test_rank.rb
@@ -104,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
106
  version: '0'
105
107
  segments:
106
108
  - 0
107
- hash: 2930390160613838490
109
+ hash: 1744420675123302140
108
110
  required_rubygems_version: !ruby/object:Gem::Requirement
109
111
  none: false
110
112
  requirements:
@@ -113,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
115
  version: '0'
114
116
  requirements: []
115
117
  rubyforge_project:
116
- rubygems_version: 1.8.15
118
+ rubygems_version: 1.8.10
117
119
  signing_key:
118
120
  specification_version: 3
119
121
  summary: AppFigures API