ib 0.3.5 → 0.4.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.
- checksums.yaml +4 -4
- data/.travis.yml +7 -0
- data/README.md +1 -0
- data/Rakefile +28 -0
- data/lib/ib/dependency_resolver.rb +83 -0
- data/lib/ib/parser.rb +4 -1
- data/lib/ib/project.rb +7 -1
- data/lib/ib/version.rb +1 -1
- data/spec/fixtures/{app_delegate.rb → common/app_delegate.rb} +0 -0
- data/spec/fixtures/{custom_view.rb → common/custom_view.rb} +0 -0
- data/spec/fixtures/{empty_view.rb → common/empty_view.rb} +0 -0
- data/spec/fixtures/{simple_class.rb → common/simple_class.rb} +0 -0
- data/spec/fixtures/dependency_test/sub_class_1.rb +2 -0
- data/spec/fixtures/dependency_test/sub_class_2.rb +2 -0
- data/spec/fixtures/dependency_test/super_class.rb +2 -0
- data/spec/lib/ib/dependency_resolver_spec.rb +113 -0
- data/spec/{generator_spec.rb → lib/ib/generator_spec.rb} +4 -3
- data/spec/{parser_spec.rb → lib/ib/parser_spec.rb} +9 -3
- data/spec/lib/ib/project_spec.rb +23 -0
- metadata +26 -16
- data/spec/project_spec.rb +0 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1eea4e011091e08436b55716cc61bb6f9bb6fa1b
         | 
| 4 | 
            +
              data.tar.gz: 5295da9a7c934346ec69f3af30cfcab2fd81b70c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a1c760308f730307b0be44476244016190da663eacac8d5811cb64e351b7dc1ced20cfd85f86c3c2de7a54972548072eff7726cab9d0defe67b5bca5359cfbf6
         | 
| 7 | 
            +
              data.tar.gz: 74d07a792b9a2ae8d3ea8a4e672604598048206c64e28112173e81c89fc2923c37ac63cc040dd1060a8be44212c70e63bfb54d223eb04970a1fb870868883841
         | 
    
        data/.travis.yml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            # cite from https://github.com/CocoaPods/Xcodeproj/blob/master/.travis.yml
         | 
| 2 | 
            +
            language: objective-c
         | 
| 3 | 
            +
            env:
         | 
| 4 | 
            +
              - RVM_RUBY_VERSION=ruby-1.9.3-p392 NOEXEC_DISABLE=1 CI=true RUBY_VERSION_SPECIFIC='sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2 && curl http://curl.haxx.se/ca/cacert.pem -o /usr/local/share/cacert.pem' SSL_CERT_FILE=/usr/local/share/cacert.pem
         | 
| 5 | 
            +
            before_install: source ~/.rvm/scripts/rvm && rvm use $RVM_RUBY_VERSION
         | 
| 6 | 
            +
            install: eval $RUBY_VERSION_SPECIFIC && rake bootstrap[use_bundle_dir]
         | 
| 7 | 
            +
            script: bundle exec rake spec
         | 
    
        data/README.md
    CHANGED
    
    | @@ -3,6 +3,7 @@ | |
| 3 3 | 
             
            RubyMotion interface builder support (yes, with outlets)
         | 
| 4 4 |  | 
| 5 5 | 
             
            <a href='http://spellhub.com/projects/project/7'><img src="http://spellhub.com/projects/status/7" height="18"></a>
         | 
