mockup_model 0.0.1
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.markdown +21 -0
- data/Rakefile +10 -0
- data/lib/mockup_model.rb +97 -0
- data/lib/mockup_model/version.rb +13 -0
- data/mockup_model.gemspec +36 -0
- metadata +51 -0
    
        data/README.markdown
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            README
         | 
| 2 | 
            +
            ======
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            Summary
         | 
| 6 | 
            +
            -------
         | 
| 7 | 
            +
            A class that pretends to be an active record model, useful for mockups.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
             | 
| 10 | 
            +
            Installation
         | 
| 11 | 
            +
            ------------
         | 
| 12 | 
            +
            `gem install mockup_model`
         | 
| 13 | 
            +
             | 
| 14 | 
            +
             | 
| 15 | 
            +
            Usage
         | 
| 16 | 
            +
            -----
         | 
| 17 | 
            +
             | 
| 18 | 
            +
             | 
| 19 | 
            +
            Description
         | 
| 20 | 
            +
            -----------
         | 
| 21 | 
            +
            A class that pretends to be an active record model, useful for mockups.
         | 
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            $LOAD_PATH.unshift(File.expand_path('../rake/lib', __FILE__))
         | 
| 2 | 
            +
            Dir.glob(File.expand_path('../rake/tasks/**/*.{rake,task,rb}', __FILE__)) do |task_file|
         | 
| 3 | 
            +
              begin
         | 
| 4 | 
            +
                import task_file
         | 
| 5 | 
            +
              rescue LoadError => e
         | 
| 6 | 
            +
                warn "Failed to load task file #{task_file}"
         | 
| 7 | 
            +
                warn "  #{e.class} #{e.message}"
         | 
| 8 | 
            +
                warn "  #{e.backtrace.first}"
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
    
        data/lib/mockup_model.rb
    ADDED
    
    | @@ -0,0 +1,97 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            require 'active_model/naming'
         | 
| 6 | 
            +
            require 'active_support/hash_with_indifferent_access'
         | 
| 7 | 
            +
            require 'mockup_model/version'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
            # MockupModel
         | 
| 12 | 
            +
            # A class that pretends to be an active record model, useful for mockups.
         | 
| 13 | 
            +
            class MockupModel
         | 
| 14 | 
            +
              rails_methods = %w[object_id respond_to? hash eql? equal? == send class inspect is_a? kind_of? to_yaml].map{|n|[n,n.to_sym]}.flatten
         | 
| 15 | 
            +
              (Object.instance_methods - Object.instance_methods.grep(/^__/) - rails_methods).each do |m|
         | 
| 16 | 
            +
                undef_method m
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              extend ActiveModel::Naming
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              def to_model
         | 
| 22 | 
            +
                self
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              def to_key
         | 
| 26 | 
            +
                [self.id]
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              def to_param
         | 
| 30 | 
            +
                self.id
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def valid?()      true end
         | 
| 34 | 
            +
              def new_record?() true end
         | 
| 35 | 
            +
              def destroyed?()  true end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              def errors
         | 
| 38 | 
            +
                obj = Object.new
         | 
| 39 | 
            +
                def obj.[](key)         [] end
         | 
| 40 | 
            +
                def obj.full_messages() [] end
         | 
| 41 | 
            +
                obj
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              def self.find(*)
         | 
| 45 | 
            +
                new
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              def self.create(attrs={})
         | 
| 49 | 
            +
                new(attrs)
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
              attr_reader :attributes
         | 
| 53 | 
            +
              def initialize(attrs={})
         | 
| 54 | 
            +
                @attributes = HashWithIndifferentAccess.new(attrs)
         | 
| 55 | 
            +
              end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
              def [](name)
         | 
| 58 | 
            +
                @attributes[name]
         | 
| 59 | 
            +
              end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
              def []=(name, value)
         | 
| 62 | 
            +
                @attributes[name] = value
         | 
| 63 | 
            +
              end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
              def respond_to_missing?(name, includeprivate=false)
         | 
| 66 | 
            +
                true
         | 
| 67 | 
            +
              end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
              def method_missing(name, *args)
         | 
| 70 | 
            +
                case name.to_s
         | 
| 71 | 
            +
                  when /=$/ # assignment (obj.foo = value)
         | 
| 72 | 
            +
                    @attributes[name.to_s[0..-2]] = args.first
         | 
| 73 | 
            +
                  when /\?$/ # interrogation (obj.foo?)
         | 
| 74 | 
            +
                    raise ArgumentError, "Wrong number of arguments (method: #{name})" unless args.empty?
         | 
| 75 | 
            +
                    !!@attributes[name.to_s[0..-2]]
         | 
| 76 | 
            +
                  when /^[A-Z]\w*/i # reader (obj.foo)
         | 
| 77 | 
            +
                    raise ArgumentError, "Wrong number of arguments (method: #{name})" unless args.empty?
         | 
| 78 | 
            +
                    @attributes[name]
         | 
| 79 | 
            +
                  else
         | 
| 80 | 
            +
                    super
         | 
| 81 | 
            +
                end
         | 
| 82 | 
            +
              end
         | 
| 83 | 
            +
             | 
| 84 | 
            +
              def save
         | 
| 85 | 
            +
                true
         | 
| 86 | 
            +
              end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
              def save!
         | 
| 89 | 
            +
                true
         | 
| 90 | 
            +
              end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
              def inspect
         | 
| 93 | 
            +
                sprintf "\#<%s %s>",
         | 
| 94 | 
            +
                        self.class.name,
         | 