| 6 | 
            +
            [](https://travis-ci.org/yury/ib)
         | 
| 6 7 |  | 
| 7 8 | 
             
            [**Change Log**](https://github.com/yury/ib/wiki/Change-Log)
         | 
| 8 9 |  | 
    
        data/Rakefile
    CHANGED
    
    | @@ -1,2 +1,30 @@ | |
| 1 1 | 
             
            #!/usr/bin/env rake
         | 
| 2 2 | 
             
            require "bundler/gem_tasks"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            # Travis support
         | 
| 5 | 
            +
            # cite from https://github.com/CocoaPods/Xcodeproj/blob/master/Rakefile
         | 
| 6 | 
            +
            def on_rvm?
         | 
| 7 | 
            +
              `which ruby`.strip.include?('.rvm')
         | 
| 8 | 
            +
            end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            def rvm_ruby_dir
         | 
| 11 | 
            +
              @rvm_ruby_dir ||= File.expand_path('../..', `which ruby`.strip)
         | 
| 12 | 
            +
            end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            desc 'Install dependencies'
         | 
| 15 | 
            +
            task :bootstrap, :use_bundle_dir? do |t, args|
         | 
| 16 | 
            +
              options = []
         | 
| 17 | 
            +
              options << "--without=documentation"
         | 
| 18 | 
            +
              options << "--path ./travis_bundle_dir" if args[:use_bundle_dir?]
         | 
| 19 | 
            +
              sh "bundle install #{options * ' '}"
         | 
| 20 | 
            +
            end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            begin
         | 
| 23 | 
            +
              require 'rspec/core/rake_task'
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              RSpec::Core::RakeTask.new(:spec) do |spec|
         | 
| 26 | 
            +
                spec.pattern = 'spec/**/*_spec.rb'
         | 
| 27 | 
            +
                spec.rspec_opts = ['-cfs']
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
            rescue LoadError => e
         | 
| 30 | 
            +
            end
         | 
| @@ -0,0 +1,83 @@ | |
| 1 | 
            +
            require 'tsort'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module IB
         | 
| 4 | 
            +
              class DependencyResolver
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                class TSortHash < ::Hash
         | 
| 7 | 
            +
                  include TSort
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  alias tsort_each_node each_key
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  def tsort_each_child(node, &block)
         | 
| 12 | 
            +
                    fetch(node).each(&block)
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                attr_reader :class_nodes, :files
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def initialize(files)
         | 
| 19 | 
            +
                  @files = files
         | 
| 20 | 
            +
                  @class_nodes = struct_class_node
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                def sort_classes
         | 
| 24 | 
            +
                  @class_nodes.tsort
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                def sort_files
         | 
| 28 | 
            +
                  sort_classes.map do |klass|
         | 
| 29 | 
            +
                    files.select do |file, class_definitions|
         | 
| 30 | 
            +
                      has_class_in_file?(klass, class_definitions)
         | 
| 31 | 
            +
                    end.first
         | 
| 32 | 
            +
                  end.map do |file, _|
         | 
| 33 | 
            +
                    file
         | 
| 34 | 
            +
                  end.uniq.compact
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                def sort
         | 
| 38 | 
            +
                  sorted_files = {}
         | 
| 39 | 
            +
                  sort_files.each do |file|
         | 
| 40 | 
            +
                    sorted_files.store(file, @files[file])
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                  sorted_files
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                private
         | 
| 46 | 
            +
                def has_class_in_file?(klass, class_definitions)
         | 
| 47 | 
            +
                  !class_definitions.select do |x|
         | 
| 48 | 
            +
                    x[:class][0][0] == klass
         | 
| 49 | 
            +
                  end.empty?
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                def has_super_class?(class_definition)
         | 
| 53 | 
            +
                  class_definition[:class][0].size == 2      
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                def struct_class_node
         | 
| 57 | 
            +
                  list_of_hash = @files.map do |file, class_definitions|
         | 
| 58 | 
            +
                    class_definitions.map do |class_definition| create_node(class_definition) end
         | 
| 59 | 
            +
                  end.flatten
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                  list_of_hash.inject(TSortHash.new) do |sum, x|
         | 
| 62 | 
            +
                    sum.merge!(x)
         | 
| 63 | 
            +
                  end
         | 
| 64 | 
            +
                end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                def create_node(class_definition)
         | 
| 67 | 
            +
                  has_super_class?(class_definition) ?
         | 
| 68 | 
            +
                    node_with_super_class(class_definition):
         | 
| 69 | 
            +
                      node_without_super_class(class_definition)
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                def node_with_super_class(class_definition)
         | 
| 73 | 
            +
                  {
         | 
| 74 | 
            +
                    class_definition[:class][0][0] => [class_definition[:class][0][1]],
         | 
| 75 | 
            +
                    class_definition[:class][0][1] => [],
         | 
| 76 | 
            +
                  }
         | 
| 77 | 
            +
                end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                def node_without_super_class(class_definition)
         | 
| 80 | 
            +
                  { class_definition[:class][0][0] => [] }
         | 
| 81 | 
            +
                end
         | 
| 82 | 
            +
              end
         | 
| 83 | 
            +
            end
         | 
    
        data/lib/ib/parser.rb
    CHANGED
    
    | @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            require 'ib/dependency_resolver'
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            class IB::Parser
         | 
| 2 4 | 
             
              NAME_REGEX = /[a-zA-Z][_a-zA-Z0-9]*/
         | 
| 3 5 | 
             
              CLASS_REGEX  = /^[ \t]*class[ \t]+(#{NAME_REGEX})([ \t]*<[ \t]*(#{NAME_REGEX}))?/
         | 
| @@ -23,7 +25,8 @@ class IB::Parser | |
| 23 25 | 
             
                    all[file] = infos
         | 
| 24 26 | 
             
                  end
         | 
| 25 27 | 
             
                end
         | 
| 26 | 
            -
             | 
| 28 | 
            +
             | 
| 29 | 
            +
                IB::DependencyResolver.new(all).sort
         | 
| 27 30 | 
             
              end
         | 
| 28 31 |  | 
| 29 32 | 
             
              def find(path)
         | 
    
        data/lib/ib/project.rb
    CHANGED
    
    | @@ -17,6 +17,12 @@ class IB::Project | |
| 17 17 | 
             
                end
         | 
| 18 18 | 
             
              end
         | 
| 19 19 |  | 
| 20 | 
            +
              def app_files
         | 
| 21 | 
            +
                Motion::Project::App.config.files.select do |file|
         | 
| 22 | 
            +
                  file =~ /^(\.\/)?app\//
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 20 26 | 
             
              def write
         | 
| 21 27 | 
             
                ib_project = "ib.xcodeproj"
         | 
| 22 28 | 
             
                project = Xcodeproj::Project.new(ib_project)
         | 
| @@ -32,7 +38,7 @@ class IB::Project | |
| 32 38 | 
             
                pods.path = pods_headers_path
         | 
| 33 39 |  | 
| 34 40 | 
             
                generator = IB::Generator.new(detect_platform)
         | 
| 35 | 
            -
                generator.write( | 
| 41 | 
            +
                generator.write(app_files, ib_project)
         | 
| 36 42 |  | 
| 37 43 | 
             
                support.new_file "ib.xcodeproj/Stubs.h"
         | 
| 38 44 | 
             
                file = support.new_file "ib.xcodeproj/Stubs.m"
         | 
    
        data/lib/ib/version.rb
    CHANGED
    
    
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,113 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
            require 'ib/dependency_resolver'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            describe IB::DependencyResolver do
         | 
| 5 | 
            +
              context 'init with simple dependency' do
         | 
| 6 | 
            +
                before do
         | 
| 7 | 
            +
                  @files = {
         | 
| 8 | 
            +
                    'aaa.rb' => [{
         | 
| 9 | 
            +
                        class: [['SubClass1', 'SubClass2']],
         | 
| 10 | 
            +
                      }],
         | 
| 11 | 
            +
                    'bbb.rb' => [{
         | 
| 12 | 
            +
                        class: [['SubClass2', 'SuperClass']],
         | 
| 13 | 
            +
                      }],
         | 
| 14 | 
            +
                    'ccc.rb' => [{
         | 
| 15 | 
            +
                        class: [['SuperClass', 'UIViewController']],
         | 
| 16 | 
            +
                      }],
         | 
| 17 | 
            +
                  }
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                describe 'new' do
         | 
| 21 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 22 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 23 | 
            +
                    expect(
         | 
| 24 | 
            +
                      resolver.class_nodes.kind_of?(IB::DependencyResolver::TSortHash)
         | 
| 25 | 
            +
                    ).to be_true
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                describe 'sort_classes' do
         | 
| 30 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 31 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 32 | 
            +
                    expect(
         | 
| 33 | 
            +
                      resolver.sort_classes
         | 
| 34 | 
            +
                    ).to eq(['UIViewController', 'SuperClass', 'SubClass2', 'SubClass1'])
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                describe 'sort_files' do
         | 
| 39 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 40 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 41 | 
            +
                    expect(
         | 
| 42 | 
            +
                      resolver.sort_files
         | 
| 43 | 
            +
                    ).to eq(['ccc.rb', 'bbb.rb', 'aaa.rb'])
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              context 'init with no dependencies' do
         | 
| 49 | 
            +
                before do
         | 
| 50 | 
            +
                  @files = {
         | 
| 51 | 
            +
                    'aaa.rb' => [{
         | 
| 52 | 
            +
                        class: [['SubClass1']],
         | 
| 53 | 
            +
                      }],
         | 
| 54 | 
            +
                    'bbb.rb' => [{
         | 
| 55 | 
            +
                        class: [['SubClass2']],
         | 
| 56 | 
            +
                      }],
         | 
| 57 | 
            +
                    'ccc.rb' => [{
         | 
| 58 | 
            +
                        class: [['SuperClass']],
         | 
| 59 | 
            +
                      }],
         | 
| 60 | 
            +
                  }
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                describe 'sort_classes' do
         | 
| 64 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 65 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 66 | 
            +
                    expect(
         | 
| 67 | 
            +
                      resolver.sort_classes
         | 
| 68 | 
            +
                    ).to eq(['SubClass1', 'SubClass2', 'SuperClass'])
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                describe 'sort_files' do
         | 
| 73 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 74 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 75 | 
            +
                    expect(
         | 
| 76 | 
            +
                      resolver.sort_files
         | 
| 77 | 
            +
                    ).to eq(['aaa.rb', 'bbb.rb', 'ccc.rb'])
         | 
| 78 | 
            +
                  end
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
              end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
              context 'init with dependency in one file' do
         | 
| 83 | 
            +
                before do
         | 
| 84 | 
            +
                  @files = {
         | 
| 85 | 
            +
                    'aaa.rb' => [{
         | 
| 86 | 
            +
                        class: [['SubClass1', 'SubClass2']],
         | 
| 87 | 
            +
                      },{
         | 
| 88 | 
            +
                        class: [['SubClass2', 'SuperClass']],
         | 
| 89 | 
            +
                      },{
         | 
| 90 | 
            +
                        class: [['SuperClass']],
         | 
| 91 | 
            +
                      }]
         | 
| 92 | 
            +
                  }
         | 
| 93 | 
            +
                end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                describe 'sort_classes' do
         | 
| 96 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 97 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 98 | 
            +
                    expect(
         | 
| 99 | 
            +
                      resolver.sort_classes
         | 
| 100 | 
            +
                    ).to eq(['SuperClass', 'SubClass2', 'SubClass1'])
         | 
| 101 | 
            +
                  end
         | 
| 102 | 
            +
                end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                describe 'sort_files' do
         | 
| 105 | 
            +
                  it 'create a instance IB::DependencyResolver' do
         | 
| 106 | 
            +
                    resolver = IB::DependencyResolver.new(@files)
         | 
| 107 | 
            +
                    expect(
         | 
| 108 | 
            +
                      resolver.sort_files
         | 
| 109 | 
            +
                    ).to eq(['aaa.rb'])
         | 
| 110 | 
            +
                  end
         | 
| 111 | 
            +
                end
         | 
| 112 | 
            +
              end
         | 
| 113 | 
            +
            end
         | 
| @@ -4,7 +4,7 @@ require "ib/generator" | |
| 4 4 |  | 
| 5 5 | 
             
            describe IB::Generator do
         | 
| 6 6 | 
             
              it "generates stubs header with ios platform" do
         | 
| 7 | 
            -
                files = IB::Parser.new.find_all("spec/fixtures")
         | 
| 7 | 
            +
                files = IB::Parser.new.find_all("spec/fixtures/common")
         | 
| 8 8 | 
             
                stubs = IB::Generator.new(:ios).render_stub_file('generator/templates/Stubs.h.erb', files)
         | 
| 9 9 |  | 
| 10 10 | 
             
                stubs.should == <<-OBJC
         | 
| @@ -54,7 +54,7 @@ OBJC | |
| 54 54 | 
             
              end
         | 
| 55 55 |  | 
| 56 56 | 
             
              it "generates stubs header with osx platform" do
         | 
| 57 | 
            -
                files = IB::Parser.new.find_all("spec/fixtures")
         | 
| 57 | 
            +
                files = IB::Parser.new.find_all("spec/fixtures/common")
         | 
| 58 58 | 
             
                stubs = IB::Generator.new(:osx).render_stub_file('generator/templates/Stubs.h.erb', files)
         | 
| 59 59 |  | 
| 60 60 | 
             
                stubs.should == <<-OBJC
         | 
| @@ -104,7 +104,8 @@ OBJC | |
| 104 104 | 
             
              end
         | 
| 105 105 |  | 
| 106 106 | 
             
              it "generates stubs implement" do
         | 
| 107 | 
            -
                files = IB::Parser.new.find_all("spec/fixtures")
         | 
| 107 | 
            +
                files = IB::Parser.new.find_all("spec/fixtures/common")
         | 
| 108 | 
            +
             | 
| 108 109 | 
             
                stubs = IB::Generator.new(:ios).render_stub_file('generator/templates/Stubs.m.erb', files)
         | 
| 109 110 |  | 
| 110 111 | 
             
                stubs.should == <<-OBJC
         | 
| @@ -4,7 +4,7 @@ require "ib/parser" | |
| 4 4 |  | 
| 5 5 | 
             
            describe IB::Parser do
         | 
| 6 6 | 
             
              it "finds outlets and actions" do
         | 
| 7 | 
            -
                info = IB::Parser.new.find("spec/fixtures/custom_view.rb").first
         | 
| 7 | 
            +
                info = IB::Parser.new.find("spec/fixtures/common/custom_view.rb").first
         | 
| 8 8 | 
             
                info[:class].should == [["CustomView", "UIView"]]
         | 
| 9 9 | 
             
                info[:outlets].should == [
         | 
| 10 10 | 
             
                  ["greenLabel",    "UIGreenLabel"],
         | 
| @@ -30,10 +30,16 @@ describe IB::Parser do | |
| 30 30 | 
             
              end
         | 
| 31 31 |  | 
| 32 32 | 
             
              it "detects simple classes" do
         | 
| 33 | 
            -
                IB::Parser.new.find("spec/fixtures/simple_class.rb").length.should == 0
         | 
| 33 | 
            +
                IB::Parser.new.find("spec/fixtures/common/simple_class.rb").length.should == 0
         | 
| 34 34 | 
             
              end
         | 
| 35 35 |  | 
| 36 36 | 
             
              it "finds all infos" do
         | 
| 37 | 
            -
                 | 
| 37 | 
            +
                infos = IB::Parser.new.find_all("spec/fixtures/dependency_test")
         | 
| 38 | 
            +
                expect(infos.size).to eq 3
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
              it "finds all sorted infos" do
         | 
| 42 | 
            +
                infos = IB::Parser.new.find_all("spec/fixtures/dependency_test")
         | 
| 43 | 
            +
                expect(infos.size).to eq 3
         | 
| 38 44 | 
             
              end
         | 
| 39 45 | 
             
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            require "spec_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "ib/project"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe IB::Project do
         | 
| 6 | 
            +
              it "generates xcode project" do
         | 
| 7 | 
            +
                IB::Project.new(app_path:"spec/fixtures/common").write()
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              it "app_files" do
         | 
| 11 | 
            +
                Motion::Project::App.config.stub('files').and_return(
         | 
| 12 | 
            +
                  [
         | 
| 13 | 
            +
                    '/usr/local/xxx/gems/xxx/lib/xxxx.rb',
         | 
| 14 | 
            +
                    'User/xxx/gems/xxx/lib/motion/xxxx.rb',
         | 
| 15 | 
            +
                    './app/aaa.rb',
         | 
| 16 | 
            +
                    './app/controllers/bbb.rb',
         | 
| 17 | 
            +
                  ]
         | 
| 18 | 
            +
                )
         | 
| 19 | 
            +
                expect(IB::Project.new(app_path:"spec/fixtures/common").app_files).to eq(
         | 
| 20 | 
            +
                  ['./app/aaa.rb', './app/controllers/bbb.rb',]
         | 
| 21 | 
            +
                )
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ib
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.4.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Yury Korolev
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013-10- | 
| 12 | 
            +
            date: 2013-10-07 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: xcodeproj
         | 
| @@ -92,6 +92,7 @@ extra_rdoc_files: [] | |
| 92 92 | 
             
            files:
         | 
| 93 93 | 
             
            - .gitignore
         | 
| 94 94 | 
             
            - .rspec
         | 
| 95 | 
            +
            - .travis.yml
         | 
| 95 96 | 
             
            - Gemfile
         | 
| 96 97 | 
             
            - LICENSE
         | 
| 97 98 | 
             
            - README.md
         | 
| @@ -99,6 +100,7 @@ files: | |
| 99 100 | 
             
            - bin/ib
         | 
| 100 101 | 
             
            - ib.gemspec
         | 
| 101 102 | 
             
            - lib/ib.rb
         | 
| 103 | 
            +
            - lib/ib/dependency_resolver.rb
         | 
| 102 104 | 
             
            - lib/ib/generator.rb
         | 
| 103 105 | 
             
            - lib/ib/generator/rendering_helper.rb
         | 
| 104 106 | 
             
            - lib/ib/generator/templates/Stubs.h.erb
         | 
| @@ -108,13 +110,17 @@ files: | |
| 108 110 | 
             
            - lib/ib/project.rb
         | 
| 109 111 | 
             
            - lib/ib/tasks.rb
         | 
| 110 112 | 
             
            - lib/ib/version.rb
         | 
| 111 | 
            -
            - spec/fixtures/app_delegate.rb
         | 
| 112 | 
            -
            - spec/fixtures/custom_view.rb
         | 
| 113 | 
            -
            - spec/fixtures/empty_view.rb
         | 
| 114 | 
            -
            - spec/fixtures/simple_class.rb
         | 
| 115 | 
            -
            - spec/ | 
| 116 | 
            -
            - spec/ | 
| 117 | 
            -
            - spec/ | 
| 113 | 
            +
            - spec/fixtures/common/app_delegate.rb
         | 
| 114 | 
            +
            - spec/fixtures/common/custom_view.rb
         | 
| 115 | 
            +
            - spec/fixtures/common/empty_view.rb
         | 
| 116 | 
            +
            - spec/fixtures/common/simple_class.rb
         | 
| 117 | 
            +
            - spec/fixtures/dependency_test/sub_class_1.rb
         | 
| 118 | 
            +
            - spec/fixtures/dependency_test/sub_class_2.rb
         | 
| 119 | 
            +
            - spec/fixtures/dependency_test/super_class.rb
         | 
| 120 | 
            +
            - spec/lib/ib/dependency_resolver_spec.rb
         | 
| 121 | 
            +
            - spec/lib/ib/generator_spec.rb
         | 
| 122 | 
            +
            - spec/lib/ib/parser_spec.rb
         | 
| 123 | 
            +
            - spec/lib/ib/project_spec.rb
         | 
| 118 124 | 
             
            - spec/spec_helper.rb
         | 
| 119 125 | 
             
            - template/controller.erb
         | 
| 120 126 | 
             
            - template/controller_helper.erb
         | 
| @@ -143,11 +149,15 @@ signing_key: | |
| 143 149 | 
             
            specification_version: 4
         | 
| 144 150 | 
             
            summary: Small portion of love to interface builder with rubymotion
         | 
| 145 151 | 
             
            test_files:
         | 
| 146 | 
            -
            - spec/fixtures/app_delegate.rb
         | 
| 147 | 
            -
            - spec/fixtures/custom_view.rb
         | 
| 148 | 
            -
            - spec/fixtures/empty_view.rb
         | 
| 149 | 
            -
            - spec/fixtures/simple_class.rb
         | 
| 150 | 
            -
            - spec/ | 
| 151 | 
            -
            - spec/ | 
| 152 | 
            -
            - spec/ | 
| 152 | 
            +
            - spec/fixtures/common/app_delegate.rb
         | 
| 153 | 
            +
            - spec/fixtures/common/custom_view.rb
         | 
| 154 | 
            +
            - spec/fixtures/common/empty_view.rb
         | 
| 155 | 
            +
            - spec/fixtures/common/simple_class.rb
         | 
| 156 | 
            +
            - spec/fixtures/dependency_test/sub_class_1.rb
         | 
| 157 | 
            +
            - spec/fixtures/dependency_test/sub_class_2.rb
         | 
| 158 | 
            +
            - spec/fixtures/dependency_test/super_class.rb
         | 
| 159 | 
            +
            - spec/lib/ib/dependency_resolver_spec.rb
         | 
| 160 | 
            +
            - spec/lib/ib/generator_spec.rb
         | 
| 161 | 
            +
            - spec/lib/ib/parser_spec.rb
         | 
| 162 | 
            +
            - spec/lib/ib/project_spec.rb
         | 
| 153 163 | 
             
            - spec/spec_helper.rb
         |