| 95 | 
            +
                        @attributes.map { |pair| "%s=%p" % pair }.join(" ")
         | 
| 96 | 
            +
              end
         | 
| 97 | 
            +
            end
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            begin
         | 
| 4 | 
            +
              require 'rubygems/version' # newer rubygems use this
         | 
| 5 | 
            +
            rescue LoadError
         | 
| 6 | 
            +
              require 'gem/version' # older rubygems use this
         | 
| 7 | 
            +
            end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            class PseudoModel
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              # The version of the PseudoModel gem
         | 
| 12 | 
            +
              Version = Gem::Version.new("0.0.1")
         | 
| 13 | 
            +
            end
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Gem::Specification.new do |s|
         | 
| 4 | 
            +
              s.name                      = "mockup_model"
         | 
| 5 | 
            +
              s.version                   = "0.0.1"
         | 
| 6 | 
            +
              s.authors                   = ["Stefan Rusterholz", "Swiss Life Select Schweiz"]
         | 
| 7 | 
            +
              s.email                     = "stefan.rusterholz@gmail.com"
         | 
| 8 | 
            +
              s.homepage                  = "https://github.com/apeiros/mockup_model"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              s.description               = <<-DESCRIPTION.gsub(/^    /, '').chomp
         | 
| 11 | 
            +
                A class that pretends to be an active record model, useful for mockups.
         | 
| 12 | 
            +
              DESCRIPTION
         | 
| 13 | 
            +
              s.summary                   = <<-SUMMARY.gsub(/^    /, '').chomp
         | 
| 14 | 
            +
                A class that pretends to be an active record model, useful for mockups.
         | 
| 15 | 
            +
              SUMMARY
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              s.files                     =
         | 
| 18 | 
            +
                Dir['bin/**/*'] +
         | 
| 19 | 
            +
                Dir['lib/**/*'] +
         | 
| 20 | 
            +
                Dir['rake/**/*'] +
         | 
| 21 | 
            +
                Dir['test/**/*'] +
         | 
| 22 | 
            +
                Dir['*.gemspec'] +
         | 
| 23 | 
            +
                %w[
         | 
| 24 | 
            +
                  Rakefile
         | 
| 25 | 
            +
                  README.markdown
         | 
| 26 | 
            +
                ]
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              if File.directory?('bin') then
         | 
| 29 | 
            +
                s.executables = Dir.chdir('bin') { Dir.glob('**/*').select { |f| File.executable?(f) } }
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              s.required_ruby_version     = ">= 1.9.2"
         | 
| 33 | 
            +
              s.required_rubygems_version = Gem::Requirement.new("> 1.3.1")
         | 
| 34 | 
            +
              s.rubygems_version          = "1.3.1"
         | 
| 35 | 
            +
              s.specification_version     = 3
         | 
| 36 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,51 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: mockup_model
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              prerelease: 
         | 
| 5 | 
            +
              version: 0.0.1
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - Stefan Rusterholz
         | 
| 9 | 
            +
            - Swiss Life Select Schweiz
         | 
| 10 | 
            +
            autorequire: 
         | 
| 11 | 
            +
            bindir: bin
         | 
| 12 | 
            +
            cert_chain: []
         | 
| 13 | 
            +
            date: 2013-05-16 00:00:00.000000000 Z
         | 
| 14 | 
            +
            dependencies: []
         | 
| 15 | 
            +
            description: A class that pretends to be an active record model, useful for mockups.
         | 
| 16 | 
            +
            email: stefan.rusterholz@gmail.com
         | 
| 17 | 
            +
            executables: []
         | 
| 18 | 
            +
            extensions: []
         | 
| 19 | 
            +
            extra_rdoc_files: []
         | 
| 20 | 
            +
            files:
         | 
| 21 | 
            +
            - lib/mockup_model/version.rb
         | 
| 22 | 
            +
            - lib/mockup_model.rb
         | 
| 23 | 
            +
            - mockup_model.gemspec
         | 
| 24 | 
            +
            - Rakefile
         | 
| 25 | 
            +
            - README.markdown
         | 
| 26 | 
            +
            homepage: https://github.com/apeiros/mockup_model
         | 
| 27 | 
            +
            licenses: []
         | 
| 28 | 
            +
            post_install_message: 
         | 
| 29 | 
            +
            rdoc_options: []
         | 
| 30 | 
            +
            require_paths:
         | 
| 31 | 
            +
            - lib
         | 
| 32 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 33 | 
            +
              none: false
         | 
| 34 | 
            +
              requirements:
         | 
| 35 | 
            +
              - - ! '>='
         | 
| 36 | 
            +
                - !ruby/object:Gem::Version
         | 
| 37 | 
            +
                  version: 1.9.2
         | 
| 38 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 39 | 
            +
              none: false
         | 
| 40 | 
            +
              requirements:
         | 
| 41 | 
            +
              - - ! '>'
         | 
| 42 | 
            +
                - !ruby/object:Gem::Version
         | 
| 43 | 
            +
                  version: 1.3.1
         | 
| 44 | 
            +
            requirements: []
         | 
| 45 | 
            +
            rubyforge_project: 
         | 
| 46 | 
            +
            rubygems_version: 1.8.25
         | 
| 47 | 
            +
            signing_key: 
         | 
| 48 | 
            +
            specification_version: 3
         | 
| 49 | 
            +
            summary: A class that pretends to be an active record model, useful for mockups.
         | 
| 50 | 
            +
            test_files: []
         | 
| 51 | 
            +
            has_rdoc: 
         |